Do not add extra 'this' parameter for TImpl's accessor

Fixes weird cases like super-call from a closure inside a trait with a required
class
This commit is contained in:
Alexander Udalov
2012-11-06 15:42:22 +04:00
parent 2edb89b5c5
commit 89b8bbec57
4 changed files with 47 additions and 2 deletions
@@ -519,8 +519,6 @@ public class JetTypeMapper extends BindingTraceAware {
signatureVisitor.writeParametersStart();
writeThisForAccessorIfNeeded(f, signatureVisitor);
if (kind == OwnerKind.TRAIT_IMPL) {
ClassDescriptor containingDeclaration = (ClassDescriptor) f.getContainingDeclaration();
JetType jetType = CodegenUtil.getSuperClass(containingDeclaration);
@@ -534,6 +532,9 @@ public class JetTypeMapper extends BindingTraceAware {
signatureVisitor.writeAsmType(type, jetType.isNullable());
signatureVisitor.writeParameterTypeEnd();
}
else {
writeThisForAccessorIfNeeded(f, signatureVisitor);
}
if (receiverType != null) {
signatureVisitor.writeParameterType(JvmMethodParameterKind.RECEIVER);