diff options
author | Martin Odersky <odersky@gmail.com> | 2006-12-11 11:35:38 +0000 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2006-12-11 11:35:38 +0000 |
commit | 64c81890a5ac1ef27db7e7a44de4239365441341 (patch) | |
tree | bbf5777c905b14535c49442a7d40a86381a226bc /src/compiler/scala/tools/nsc/ast/parser/TreeBuilder.scala | |
parent | 593deb5d5004162a35a98277900d2baeb40c09c8 (diff) | |
download | scala-64c81890a5ac1ef27db7e7a44de4239365441341.tar.gz scala-64c81890a5ac1ef27db7e7a44de4239365441341.tar.bz2 scala-64c81890a5ac1ef27db7e7a44de4239365441341.zip |
added infix types and {...} syntax for tuples.
changed a confusing error message "value this is not a member of T".
Diffstat (limited to 'src/compiler/scala/tools/nsc/ast/parser/TreeBuilder.scala')
-rw-r--r-- | src/compiler/scala/tools/nsc/ast/parser/TreeBuilder.scala | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/compiler/scala/tools/nsc/ast/parser/TreeBuilder.scala b/src/compiler/scala/tools/nsc/ast/parser/TreeBuilder.scala index e98793f736..4060d8f619 100644 --- a/src/compiler/scala/tools/nsc/ast/parser/TreeBuilder.scala +++ b/src/compiler/scala/tools/nsc/ast/parser/TreeBuilder.scala @@ -94,12 +94,18 @@ abstract class TreeBuilder { Apply(scalaDot(if (isType) newTypeName(tupString) else newTermName(tupString)), trees) } - private def makeTupleTerm(trees: List[Tree]): Tree = trees match { + def makeTupleTerm(trees: List[Tree]): Tree = trees match { case List() => Literal(()) case List(tree) => tree case _ => makeTuple(trees, false) } + def makeTupleType(trees: List[Tree]): Tree = trees match { + case List() => scalaUnitConstr + case List(tree) => tree + case _ => AppliedTypeTree(scalaDot(newTypeName("Tuple" + trees.length)), trees) + } + /** If tree is a variable pattern, return Some("its name and type"). * Otherwise return none */ private def matchVarPattern(tree: Tree): Option[Pair[Name, Tree]] = tree match { |