summaryrefslogtreecommitdiff
path: root/sources/scalac/transformer/ErasurePhase.java
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2003-03-07 16:01:40 +0000
committerMartin Odersky <odersky@gmail.com>2003-03-07 16:01:40 +0000
commitbe7a96e1b5f518421414a81298cad41cb8e52bf5 (patch)
tree11f2e3b1b1c5ca3a5ff163d964b77afb631d2008 /sources/scalac/transformer/ErasurePhase.java
parent4d43c508f360efa148448b474cd995e5efa0344b (diff)
downloadscala-be7a96e1b5f518421414a81298cad41cb8e52bf5.tar.gz
scala-be7a96e1b5f518421414a81298cad41cb8e52bf5.tar.bz2
scala-be7a96e1b5f518421414a81298cad41cb8e52bf5.zip
*** empty log message ***
Diffstat (limited to 'sources/scalac/transformer/ErasurePhase.java')
-rw-r--r--sources/scalac/transformer/ErasurePhase.java15
1 files changed, 6 insertions, 9 deletions
diff --git a/sources/scalac/transformer/ErasurePhase.java b/sources/scalac/transformer/ErasurePhase.java
index 3ba2294ccb..2810ebf26b 100644
--- a/sources/scalac/transformer/ErasurePhase.java
+++ b/sources/scalac/transformer/ErasurePhase.java
@@ -24,6 +24,7 @@ import scalac.symtab.Definitions;
import scalac.symtab.Symbol;
import scalac.symtab.Type;
import scalac.util.Name;
+import scalac.util.Names;
import scalac.util.Debug;
public class ErasurePhase extends PhaseDescriptor {
@@ -47,12 +48,6 @@ public class ErasurePhase extends PhaseDescriptor {
return new Erasure(global, this);
}
- private static final Name as_N = Name.fromString("as");
- private static final Name is_N = Name.fromString("is");
- private static final Name box_N = Name.fromString("box");
- private static final Name scala_runtime_RunTime_N =
- Name.fromString("scala.runtime.RunTime");
-
private Type eraseParams(Type tp) {
switch (tp) {
case PolyType(_, Type result):
@@ -67,16 +62,18 @@ public class ErasurePhase extends PhaseDescriptor {
}
public Type transformInfo(Symbol sym, Type tp) {
- if ((sym.name == is_N || sym.name == as_N) &&
+ if ((sym.name == Names.is || sym.name == Names.as) &&
sym.owner() == definitions.ANY_CLASS)
return tp;
- else if (sym.name == box_N &&
- sym.owner().fullName() == scala_runtime_RunTime_N)
+ else if (sym.name == Names.box &&
+ sym.owner().fullName() == Names.scala_runtime_RunTime)
return eraseParams(tp);
else if (sym.isClass())
return Type.erasureMap.map(tp);
else if (sym.isType())
return tp;
+ else if (sym == definitions.NULL)
+ return tp.resultType().erasure();
else
return tp.erasure();
}