diff options
author | Martin Odersky <odersky@gmail.com> | 2013-04-19 15:36:22 +0200 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2013-04-19 15:36:53 +0200 |
commit | 4a93c8c132941ff3dae9ebf2dc27b37cd4f7cdec (patch) | |
tree | 851095e9376d26b2624a5676a765d04de3ea87f8 /src/dotty/tools/dotc/core | |
parent | 6b58c275293b2c2b0bf3390eaee94ec31bcbdab9 (diff) | |
download | dotty-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.scala | 1 | ||||
-rw-r--r-- | src/dotty/tools/dotc/core/StdNames.scala | 4 | ||||
-rw-r--r-- | src/dotty/tools/dotc/core/Trees.scala | 3 | ||||
-rw-r--r-- | src/dotty/tools/dotc/core/TypedTrees.scala | 2 |
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( |