summaryrefslogtreecommitdiff
path: root/src/compiler/scala/tools/nsc/ast/parser/TreeBuilder.scala
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2006-12-11 11:35:38 +0000
committerMartin Odersky <odersky@gmail.com>2006-12-11 11:35:38 +0000
commit64c81890a5ac1ef27db7e7a44de4239365441341 (patch)
treebbf5777c905b14535c49442a7d40a86381a226bc /src/compiler/scala/tools/nsc/ast/parser/TreeBuilder.scala
parent593deb5d5004162a35a98277900d2baeb40c09c8 (diff)
downloadscala-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.scala8
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 {