From 43318b75bd2752db19925291d0f6195fb984260a Mon Sep 17 00:00:00 2001 From: paltherr Date: Sun, 1 Feb 2004 13:20:10 +0000 Subject: - Removed Definitions.NULL and Definitions.ZERO --- sources/scala/tools/scalai/ExpressionCompiler.java | 1 - sources/scalac/atree/ATreeFromSTree.java | 6 ------ sources/scalac/backend/jvm/GenJVM.java | 6 +----- sources/scalac/backend/msil/GenMSIL.java | 3 --- sources/scalac/checkers/TreeChecker.java | 5 ----- sources/scalac/symtab/Definitions.java | 8 -------- sources/scalac/transformer/Erasure.java | 5 ----- sources/scalac/typechecker/RefCheck.java | 4 ++-- 8 files changed, 3 insertions(+), 35 deletions(-) diff --git a/sources/scala/tools/scalai/ExpressionCompiler.java b/sources/scala/tools/scalai/ExpressionCompiler.java index 35eb5edbca..84594a1f5b 100644 --- a/sources/scala/tools/scalai/ExpressionCompiler.java +++ b/sources/scala/tools/scalai/ExpressionCompiler.java @@ -310,7 +310,6 @@ public class ExpressionCompiler { // !!! return vapply(target, symbol, Tree.EMPTY_ARRAY); } - if (symbol == definitions.NULL) return Code.Null; // !!! return something ? raise exception ? if (!symbol.isValue()) return Code.Null; diff --git a/sources/scalac/atree/ATreeFromSTree.java b/sources/scalac/atree/ATreeFromSTree.java index 405875c0cf..5761a1aabb 100644 --- a/sources/scalac/atree/ATreeFromSTree.java +++ b/sources/scalac/atree/ATreeFromSTree.java @@ -222,13 +222,7 @@ public class ATreeFromSTree { return make.This(tree, tree.symbol()); case Select(_, _): - return make.Load(tree, location(tree)); - case Ident(_): - if (tree.symbol() == definitions.NULL) - return make.Constant(tree, make.NULL); - if (tree.symbol() == definitions.ZERO) - return make.Constant(tree, make.ZERO); return make.Load(tree, location(tree)); case Literal(AConstant value): diff --git a/sources/scalac/backend/jvm/GenJVM.java b/sources/scalac/backend/jvm/GenJVM.java index 58d9e6d55a..06fdea43ef 100644 --- a/sources/scalac/backend/jvm/GenJVM.java +++ b/sources/scalac/backend/jvm/GenJVM.java @@ -448,11 +448,7 @@ class GenJVM { JType type = typeStoJ(sym.info()); if (sym.isModule()) generatedType = genLoadModule(ctx, sym); - else if (sym == defs.NULL) { - if (expectedType != JType.VOID) - ctx.code.emitACONST_NULL(); - generatedType = expectedType; - } else if (sym.owner().isClass()) { + else if (sym.owner().isClass()) { ctx.code.emitALOAD_0(); ctx.code.emitGETFIELD(ctx.clazz.getName(), name.toString(), type); generatedType = type; diff --git a/sources/scalac/backend/msil/GenMSIL.java b/sources/scalac/backend/msil/GenMSIL.java index 5450241104..2e359011a5 100644 --- a/sources/scalac/backend/msil/GenMSIL.java +++ b/sources/scalac/backend/msil/GenMSIL.java @@ -477,9 +477,6 @@ public final class GenMSIL { case Ident(Name name): //log("Ident: " + Debug.show(tree)); - if (sym == defs.NULL) - //return items.LiteralItem(MSILType.NULL_REF, null); - return items.LiteralItem(MSILType.OBJECT, null); MSILType type = type2MSILType(sym.type()); if ( sym.isModule() ) // ??? return load(items.StaticItem diff --git a/sources/scalac/checkers/TreeChecker.java b/sources/scalac/checkers/TreeChecker.java index 9cb683595b..9cce42ca69 100644 --- a/sources/scalac/checkers/TreeChecker.java +++ b/sources/scalac/checkers/TreeChecker.java @@ -300,12 +300,7 @@ public class TreeChecker { return true; case Select(_, _): - return location(tree); - case Ident(_): - Symbol symbol = tree.symbol(); - if (symbol == definitions.NULL) return true; - if (symbol == definitions.ZERO) return true; return location(tree); case Literal(_): diff --git a/sources/scalac/symtab/Definitions.java b/sources/scalac/symtab/Definitions.java index 1cfc8995f8..915cedf1f8 100644 --- a/sources/scalac/symtab/Definitions.java +++ b/sources/scalac/symtab/Definitions.java @@ -436,12 +436,6 @@ public class Definitions { //######################################################################## // Public Fields - Global values - /** The null value */ - public final Symbol NULL; - - /** The zero value (a default null for type variables with bound Any) */ - public final Symbol ZERO; - /** The universal pattern */ public final Symbol PATTERN_WILDCARD; @@ -613,8 +607,6 @@ public class Definitions { Type.PolyType(Symbol.EMPTY_ARRAY, ALL_TYPE())); // create global values - NULL = newTerm(ROOT_CLASS, Names.null_, 0).setInfo(ALLREF_TYPE()); - ZERO = newTerm(ROOT_CLASS, Names.ZERO, 0).setInfo(ALL_TYPE()); PATTERN_WILDCARD = newTerm(ROOT_CLASS, Names.PATTERN_WILDCARD, 0) .setType(ALL_TYPE()); } diff --git a/sources/scalac/transformer/Erasure.java b/sources/scalac/transformer/Erasure.java index 7d7a4c2659..244712fe36 100644 --- a/sources/scalac/transformer/Erasure.java +++ b/sources/scalac/transformer/Erasure.java @@ -217,11 +217,6 @@ public class Erasure extends GenTransformer implements Modifiers { if (isUnboxedType(prefix)) qualifier = box(qualifier, true); return gen.Select(tree.pos, qualifier, symbol); - case Ident(_): - Symbol symbol = tree.symbol(); - if (symbol == definitions.ZERO) return gen.mkNullLit(tree.pos); - return gen.Ident(tree.pos, symbol); - case Literal(AConstant.ZERO): return gen.mkNullLit(tree.pos); diff --git a/sources/scalac/typechecker/RefCheck.java b/sources/scalac/typechecker/RefCheck.java index 54e749e8b6..8e10889800 100644 --- a/sources/scalac/typechecker/RefCheck.java +++ b/sources/scalac/typechecker/RefCheck.java @@ -535,7 +535,7 @@ public class RefCheck extends Transformer implements Modifiers, Kinds { tree.pos, varname, sym.owner(), PRIVATE | MUTABLE | SYNTHETIC) .setInfo(sym.type()); sym.owner().members().enterOrOverload(mvar); - Tree vdef = gen.ValDef(mvar, gen.Ident(tree.pos, defs.NULL)); + Tree vdef = gen.ValDef(mvar, gen.mkNullLit(tree.pos)); // { if (null == m$) m$ = new m$class; m$ } Symbol eqMethod = getUnaryMemberMethod( @@ -543,7 +543,7 @@ public class RefCheck extends Transformer implements Modifiers, Kinds { Tree body = gen.Block(new Tree[]{ gen.If( gen.Apply( - gen.Select(gen.Ident(tree.pos, defs.NULL), eqMethod), + gen.Select(gen.mkNullLit(tree.pos), eqMethod), new Tree[]{gen.mkRef(tree.pos, mvar)}), gen.Assign(gen.mkRef(tree.pos, mvar), alloc), gen.Block(tree.pos, Tree.EMPTY_ARRAY)), -- cgit v1.2.3