diff options
author | Martin Odersky <odersky@gmail.com> | 2003-03-31 19:16:21 +0000 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2003-03-31 19:16:21 +0000 |
commit | 5c510296ee4722412840f1a6c5eafce9051f69ed (patch) | |
tree | 20466a6d8bb0499d08e8cd616c4957aace7743bc /sources/scalac/ast | |
parent | a8f9240799ff6cb13a7de66e9e626ebc3321cc83 (diff) | |
download | scala-5c510296ee4722412840f1a6c5eafce9051f69ed.tar.gz scala-5c510296ee4722412840f1a6c5eafce9051f69ed.tar.bz2 scala-5c510296ee4722412840f1a6c5eafce9051f69ed.zip |
*** empty log message ***
Diffstat (limited to 'sources/scalac/ast')
-rw-r--r-- | sources/scalac/ast/TreeGen.java | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/sources/scalac/ast/TreeGen.java b/sources/scalac/ast/TreeGen.java index ecb4705de5..18275af3a7 100644 --- a/sources/scalac/ast/TreeGen.java +++ b/sources/scalac/ast/TreeGen.java @@ -56,6 +56,14 @@ public class TreeGen implements Kinds, Modifiers { /*************************************************************************/ /** METHODS **/ + private Type deref(Type tp) { + switch (tp) { + case PolyType(Symbol[] tparams, Type restp): + if (tparams.length == 0) return restp; + } + return tp; + } + /** Create a dummy symbol to be used for templates. */ public Symbol localDummy(int pos, Symbol owner) { @@ -157,6 +165,12 @@ public class TreeGen implements Kinds, Modifiers { setType(definitions.BOOLEAN_TYPE); } + /** Build a string literal + */ + public Tree mkStringLit(int pos, String str) { + return make.Literal(pos, str).setType(definitions.JAVA_STRING_TYPE); + } + /** Build a tree to be used as a base class constructor for a template. */ public Tree mkParentConstr(int pos, Type parentType) { @@ -381,7 +395,7 @@ public class TreeGen implements Kinds, Modifiers { Type symtype = qual.type.memberType(sym); Global.instance.prevPhase(); return make.Select(pos, qual, sym.name) - .setSymbol(sym).setType(symtype); + .setSymbol(sym).setType(deref(symtype)); } public Tree Select(Tree qual, Symbol sym) { @@ -401,7 +415,7 @@ public class TreeGen implements Kinds, Modifiers { Type symtype = sym.type(); Global.instance.prevPhase(); return make.Ident(pos, sym.name) - .setSymbol(sym).setType(symtype); + .setSymbol(sym).setType(deref(symtype)); } public Tree Ident(Symbol sym) { |