diff --git a/compiler/ir/ir.interpreter/src/org/jetbrains/kotlin/ir/interpreter/CallInterceptor.kt b/compiler/ir/ir.interpreter/src/org/jetbrains/kotlin/ir/interpreter/CallInterceptor.kt index 30ec56d688a..632792a9b9f 100644 --- a/compiler/ir/ir.interpreter/src/org/jetbrains/kotlin/ir/interpreter/CallInterceptor.kt +++ b/compiler/ir/ir.interpreter/src/org/jetbrains/kotlin/ir/interpreter/CallInterceptor.kt @@ -91,7 +91,9 @@ internal class DefaultCallInterceptor(override val interpreter: IrInterpreter) : irClass.defaultType.isUnsignedType() -> { // Check for type is a hack needed for Native; // in UInt, for example, we may have (after lowerings, I guess) additional property "$companion". - val propertySymbol = irClass.declarations.single { it is IrProperty && it.getter?.returnType?.isPrimitiveType() == true }.symbol + // Check for fake overrides is a hack needed for Wasm; + // in UInt, for example, we may have additional typeInfo and hashCode properties declared in "Any" + val propertySymbol = irClass.declarations.single { it is IrProperty && !it.isFakeOverride && it.getter?.returnType?.isPrimitiveType() == true }.symbol callStack.pushState(receiver.apply { this.setField(propertySymbol, args.single()) }) } else -> defaultAction()