diff options
author | paltherr <paltherr@epfl.ch> | 2004-03-12 17:33:10 +0000 |
---|---|---|
committer | paltherr <paltherr@epfl.ch> | 2004-03-12 17:33:10 +0000 |
commit | c39826e69ed3f897d9201fc0e63c28023b52e0a6 (patch) | |
tree | dc289c2eaa86b066717741cfdc4d6193af586a25 /sources/scalac/symtab/Symbol.java | |
parent | db24f5b0d6ed01e5cfbb27da406b0ebba26e0beb (diff) | |
download | scala-c39826e69ed3f897d9201fc0e63c28023b52e0a6.tar.gz scala-c39826e69ed3f897d9201fc0e63c28023b52e0a6.tar.bz2 scala-c39826e69ed3f897d9201fc0e63c28023b52e0a6.zip |
- Moved TermSymbol.{lookup,define} into Analyzer
Diffstat (limited to 'sources/scalac/symtab/Symbol.java')
-rw-r--r-- | sources/scalac/symtab/Symbol.java | 39 |
1 files changed, 5 insertions, 34 deletions
diff --git a/sources/scalac/symtab/Symbol.java b/sources/scalac/symtab/Symbol.java index 541285f3ed..897dc075cd 100644 --- a/sources/scalac/symtab/Symbol.java +++ b/sources/scalac/symtab/Symbol.java @@ -89,6 +89,11 @@ public abstract class Symbol implements Modifiers, Kinds { // Factories -------------------------------------------------------------- /** Creates a new constructor of this symbol. */ + public final TermSymbol newTerm(int pos, int flags, Name name) { + return new TermSymbol(pos, name, this, flags, 0); + } + + /** Creates a new constructor of this symbol. */ public final TermSymbol newConstructor(int pos, int flags) { assert isType(): Debug.show(this); return new TermSymbol(pos, Names.CONSTRUCTOR, owner(), flags, 0, this); @@ -1461,40 +1466,6 @@ public class TermSymbol extends Symbol { assert name.isTermName(): Debug.show(this); } - public static TermSymbol define( - int pos, Name name, Symbol owner, int flags, Scope scope) { - TermSymbol symbol = lookup(pos, name, owner, flags, scope); - if (symbol != null) return symbol; - return new TermSymbol(pos, name, owner, flags); - } - public static TermSymbol lookup( - int pos, Name name, Symbol owner, int flags, Scope scope) { - Scope.Entry e = scope.lookupEntry(name); - if (e.owner == scope && e.sym.isExternal() && e.sym.kind == VAL) { - TermSymbol sym = (TermSymbol) e.sym; - if (sym.isInitialized()) { - switch (sym.type()) { - case OverloadedType(Symbol[] alts, Type[] alttypes): - int i = 0; - while (i < alts.length && !alts[i].isExternal()) - i++; - if (i < alts.length) { - //System.out.println("PATCH: " + alts[i] + ":" + alttypes[i]);//DEBUG - alts[i].update(pos, flags); - if (i == alts.length - 1) - sym.update(pos, sym.flags); - return (TermSymbol) alts[i]; - } - throw new ApplicationError("TermSymbol.define " + sym); - } - } - sym.update(pos, flags); - return sym; - } else { - return null; - } - } - /** Dummy symbol for template of given class */ public static Symbol newLocalDummy(Symbol clazz) { |