diff options
author | schinz <schinz@epfl.ch> | 2005-01-25 10:24:16 +0000 |
---|---|---|
committer | schinz <schinz@epfl.ch> | 2005-01-25 10:24:16 +0000 |
commit | 402ee863034f31f45a76759e6e51c2713cb63af0 (patch) | |
tree | b188cfe37e5185113ec9dbf5ea6a2597f8d76a51 | |
parent | 042b3c397809ae173d426ba5098a40c3f11437e9 (diff) | |
download | scala-402ee863034f31f45a76759e6e51c2713cb63af0.tar.gz scala-402ee863034f31f45a76759e6e51c2713cb63af0.tar.bz2 scala-402ee863034f31f45a76759e6e51c2713cb63af0.zip |
- added support for ThisTypes
-rw-r--r-- | sources/scalac/transformer/TypesAsValuesPhase.java | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/sources/scalac/transformer/TypesAsValuesPhase.java b/sources/scalac/transformer/TypesAsValuesPhase.java index b78a8a8f78..6c48e353d5 100644 --- a/sources/scalac/transformer/TypesAsValuesPhase.java +++ b/sources/scalac/transformer/TypesAsValuesPhase.java @@ -790,6 +790,9 @@ public class TypesAsValuesPhase extends Phase { case SingleType(Type pre, Symbol sym): return singleType(pos, (Type.SingleType)tp); + case ThisType(Symbol sym): + return thisType(pos, sym); + case CompoundType(Type[] parts, Scope members): return compoundType(pos, parts, members, owner, env); @@ -819,6 +822,13 @@ public class TypesAsValuesPhase extends Phase { return gen.New(pos, gen.mkApply_V(constr, args)); } + private Tree thisType(int pos, Symbol sym) { + Tree constr = + gen.mkPrimaryConstructorGlobalRef(pos, defs.SINGLETYPE_CLASS); + Tree[] args = new Tree[] { gen.This(pos, sym) }; + return gen.New(pos, gen.mkApply_V(constr, args)); + } + private Tree singleType(int pos, Type.SingleType tp) { Tree constr = gen.mkPrimaryConstructorGlobalRef(pos, defs.SINGLETYPE_CLASS); |