diff options
Diffstat (limited to 'src/compiler/scala/tools/nsc/symtab/classfile/MetaParser.scala')
-rw-r--r-- | src/compiler/scala/tools/nsc/symtab/classfile/MetaParser.scala | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/compiler/scala/tools/nsc/symtab/classfile/MetaParser.scala b/src/compiler/scala/tools/nsc/symtab/classfile/MetaParser.scala index c52cc236fe..905a473a96 100644 --- a/src/compiler/scala/tools/nsc/symtab/classfile/MetaParser.scala +++ b/src/compiler/scala/tools/nsc/symtab/classfile/MetaParser.scala @@ -134,7 +134,10 @@ abstract class MetaParser{ def parse(): Type = { nextToken(); if (token == "[") PolyType(parseTypeParams(), parse()) - else if (token == "(") MethodType(parseParams(), parse()) + else if (token == "(") { + val formals = parseParams() + MethodType(owner.newSyntheticValueParams(formals), parse()) + } else parseType() } owner.setInfo(parse()) @@ -151,7 +154,10 @@ abstract class MetaParser{ protected def parseConstr() { def parse(): Type = { nextToken() - if (token == "(") MethodType(parseParams(), parse()) + if (token == "(") { + val formals = parseParams() + MethodType(owner.newSyntheticValueParams(formals), parse()) + } else owner.owner.tpe } owner.setInfo(parse()) |