diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/ScriptCodegen.java b/compiler/backend/src/org/jetbrains/kotlin/codegen/ScriptCodegen.java index a00e37ba4a4..1f068b6f49f 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/ScriptCodegen.java +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/ScriptCodegen.java @@ -152,7 +152,7 @@ public class ScriptCodegen extends MemberCodegen { iv.invokespecial("java/lang/Object", "", "()V", false); } else { - // TODO: check if it is correct way to find a promary constructor + // TODO: check if it is correct way to find a primary constructor Collection ctorDescriptors = superclass.getConstructors(); assert ctorDescriptors.size() == 1; ConstructorDescriptor ctorDesc = ctorDescriptors.iterator().next(); @@ -160,6 +160,8 @@ public class ScriptCodegen extends MemberCodegen { iv.load(0, classType); + int valueParamStart = context.getEarlierScripts().size() + 1; + List valueParameters = scriptDescriptor.getUnsubstitutedPrimaryConstructor().getValueParameters(); for (ValueParameterDescriptor superclassParam: ctorDesc.getValueParameters()) { ValueParameterDescriptor valueParam = null; @@ -170,7 +172,7 @@ public class ScriptCodegen extends MemberCodegen { } } assert valueParam != null; - iv.load(valueParam.getIndex() + 1, typeMapper.mapType(valueParam.getType())); + iv.load(valueParam.getIndex() + valueParamStart, typeMapper.mapType(valueParam.getType())); } CallableMethod ctorMethod = typeMapper.mapToCallableMethod(ctorDesc, false);