summaryrefslogtreecommitdiff
path: root/sources/scalac/transformer/AddInterfaces.java
diff options
context:
space:
mode:
authorschinz <schinz@epfl.ch>2003-04-03 11:30:50 +0000
committerschinz <schinz@epfl.ch>2003-04-03 11:30:50 +0000
commit7acb9ba8229e04c547f0d116920e26ee1307ef94 (patch)
tree6a28fe11d63558c8096610eac52543af2ebc7e85 /sources/scalac/transformer/AddInterfaces.java
parent5e49a572448667d635bd93905992ad2ba1fd108a (diff)
downloadscala-7acb9ba8229e04c547f0d116920e26ee1307ef94.tar.gz
scala-7acb9ba8229e04c547f0d116920e26ee1307ef94.tar.bz2
scala-7acb9ba8229e04c547f0d116920e26ee1307ef94.zip
- re-fixed the previous bug, in a cleaner and m...
- re-fixed the previous bug, in a cleaner and more general way
Diffstat (limited to 'sources/scalac/transformer/AddInterfaces.java')
-rw-r--r--sources/scalac/transformer/AddInterfaces.java8
1 files changed, 6 insertions, 2 deletions
diff --git a/sources/scalac/transformer/AddInterfaces.java b/sources/scalac/transformer/AddInterfaces.java
index 7799768c2f..6339ac1497 100644
--- a/sources/scalac/transformer/AddInterfaces.java
+++ b/sources/scalac/transformer/AddInterfaces.java
@@ -394,8 +394,13 @@ class AddInterfaces extends SubstTransformer {
}
public Tree transform(Tree tree) {
- if (thisTypeSubst != null)
+ if (thisTypeSubst != null) {
+ if (tree.definesSymbol()) {
+ Symbol sym = tree.symbol();
+ sym.updateInfo(thisTypeSubst.apply(sym.nextInfo()));
+ }
tree.setType(thisTypeSubst.apply(tree.type()));
+ }
switch (tree) {
case ClassDef(int mods,
@@ -470,7 +475,6 @@ class AddInterfaces extends SubstTransformer {
if (sym.kind != Kinds.CLASS
&& ifaceMemberToClass.containsKey(sym)) {
Symbol cSym = (Symbol)ifaceMemberToClass.get(sym);
- cSym.updateInfo(thisTypeSubst.apply(cSym.info()));
member.setSymbol(cSym);
}
}