diff options
author | schinz <schinz@epfl.ch> | 2003-04-03 11:30:50 +0000 |
---|---|---|
committer | schinz <schinz@epfl.ch> | 2003-04-03 11:30:50 +0000 |
commit | 7acb9ba8229e04c547f0d116920e26ee1307ef94 (patch) | |
tree | 6a28fe11d63558c8096610eac52543af2ebc7e85 /sources/scalac | |
parent | 5e49a572448667d635bd93905992ad2ba1fd108a (diff) | |
download | scala-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')
-rw-r--r-- | sources/scalac/transformer/AddInterfaces.java | 8 |
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); } } |