aboutsummaryrefslogtreecommitdiff
path: root/src/dotty/tools/dotc/core
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2013-04-19 15:36:22 +0200
committerMartin Odersky <odersky@gmail.com>2013-04-19 15:36:53 +0200
commit4a93c8c132941ff3dae9ebf2dc27b37cd4f7cdec (patch)
tree851095e9376d26b2624a5676a765d04de3ea87f8 /src/dotty/tools/dotc/core
parent6b58c275293b2c2b0bf3390eaee94ec31bcbdab9 (diff)
downloaddotty-4a93c8c132941ff3dae9ebf2dc27b37cd4f7cdec.tar.gz
dotty-4a93c8c132941ff3dae9ebf2dc27b37cd4f7cdec.tar.bz2
dotty-4a93c8c132941ff3dae9ebf2dc27b37cd4f7cdec.zip
Added symbolic XML builder
Diffstat (limited to 'src/dotty/tools/dotc/core')
-rw-r--r--src/dotty/tools/dotc/core/Definitions.scala1
-rw-r--r--src/dotty/tools/dotc/core/StdNames.scala4
-rw-r--r--src/dotty/tools/dotc/core/Trees.scala3
-rw-r--r--src/dotty/tools/dotc/core/TypedTrees.scala2
4 files changed, 8 insertions, 2 deletions
diff --git a/src/dotty/tools/dotc/core/Definitions.scala b/src/dotty/tools/dotc/core/Definitions.scala
index 049e882e7..95b2db5a5 100644
--- a/src/dotty/tools/dotc/core/Definitions.scala
+++ b/src/dotty/tools/dotc/core/Definitions.scala
@@ -139,6 +139,7 @@ class Definitions(implicit ctx: Context) {
ScalaPackageClass, tpnme.Null, AbstractFinal, List(AnyRefAlias.typeConstructor)).entered
lazy val PredefModule = requiredModule("scala.Predef")
+ lazy val NilModule = requiredModule("scala.collection.immutable.Nil")
// lazy val FunctionClass: ClassSymbol = requiredClass("scala.Function")
lazy val SingletonClass: ClassSymbol =
diff --git a/src/dotty/tools/dotc/core/StdNames.scala b/src/dotty/tools/dotc/core/StdNames.scala
index 6e25cdf99..4ef3456df 100644
--- a/src/dotty/tools/dotc/core/StdNames.scala
+++ b/src/dotty/tools/dotc/core/StdNames.scala
@@ -601,7 +601,7 @@ object StdNames {
}
class ScalaTermNames extends ScalaNames[TermName] {
- protected def fromString(s: String) = termName(s)
+ protected implicit def fromString(s: String): TermName = termName(s)
@switch def syntheticParamName(i: Int): TermName = i match {
case 0 => x_0
@@ -627,7 +627,7 @@ object StdNames {
}
class ScalaTypeNames extends ScalaNames[TypeName] {
- protected def fromString(s: String) = typeName(s)
+ protected implicit def fromString(s: String): TypeName = typeName(s)
@switch def syntheticTypeParamName(i: Int): TypeName =
typeName("T"+i)
diff --git a/src/dotty/tools/dotc/core/Trees.scala b/src/dotty/tools/dotc/core/Trees.scala
index 664b7f41b..7befc9956 100644
--- a/src/dotty/tools/dotc/core/Trees.scala
+++ b/src/dotty/tools/dotc/core/Trees.scala
@@ -275,6 +275,9 @@ object Trees {
val pos = cpos union tpt.pos
}
+ def New[T >: Untyped](tpt: Tree[T], argss: List[List[Tree[T]]])(implicit cpos: Position): Tree[T] =
+ ((Select(New(tpt), nme.CONSTRUCTOR): Tree[T]) /: argss)(Apply(_, _))
+
/** (left, right) */
case class Pair[T >: Untyped](left: Tree[T], right: Tree[T])(implicit cpos: Position)
extends TermTree[T] {
diff --git a/src/dotty/tools/dotc/core/TypedTrees.scala b/src/dotty/tools/dotc/core/TypedTrees.scala
index 414cd6e2f..bec986ea2 100644
--- a/src/dotty/tools/dotc/core/TypedTrees.scala
+++ b/src/dotty/tools/dotc/core/TypedTrees.scala
@@ -239,6 +239,8 @@ object TypedTrees {
case pre => SelectFromTypeTree(TypeTree(pre), tp)
} // no checks necessary
+ def ref(sym: TermSymbol)implicit ctx: Context): tpd.NameTree = ref(sym.termRef)
+
/** new C(args) */
def New(tp: Type, args: List[Tree])(implicit ctx: Context): Apply =
Apply(