summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2008-04-30 11:51:16 +0000
committerMartin Odersky <odersky@gmail.com>2008-04-30 11:51:16 +0000
commit3e1e2078f7785292dd99566fcfc5d7d8264b7013 (patch)
treeb19e0d65476f65874ecb6391253430409bb844ce /src
parentfdbf828bb33b53ce1161f5f6b59b74e7d6422908 (diff)
downloadscala-3e1e2078f7785292dd99566fcfc5d7d8264b7013.tar.gz
scala-3e1e2078f7785292dd99566fcfc5d7d8264b7013.tar.bz2
scala-3e1e2078f7785292dd99566fcfc5d7d8264b7013.zip
fixed #789. Samll bugfixes in library.
Diffstat (limited to 'src')
-rw-r--r--src/compiler/scala/tools/nsc/ast/parser/Parsers.scala2
-rw-r--r--src/compiler/scala/tools/nsc/symtab/classfile/ClassfileParser.scala6
-rw-r--r--src/library/scala/Iterable.scala25
-rw-r--r--src/library/scala/util/matching/Regex.scala4
4 files changed, 28 insertions, 9 deletions
diff --git a/src/compiler/scala/tools/nsc/ast/parser/Parsers.scala b/src/compiler/scala/tools/nsc/ast/parser/Parsers.scala
index f6228e9b06..00d16ffc01 100644
--- a/src/compiler/scala/tools/nsc/ast/parser/Parsers.scala
+++ b/src/compiler/scala/tools/nsc/ast/parser/Parsers.scala
@@ -1287,7 +1287,7 @@ trait Parsers extends NewScanners with MarkupParsers {
enums.toList
}
- /** Generator ::= val Pattern1 `<-' Expr [Guard]
+ /** Generator ::= Pattern1 (`<-' | '=') Expr [Guard]
*/
def generator(enums: ListBuffer[Enumerator], eqOK: Boolean) {
if (inToken == VAL) inNextToken
diff --git a/src/compiler/scala/tools/nsc/symtab/classfile/ClassfileParser.scala b/src/compiler/scala/tools/nsc/symtab/classfile/ClassfileParser.scala
index 5f20a72aa0..09b0f6ca2a 100644
--- a/src/compiler/scala/tools/nsc/symtab/classfile/ClassfileParser.scala
+++ b/src/compiler/scala/tools/nsc/symtab/classfile/ClassfileParser.scala
@@ -50,7 +50,8 @@ abstract class ClassfileParser {
def parse(file: AbstractFile, root: Symbol) = try {
def handleError(e: Exception) = {
- /*if (settings.debug.value)*/ e.printStackTrace() //debug
+ if (e.isInstanceOf[AssertionError] || settings.debug.value)
+ e.printStackTrace()
throw new IOException("class file '" + in.file + "' is broken\n(" + {
if (e.getMessage() != null) e.getMessage()
else e.getClass.toString
@@ -422,7 +423,8 @@ abstract class ClassfileParser {
sawPrivateConstructor = true
in.skip(2); skipAttributes()
} else {
- if ((jflags & JAVA_ACC_BRIDGE) != 0) sflags = sflags | BRIDGE //PRIVATE
+ if ((jflags & JAVA_ACC_BRIDGE) != 0 && global.settings.target.value == "jvm-1.5")
+ sflags |= BRIDGE
if ((sflags & PRIVATE) != 0 && global.settings.XO.value) {
in.skip(4); skipAttributes()
} else {
diff --git a/src/library/scala/Iterable.scala b/src/library/scala/Iterable.scala
index c52257e120..6063acf43a 100644
--- a/src/library/scala/Iterable.scala
+++ b/src/library/scala/Iterable.scala
@@ -462,13 +462,14 @@ trait Iterable[+A] {
buf.toString
}
-
-
/** Write all elements of this string into given string builder.
*
* @note Will not terminate for infinite-sized collections.
- * @param buf ...
- * @return ...
+ * @param buf the StringBuilder to which elements are appended
+ * @param start starting string.
+ * @param sep separator string.
+ * @param end ending string.
+ * @return the <code>buf</code> StringBuilder object
*/
def addString(buf: StringBuilder, start: String, sep: String, end: String): StringBuilder = {
buf.append(start)
@@ -480,8 +481,24 @@ trait Iterable[+A] {
buf.append(end)
}
+ /** Write all elements of this string into given string builder.
+ *
+ * @note Will not terminate for infinite-sized collections.
+ * @param buf the StringBuilder to which elements are appended
+ * @param sep separator string.
+ * @return the <code>buf</code> StringBuilder object
+ */
def addString(buf: StringBuilder, sep: String): StringBuilder = addString(buf, "", sep, "")
+ /** Write all elements of this string into given string builder, with no separator string
+ * between elements.
+ * @note Will not terminate for infinite-sized collections.
+ * @param buf the StringBuilder to which elements are appended
+ * @return the <code>buf</code> StringBuilder object
+ */
+ def addString(buf: StringBuilder): StringBuilder = addString(buf, "", "", "")
+
+
/** Fills the given array <code>xs</code> with the elements of
* this sequence starting at position <code>start</code>.
*
diff --git a/src/library/scala/util/matching/Regex.scala b/src/library/scala/util/matching/Regex.scala
index 1250b775ee..0db6372655 100644
--- a/src/library/scala/util/matching/Regex.scala
+++ b/src/library/scala/util/matching/Regex.scala
@@ -203,9 +203,9 @@ object Regex {
def groupCount = matcher.groupCount
private lazy val starts: Array[Int] =
- ((1 to groupCount) map matcher.start).toArray
+ ((0 to groupCount) map matcher.start).toArray
private lazy val ends: Array[Int] =
- ((1 to groupCount) map matcher.end).toArray
+ ((0 to groupCount) map matcher.end).toArray
/** The index of the first matched character in group <code>i</code> */
def start(i: Int) = starts(i)