diff options
-rw-r--r-- | src/compiler/scala/tools/nsc/ast/parser/Parsers.scala | 2 | ||||
-rw-r--r-- | src/compiler/scala/tools/nsc/symtab/Types.scala | 2 |
2 files changed, 3 insertions, 1 deletions
diff --git a/src/compiler/scala/tools/nsc/ast/parser/Parsers.scala b/src/compiler/scala/tools/nsc/ast/parser/Parsers.scala index fadd37f66c..0cb0babfcf 100644 --- a/src/compiler/scala/tools/nsc/ast/parser/Parsers.scala +++ b/src/compiler/scala/tools/nsc/ast/parser/Parsers.scala @@ -972,7 +972,7 @@ trait Parsers requires SyntaxAnalyzer { val topinfo = opstack.head opstack = opstack.tail return Select( - reduceStack(true, base, topinfo.operand, 0, true), + stripParens(reduceStack(true, base, topinfo.operand, 0, true)), topinfo.operator.encode).setPos(topinfo.pos) } } diff --git a/src/compiler/scala/tools/nsc/symtab/Types.scala b/src/compiler/scala/tools/nsc/symtab/Types.scala index 01000dd7b2..546d650ce4 100644 --- a/src/compiler/scala/tools/nsc/symtab/Types.scala +++ b/src/compiler/scala/tools/nsc/symtab/Types.scala @@ -1083,6 +1083,8 @@ trait Types requires SymbolTable { closureDepthCache = maxDepth(closureCache) } } + if (closureCache eq null) + throw new TypeError("illegal cyclic reference involving " + sym) closureCache } |