diff --git a/translator/src/main/kotlin/org/kotlinnative/translator/FunctionCodegen.kt b/translator/src/main/kotlin/org/kotlinnative/translator/FunctionCodegen.kt index db14840d093..5fad34be043 100644 --- a/translator/src/main/kotlin/org/kotlinnative/translator/FunctionCodegen.kt +++ b/translator/src/main/kotlin/org/kotlinnative/translator/FunctionCodegen.kt @@ -194,9 +194,12 @@ class FunctionCodegen(val state: TranslationState, val variableManager: Variable val methodName = clazz.clazz.name.toString() + '.' + selectorName.substringBefore('(') val method = clazz.methods[methodName]!! val returnType = clazz.methods[methodName]!!.returnType.type + val methodArgs = mutableListOf(receiver) val names = parseArgList(expr.lastChild as KtCallExpression, scopeDepth) - return evaluateFunctionCallExpression(LLVMVariable(methodName, returnType, scope = LLVMRegisterScope()), names, method.args) + methodArgs.addAll(names) + + return evaluateFunctionCallExpression(LLVMVariable(methodName, returnType, scope = LLVMVariableScope()), methodArgs, method.args) } diff --git a/translator/src/test/kotlin/tests/input/simply_class_1.txt b/translator/src/test/kotlin/tests/input/simply_class_1.txt new file mode 100644 index 00000000000..11d04a1a9a7 --- /dev/null +++ b/translator/src/test/kotlin/tests/input/simply_class_1.txt @@ -0,0 +1 @@ +simply_class_1(6789) == 6794 \ No newline at end of file diff --git a/translator/src/test/kotlin/tests/kotlin/simply_class_1.kt b/translator/src/test/kotlin/tests/kotlin/simply_class_1.kt new file mode 100644 index 00000000000..036ef280ead --- /dev/null +++ b/translator/src/test/kotlin/tests/kotlin/simply_class_1.kt @@ -0,0 +1,15 @@ +annotation class Native(val type: String = "") + +@Native +class classname_A(@Native("i32") val x: Int) { + + fun method(): Int { + return this.x + 5 + } +} + +fun simply_class_1(zz: Int) : Int{ + val x = classname_A(zz) + val r = x.method() + return r +} \ No newline at end of file