From 4c10e8515b2d1b7991f660b444f4b0a5d014286d Mon Sep 17 00:00:00 2001 From: schinz Date: Tue, 26 Aug 2003 15:00:56 +0000 Subject: - bug fix: try to correctly transform secondary... - bug fix: try to correctly transform secondary constructors --- sources/scalac/transformer/AddInterfaces.java | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) (limited to 'sources') diff --git a/sources/scalac/transformer/AddInterfaces.java b/sources/scalac/transformer/AddInterfaces.java index 466c58a07d..516a9af6bf 100644 --- a/sources/scalac/transformer/AddInterfaces.java +++ b/sources/scalac/transformer/AddInterfaces.java @@ -119,18 +119,25 @@ class AddInterfaces extends Transformer { Tree tpe, Tree rhs): { Symbol sym = tree.symbol(); - Symbol owner = sym.owner(); Tree newTree; + Symbol owner; + if (sym.isConstructor()) + owner = sym.constructorClass(); + else + owner = sym.owner(); + if (owner.isClass() && phase.needInterface(owner)) { Symbol classOwner = phase.getClassSymbol(owner); Map ownerMemberMap = phase.getClassMemberMap(classOwner); Symbol newSym = (Symbol)ownerMemberMap.get(sym); - assert newSym != null; + assert newSym != null + : Debug.show(sym) + " not in " + ownerMemberMap; global.nextPhase(); typeSubst.insertSymbol(sym.typeParams(), newSym.typeParams()); - typeSubst.insertSymbol(sym.valueParams(), newSym.valueParams()); + if (!sym.isConstructor()) + typeSubst.insertSymbol(sym.valueParams(), newSym.valueParams()); global.prevPhase(); pushOwnerSubst(sym, newSym); -- cgit v1.2.3