summaryrefslogtreecommitdiff
path: root/sources/scalac/symtab/Symbol.java
diff options
context:
space:
mode:
authorpaltherr <paltherr@epfl.ch>2004-03-12 17:33:10 +0000
committerpaltherr <paltherr@epfl.ch>2004-03-12 17:33:10 +0000
commitc39826e69ed3f897d9201fc0e63c28023b52e0a6 (patch)
treedc289c2eaa86b066717741cfdc4d6193af586a25 /sources/scalac/symtab/Symbol.java
parentdb24f5b0d6ed01e5cfbb27da406b0ebba26e0beb (diff)
downloadscala-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.java39
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) {