summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sources/scalac/transformer/ExpandMixins.java7
1 files changed, 3 insertions, 4 deletions
diff --git a/sources/scalac/transformer/ExpandMixins.java b/sources/scalac/transformer/ExpandMixins.java
index 48d81ec4c3..a4619cc393 100644
--- a/sources/scalac/transformer/ExpandMixins.java
+++ b/sources/scalac/transformer/ExpandMixins.java
@@ -99,7 +99,7 @@ public class ClassExpander {
inlineMixinTParams(type);
Tree.Apply constr = (Tree.Apply)template.parents[i];
inlineMixinVParams(mixin.valueParams(), constr.args);
- inlineMixinMembers(impl);
+ inlineMixinMembers(mixin.nextInfo().members(), impl);
parents[i] = Type.TypeRef(prefix, iface, args);
template.parents[i] = gen.mkPrimaryConstr(constr.pos, parents[i]);
state = i;
@@ -125,7 +125,7 @@ public class ClassExpander {
body.append(superFixer.transform(template.body));
template.body = body.toArray();
// !!! *1 fix ExpandMixinsPhase.transformInfo and remove next line
- clasz.updateInfo(template.type());
+ clasz.updateInfo(Type.compoundType(parents, members, clasz));
state = 0;
return template;
}
@@ -161,8 +161,7 @@ public class ClassExpander {
}
}
- private void inlineMixinMembers(Template mixin) {
- Scope symbols = mixin.type().members();
+ private void inlineMixinMembers(Scope symbols, Template mixin) {
// The map names is used to implement an all or nothing
// strategy for overloaded symbols.
Map/*<Name,Name>*/ names = new HashMap();