From 3a8034f03a5514feeef5344e9914b08f19cac4e8 Mon Sep 17 00:00:00 2001 From: paltherr Date: Thu, 16 Oct 2003 11:56:02 +0000 Subject: - Added transformation of Super nodes --- sources/scalac/transformer/AddInterfaces.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'sources/scalac') diff --git a/sources/scalac/transformer/AddInterfaces.java b/sources/scalac/transformer/AddInterfaces.java index e841d1a60c..497b7a4feb 100644 --- a/sources/scalac/transformer/AddInterfaces.java +++ b/sources/scalac/transformer/AddInterfaces.java @@ -159,6 +159,12 @@ class AddInterfaces extends Transformer { return gen.This(tree.pos, classThisSym); } + case Super(_, _): { + // Use class symbol for references to "super". + Symbol classSuperSym = phase.getClassSymbol(tree.symbol()); + return gen.Super(tree.pos, classSuperSym); + } + case Select(Super(_, _), _): { // Use class member symbols for references to "super". @@ -166,8 +172,9 @@ class AddInterfaces extends Transformer { Symbol classOwner = phase.getClassSymbol(sym.owner()); Map ownerMemberMap = phase.getClassMemberMap(classOwner); if (ownerMemberMap != null && ownerMemberMap.containsKey(sym)) { + Tree qualifier = transform(((Select)tree).qualifier); Symbol newSym = (Symbol)ownerMemberMap.get(sym); - return gen.Select(((Select)tree).qualifier, newSym); + return gen.Select(tree.pos, qualifier, newSym); } else return super.transform(tree); } -- cgit v1.2.3