diff options
author | schinz <schinz@epfl.ch> | 2003-04-02 15:13:31 +0000 |
---|---|---|
committer | schinz <schinz@epfl.ch> | 2003-04-02 15:13:31 +0000 |
commit | bfcbdb5f9022bf230524a15c1abf98140ffd1ddc (patch) | |
tree | 2d3e7c92eec714d46160bb8f300954b8629b5430 | |
parent | a3d34c650abb28375a64b417b3c934d948f4fc69 (diff) | |
download | scala-bfcbdb5f9022bf230524a15c1abf98140ffd1ddc.tar.gz scala-bfcbdb5f9022bf230524a15c1abf98140ffd1ddc.tar.bz2 scala-bfcbdb5f9022bf230524a15c1abf98140ffd1ddc.zip |
- bug fix: types of class members have their ow...
- bug fix: types of class members have their own class type for "this"
types
-rw-r--r-- | sources/scalac/transformer/AddInterfaces.java | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/sources/scalac/transformer/AddInterfaces.java b/sources/scalac/transformer/AddInterfaces.java index e8ff38a979..7799768c2f 100644 --- a/sources/scalac/transformer/AddInterfaces.java +++ b/sources/scalac/transformer/AddInterfaces.java @@ -468,8 +468,11 @@ class AddInterfaces extends SubstTransformer { if (member.hasSymbol()) { Symbol sym = member.symbol(); if (sym.kind != Kinds.CLASS - && ifaceMemberToClass.containsKey(sym)) - member.setSymbol((Symbol)ifaceMemberToClass.get(sym)); + && ifaceMemberToClass.containsKey(sym)) { + Symbol cSym = (Symbol)ifaceMemberToClass.get(sym); + cSym.updateInfo(thisTypeSubst.apply(cSym.info())); + member.setSymbol(cSym); + } } } @@ -517,7 +520,7 @@ class AddInterfaces extends SubstTransformer { .setType(fixClassSymbols(tree.type)); } - case DefDef(_, _, _, _, Tree tpe, _): { + case DefDef(_, _, _, _, _, _): { Symbol sym = tree.symbol(); if (funParamsMaps.containsKey(sym)) { Map funParamsMap = (Map)funParamsMaps.get(sym); |