summaryrefslogtreecommitdiff
path: root/sources/scalac/transformer
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2004-07-08 10:28:37 +0000
committerMartin Odersky <odersky@gmail.com>2004-07-08 10:28:37 +0000
commitce3243d0a453d706dd9b6038b3bee92f4264903c (patch)
treec3e2d4551e5998f9feeb1ac0c9b59e52935c7484 /sources/scalac/transformer
parentbc7e8ae564e604d082ff0cf0a8b9de2fda4c89b6 (diff)
downloadscala-ce3243d0a453d706dd9b6038b3bee92f4264903c.tar.gz
scala-ce3243d0a453d706dd9b6038b3bee92f4264903c.tar.bz2
scala-ce3243d0a453d706dd9b6038b3bee92f4264903c.zip
*** empty log message ***
Diffstat (limited to 'sources/scalac/transformer')
-rw-r--r--sources/scalac/transformer/AddInterfaces.java9
-rw-r--r--sources/scalac/transformer/AddInterfacesPhase.java4
-rw-r--r--sources/scalac/transformer/Erasure.java54
-rw-r--r--sources/scalac/transformer/ExpandMixinsPhase.java3
-rw-r--r--sources/scalac/transformer/TypesAsValuesPhase.java3
5 files changed, 10 insertions, 63 deletions
diff --git a/sources/scalac/transformer/AddInterfaces.java b/sources/scalac/transformer/AddInterfaces.java
index a54bcc95e8..1f4b057ee4 100644
--- a/sources/scalac/transformer/AddInterfaces.java
+++ b/sources/scalac/transformer/AddInterfaces.java
@@ -227,13 +227,8 @@ public class AddInterfaces extends GenTransformer {
*/
private Tree getClassTree(Symbol clasz, TreeList body, Map methods) {
Scope members = clasz.nextInfo().members();
- /*
- for (Scope.SymbolIterator i = members.iterator(false); i.hasNext(); ) {
- Symbol sym = i.next();
- System.out.println(clasz + " defines " + sym + ":" + sym.getType());
- }
- */
- for (Scope.SymbolIterator i = members.iterator(true); i.hasNext(); ) {
+ for (Scope.SymbolIterator i = members.iterator();
+ i.hasNext(); ) {
Symbol member = i.next();
if (!member.isTerm()) continue;
body.append(getMemberTree(clasz, member, methods));
diff --git a/sources/scalac/transformer/AddInterfacesPhase.java b/sources/scalac/transformer/AddInterfacesPhase.java
index 9b7ebf6675..6cf968bfef 100644
--- a/sources/scalac/transformer/AddInterfacesPhase.java
+++ b/sources/scalac/transformer/AddInterfacesPhase.java
@@ -49,7 +49,7 @@ public class AddInterfacesPhase extends Phase {
Scope newMembers = new Scope();
Scope.SymbolIterator oldMembersIt =
- new Scope.UnloadIterator(tp.members().iterator());
+ tp.members().iterator();
while (oldMembersIt.hasNext()) {
Symbol member = oldMembersIt.next();
@@ -186,7 +186,7 @@ public class AddInterfacesPhase extends Phase {
// Clone all members, entering them in the class scope.
Scope classMembers = new Scope();
Scope.SymbolIterator ifaceMembersIt =
- new Scope.UnloadIterator(ifaceSym.members().iterator());
+ ifaceSym.members().iterator();
while (ifaceMembersIt.hasNext()) {
Symbol ifaceMemberSym = ifaceMembersIt.next();
diff --git a/sources/scalac/transformer/Erasure.java b/sources/scalac/transformer/Erasure.java
index d200aab112..ea77bdf926 100644
--- a/sources/scalac/transformer/Erasure.java
+++ b/sources/scalac/transformer/Erasure.java
@@ -113,7 +113,6 @@ public class Erasure extends GenTransformer implements Modifiers {
case ClassDef(_, _, _, _, _, Template(_, Tree[] body)):
Symbol clasz = tree.symbol();
TreeList members = new TreeList(transform(body));
- checkOverloadedTermsOf(clasz);
addBridges(clasz, members);
return gen.ClassDef(clasz, members.toArray());
@@ -570,56 +569,6 @@ public class Erasure extends GenTransformer implements Modifiers {
throw Debug.abort("non-array type", type);
}
- //########################################################################
- // Private Methods - Overlapping signatures detection
-
- /**
- * Checks that overloaded terms of the given class have no
- * overlapping erased signatures.
- */
- private void checkOverloadedTermsOf(Symbol clasz) {
- // !!! we might also accidentally override an inherited method !
- for (SymbolIterator si = clasz.members().iterator(); si.hasNext(); ) {
- Symbol symbol = si.next();
- if (!symbol.isTerm()) continue;
- switch (symbol.info()) {
- case OverloadedType(Symbol[] symbols, _):
- Type[] types = new Type[symbols.length];
- for (int i = 0; i < symbols.length; i++) {
- types[i] = symbols[i].nextType();
- for (int j = 0; j < i; j++) {
- if (!isSameAs(types[i], types[j])) continue;
- errorOverlappingSignatures(symbols[j], symbols[i]);
- break;
- }
- }
- }
- }
- }
-
- /** Reports an overlapping signature error for given symbols. */
- private void errorOverlappingSignatures(Symbol symbol1, Symbol symbol2) {
- SymbolTablePrinter printer = new SymbolTablePrinter(" ");
- printer.print("overlapping overloaded alternatives;").space();
- printer.print("the two following alternatives of").space();
- printer.printSymbolKindAndName(symbol1).space();
- printer.print("have the same erasure:").space();
- printer.printType(symbol1.nextType());
- Phase phase = global.currentPhase;
- global.currentPhase = global.PHASE.ANALYZER.phase();
- printer.indent();
- printer.line().print("alternative 1:").space().printSignature(symbol1);
- printer.line().print("alternative 2:").space().printSignature(symbol2);
- printer.undent();
- global.currentPhase = phase;
- unit.error(symbol2.pos, printer.toString());
- }
-
- //########################################################################
- //########################################################################
- //########################################################################
- //########################################################################
-
//////////////////////////////////////////////////////////////////////////////////
// Bridge Building
/////////////////////////////////////////////////////////////////////////////////
@@ -732,7 +681,8 @@ public class Erasure extends GenTransformer implements Modifiers {
}
private void addInterfaceBridgesAux(Symbol owner, Scope symbols) {
- for (Scope.SymbolIterator i = symbols.iterator(true); i.hasNext();) {
+ for (Scope.SymbolIterator i = symbols.iterator();
+ i.hasNext();) {
Symbol member = i.next();
if (!member.isTerm() || !member.isDeferred()) continue;
addInterfaceBridges(owner, member);
diff --git a/sources/scalac/transformer/ExpandMixinsPhase.java b/sources/scalac/transformer/ExpandMixinsPhase.java
index e43ed7b975..57c94a8708 100644
--- a/sources/scalac/transformer/ExpandMixinsPhase.java
+++ b/sources/scalac/transformer/ExpandMixinsPhase.java
@@ -394,7 +394,8 @@ public class ExpandMixinsPhase extends Phase {
private void createMixedInMemberSymbols(Scope symbols) {
Scope scope = clasz.members();
- for (SymbolIterator i = symbols.iterator(true); i.hasNext();) {
+ for (SymbolIterator i = symbols.iterator();
+ i.hasNext();) {
Symbol member = i.next();
boolean shadowed = member.isPrivate() || member.isInitializer()
|| member.overridingSymbol(clasz.thisType()) != member;
diff --git a/sources/scalac/transformer/TypesAsValuesPhase.java b/sources/scalac/transformer/TypesAsValuesPhase.java
index d3147ad981..d5b07dd28d 100644
--- a/sources/scalac/transformer/TypesAsValuesPhase.java
+++ b/sources/scalac/transformer/TypesAsValuesPhase.java
@@ -100,7 +100,8 @@ public class TypesAsValuesPhase extends Phase {
if (newSymbols == null) {
newSymbols = new HashMap();
- Scope.SymbolIterator membersIt = classSym.members().iterator(true);
+ Scope.SymbolIterator membersIt =
+ classSym.members().iterator();
while (membersIt.hasNext()) {
Symbol member = membersIt.next();
if (member.isType() /*&& !member.isClass()*/) {