diff options
-rw-r--r-- | src/compiler/scala/tools/nsc/ast/parser/Parsers.scala | 5 | ||||
-rw-r--r-- | src/compiler/scala/tools/nsc/typechecker/SuperAccessors.scala | 6 |
2 files changed, 8 insertions, 3 deletions
diff --git a/src/compiler/scala/tools/nsc/ast/parser/Parsers.scala b/src/compiler/scala/tools/nsc/ast/parser/Parsers.scala index 05b909386b..b6da9f9b1d 100644 --- a/src/compiler/scala/tools/nsc/ast/parser/Parsers.scala +++ b/src/compiler/scala/tools/nsc/ast/parser/Parsers.scala @@ -2383,7 +2383,10 @@ trait Parsers extends NewScanners with MarkupParsers { } } inNextToken - } else stats += first + } else { + stats += first + if (in.token != RBRACE && in.token != EOF/* !isStatSep(in.token)*/) acceptStatSep() + } } while (inToken != RBRACE && inToken != EOF) { if (inToken == IMPORT) { diff --git a/src/compiler/scala/tools/nsc/typechecker/SuperAccessors.scala b/src/compiler/scala/tools/nsc/typechecker/SuperAccessors.scala index 60f6336cd7..7e8790aacd 100644 --- a/src/compiler/scala/tools/nsc/typechecker/SuperAccessors.scala +++ b/src/compiler/scala/tools/nsc/typechecker/SuperAccessors.scala @@ -40,8 +40,10 @@ abstract class SuperAccessors extends transform.Transform with transform.TypingT private var accDefs: List[(Symbol, ListBuffer[Tree])] = List() private val typer = analyzer.newTyper(analyzer.rootContext(unit)) - private def accDefBuf(clazz: Symbol) = - accDefs.dropWhile(_._1 != clazz).head._2 + private def accDefBuf(clazz: Symbol) = accDefs find (_._1 == clazz) match { + case Some((_, buf)) => buf + case None => throw new AssertionError("no acc def buf for "+clazz) + } /* private def transformArgs(args: List[Tree], formals: List[Type]) = { if (!formals.isEmpty && formals.last.symbol == definitions.ByNameParamClass) |