2011-02-09 61 views
4

WrappedString Scaladoc 2.8.1:scala.collection.immutable.WrappedString需要一個隱式CanBuildFrom來完成記錄的功能?

「此類用作包裝增強字符串與所有在索引序列中發現的操作 這個類之間的差異和StringOps是調用變壓器的方法,如過濾器和地圖會。收率類型WrappedString的目的,而不是字符串」

scala> import scala.collection.immutable.WrappedString 
    import scala.collection.immutable.WrappedString 

    scala> val s = new WrappedString("foo")    
    s: scala.collection.immutable.WrappedString = WrappedString(f, o, o) 

    scala> s.filter(x => true) 
    res1: scala.collection.immutable.WrappedString = WrappedString(f, o, o) 

    scala> s.map(x => x)         
    res2: scala.collection.immutable.IndexedSeq[Char] = Vector(f, o, o) 

唉,地圖返回一個向量,而不是一個WrappedString。如果我正確理解這一點:

過濾器工作,因爲它只是使用newBuilder方法,但地圖需要一個像BitSet一樣隱式的WrappedString CanBuildFrom。這是代碼或文檔中的錯誤還是我錯過了一些東西?

此外,scaladoc簡化版本沒有任何意義,我說:

def map [B] (f: (Char) ⇒ B) : WrappedString[B] 
def map [B, That] (f: (Char) ⇒ B)(implicit bf: CanBuildFrom[WrappedString, B, That]) : That 

它不應該是:

def map [B] (f: (Char) ⇒ Char) : WrappedString 
def map [B, That] (f: (Char) ⇒ B)(implicit bf: CanBuildFrom[WrappedString, B, That]) : That 

回答

1

第一個將是一個bug,一個將被固定爲2.9。

+0

你的意思是這是一個已知的錯誤?我在https://lampsvn.epfl.ch/trac找不到任何東西,但我想在我報告任何事情之前先查看...? – 2011-02-09 21:03:41