diff options
author | Martin Odersky <odersky@gmail.com> | 2006-12-13 14:32:00 +0000 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2006-12-13 14:32:00 +0000 |
commit | f50f40c2df3598a31799839560511b06d2925696 (patch) | |
tree | 7baa2a67b7f2f83c8954339b1d4b52577f51950a /src | |
parent | 60231d47f3e026a756b2b9fd8e0a840ab1fea0a7 (diff) | |
download | scala-f50f40c2df3598a31799839560511b06d2925696.tar.gz scala-f50f40c2df3598a31799839560511b06d2925696.tar.bz2 scala-f50f40c2df3598a31799839560511b06d2925696.zip |
changed Type.toString for unary tuples.
Diffstat (limited to 'src')
-rw-r--r-- | src/compiler/scala/tools/nsc/ast/parser/Parsers.scala | 10 | ||||
-rw-r--r-- | src/compiler/scala/tools/nsc/symtab/Types.scala | 2 | ||||
-rw-r--r-- | src/compiler/scala/tools/nsc/typechecker/Namers.scala | 2 |
3 files changed, 8 insertions, 6 deletions
diff --git a/src/compiler/scala/tools/nsc/ast/parser/Parsers.scala b/src/compiler/scala/tools/nsc/ast/parser/Parsers.scala index 70bc199c31..67cd870036 100644 --- a/src/compiler/scala/tools/nsc/ast/parser/Parsers.scala +++ b/src/compiler/scala/tools/nsc/ast/parser/Parsers.scala @@ -2128,17 +2128,19 @@ trait Parsers requires SyntaxAnalyzer { } else if (isExprIntro) { val expr = blockStatExpr() if (in.token == COMMA) { - val exprs = new ListBuffer[Tree] + expr + val exprbuf = new ListBuffer[Tree] + expr while (in.token == COMMA) { in.nextToken() - if (in.token != RBRACE) exprs += expr1() + if (in.token != RBRACE) exprbuf += expr1() } + val exprs = exprbuf.toList if (in.token == ARROW) { - val vdefs = exprs.toList flatMap convertToParams + val vdefs = exprs flatMap convertToParams checkSize("function arguments", vdefs.length, definitions.MaxFunctionArity) stats += atPos(in.skipToken()) { Function(vdefs, block()) } } else { - stats += makeTupleTerm(exprs.toList, false) + checkSize("tuple elements:", exprs.length, definitions.MaxTupleArity) + stats += makeTupleTerm(exprs, false) } } else stats += expr if (in.token != RBRACE && in.token != CASE) acceptStatSep() diff --git a/src/compiler/scala/tools/nsc/symtab/Types.scala b/src/compiler/scala/tools/nsc/symtab/Types.scala index 5cc54503ab..3673f1f4fc 100644 --- a/src/compiler/scala/tools/nsc/symtab/Types.scala +++ b/src/compiler/scala/tools/nsc/symtab/Types.scala @@ -961,7 +961,7 @@ trait Types requires SymbolTable { if (isFunctionType(this)) return args.init.mkString("(", ", ", ")") + " => " + args.last if (isTupleType(this)) - return args.mkString("{", ", ", "}") + return args.mkString("{", ", ", if (args.length == 1) ",}" else "}") } val str = (pre.prefixString + sym.nameString + (if (args.isEmpty) "" else args.mkString("[", ",", "]"))) diff --git a/src/compiler/scala/tools/nsc/typechecker/Namers.scala b/src/compiler/scala/tools/nsc/typechecker/Namers.scala index 661238a387..cb6e29650f 100644 --- a/src/compiler/scala/tools/nsc/typechecker/Namers.scala +++ b/src/compiler/scala/tools/nsc/typechecker/Namers.scala @@ -397,7 +397,7 @@ trait Namers requires Analyzer { .setInfo(typeCompleter(param)) .setFlag(param.mods.flags & (BYNAMEPARAM | IMPLICIT)) setPrivateWithin(param, param.symbol, param.mods) - context.scope enter param.symbol + enterInScope(param.symbol) param.symbol } else param.symbol vparamss.map(.map(enterValueParam)) |