[K2/N] Re-enable special backend checks
^KT-55598 Merge-request: KT-MR-9625 Merged-by: Vladimir Sukharev <Vladimir.Sukharev@jetbrains.com>
This commit is contained in:
committed by
Space Team
parent
bde0282fb1
commit
ca740a4baf
-2
@@ -6,7 +6,6 @@
|
||||
package org.jetbrains.kotlin.backend.konan.cgen
|
||||
|
||||
import org.jetbrains.kotlin.backend.jvm.ir.propertyIfAccessor
|
||||
import org.jetbrains.kotlin.backend.konan.InteropFqNames
|
||||
import org.jetbrains.kotlin.backend.konan.KonanFqNames
|
||||
import org.jetbrains.kotlin.backend.konan.RuntimeNames
|
||||
import org.jetbrains.kotlin.backend.konan.ir.*
|
||||
@@ -20,7 +19,6 @@ import org.jetbrains.kotlin.ir.util.isUnsigned
|
||||
import org.jetbrains.kotlin.konan.target.KonanTarget
|
||||
import org.jetbrains.kotlin.name.FqName
|
||||
import org.jetbrains.kotlin.name.Name
|
||||
import org.jetbrains.kotlin.types.checker.SimpleClassicTypeSystemContext.getClassFqNameUnsafe
|
||||
|
||||
internal fun IrType.isCEnumType(): Boolean {
|
||||
if (isNullable()) return false
|
||||
|
||||
+1
-1
@@ -104,7 +104,7 @@ internal class DynamicCompilerDriver : CompilerDriver() {
|
||||
require(frontendOutput is FirOutput.Full)
|
||||
|
||||
val fir2IrOutput = engine.runFir2Ir(frontendOutput)
|
||||
//engine.runK2SpecialBackendChecks(fir2IrOutput) // TODO KT-55598 try uncommenting this line after getting rid of InteropBuiltins excessive usage
|
||||
engine.runK2SpecialBackendChecks(fir2IrOutput)
|
||||
return engine.runFirSerializer(fir2IrOutput)
|
||||
}
|
||||
|
||||
|
||||
+11
-15
@@ -33,7 +33,6 @@ import org.jetbrains.kotlin.ir.visitors.IrElementVisitorVoid
|
||||
import org.jetbrains.kotlin.ir.visitors.acceptChildrenVoid
|
||||
import org.jetbrains.kotlin.name.FqName
|
||||
import org.jetbrains.kotlin.types.Variance
|
||||
import org.jetbrains.kotlin.types.checker.SimpleClassicTypeSystemContext.getClassFqNameUnsafe
|
||||
import org.jetbrains.kotlin.utils.fileUtils.descendantRelativeTo
|
||||
import java.io.File
|
||||
|
||||
@@ -159,13 +158,13 @@ private class BackendChecker(
|
||||
function.valueParameters.forEach {
|
||||
val kotlinType = it.descriptor.type
|
||||
if (!kotlinType.isObjCObjectType())
|
||||
reportError(it, "Unexpected $action method parameter type: $kotlinType\n" +
|
||||
reportError(it, "Unexpected $action method parameter type: ${it.type.classFqName}\n" +
|
||||
"Only Objective-C object types are supported here")
|
||||
}
|
||||
|
||||
val returnType = function.returnType
|
||||
if (!returnType.isUnit())
|
||||
reportError(function, "Unexpected $action method return type: ${returnType.toKotlinType()}\n" +
|
||||
reportError(function, "Unexpected $action method return type: ${returnType.classFqName}\n" +
|
||||
"Only 'Unit' is supported here")
|
||||
|
||||
checkCanGenerateFunctionImp(function)
|
||||
@@ -185,7 +184,7 @@ private class BackendChecker(
|
||||
|
||||
val type = descriptor.type
|
||||
if (!type.isObjCObjectType())
|
||||
reportError(property, "Unexpected $outlet type: $type\n" +
|
||||
reportError(property, "Unexpected $outlet type: ${property.getter?.returnType?.classFqName}\n" +
|
||||
"Only Objective-C object types are supported here")
|
||||
|
||||
checkCanGenerateFunctionImp(property.setter!!)
|
||||
@@ -340,8 +339,7 @@ private class BackendChecker(
|
||||
val parent = declaration.parent
|
||||
|
||||
if (parent is IrClass && parent.defaultType.isNativePointed(symbols) && parent.symbol != symbols.nativePointed) {
|
||||
val nativePointed = symbols.nativePointed.owner.name
|
||||
reportError(declaration, "Subclasses of $nativePointed cannot have properties with backing fields")
|
||||
reportError(declaration, "Subclasses of ${InteropFqNames.nativePointed} cannot have properties with backing fields")
|
||||
}
|
||||
}
|
||||
|
||||
@@ -419,7 +417,8 @@ private class BackendChecker(
|
||||
if (typeArgument.constructor != signatureType.constructor ||
|
||||
typeArgument.isMarkedNullable != signatureType.isMarkedNullable
|
||||
) {
|
||||
reportError(expression, "C function signature element mismatch: expected '$signatureType', got '$typeArgument'")
|
||||
reportError(expression, "C function signature element mismatch: " +
|
||||
"expected '${signatureTypes[index].classFqName}', got '${expression.getTypeArgument(index)!!.classFqName}'")
|
||||
}
|
||||
}
|
||||
|
||||
@@ -436,25 +435,22 @@ private class BackendChecker(
|
||||
|
||||
val receiver = expression.extensionReceiver!!
|
||||
val typeOperand = expression.getSingleTypeArgument()
|
||||
val kotlinTypeOperand = typeOperand.toKotlinType()
|
||||
|
||||
val receiverTypeIndex = integerTypePredicates.indexOfFirst { it(receiver.type) }
|
||||
val typeOperandIndex = integerTypePredicates.indexOfFirst { it(typeOperand) }
|
||||
|
||||
val receiverKotlinType = receiver.type.toKotlinType()
|
||||
|
||||
if (receiverTypeIndex == -1)
|
||||
reportError(receiver, "Receiver's type $receiverKotlinType is not an integer type")
|
||||
reportError(receiver, "Receiver's type ${receiver.type.classFqName} is not an integer type")
|
||||
|
||||
if (typeOperandIndex == -1)
|
||||
reportError(expression, "Type argument $kotlinTypeOperand is not an integer type")
|
||||
reportError(expression, "Type argument ${typeOperand.classFqName} is not an integer type")
|
||||
|
||||
when (intrinsicType) {
|
||||
IntrinsicType.INTEROP_SIGN_EXTEND -> if (receiverTypeIndex > typeOperandIndex)
|
||||
reportError(expression, "unable to sign extend $receiverKotlinType to $kotlinTypeOperand")
|
||||
reportError(expression, "unable to sign extend ${receiver.type.classFqName} to ${typeOperand.classFqName}")
|
||||
|
||||
IntrinsicType.INTEROP_NARROW -> if (receiverTypeIndex < typeOperandIndex)
|
||||
reportError(expression, "unable to narrow $receiverKotlinType to $kotlinTypeOperand")
|
||||
reportError(expression, "unable to narrow ${receiver.type.classFqName} to ${typeOperand.classFqName}")
|
||||
|
||||
else -> error(intrinsicType)
|
||||
}
|
||||
@@ -465,7 +461,7 @@ private class BackendChecker(
|
||||
val receiverType = expression.symbol.owner.extensionReceiverParameter!!.type
|
||||
|
||||
if (typeOperand !is IrSimpleType || typeOperand.classifier !in integerClasses || typeOperand.isNullable())
|
||||
reportError(expression, "unable to convert ${receiverType.toKotlinType()} to ${typeOperand.toKotlinType()}")
|
||||
reportError(expression, "unable to convert ${receiverType.classFqName} to ${typeOperand.classFqName}")
|
||||
}
|
||||
IntrinsicType.WORKER_EXECUTE -> {
|
||||
val (function, captures) = getUnboundReferencedFunction(expression.getValueArgument(2)!!)
|
||||
|
||||
@@ -1 +1,153 @@
|
||||
These tests aren't invoked so far because there is no mechanism of checking compilation errors yet.
|
||||
These tests aren't invoked so far because there is no mechanism of checking compilation errors yet.
|
||||
|
||||
To run tests manually on MacOS,
|
||||
- build platformLibs: `./gradlew :kotlin-native:platformLibs:macos_arm64Install` or `./gradlew :kotlin-native:platformLibs:macos_x64Install`
|
||||
- run `runtests.sh` as described below.
|
||||
|
||||
K1: `kotlin-native/backend.native/tests/compilerChecks/runtests.sh -language-version 1.9`
|
||||
K2: `kotlin-native/backend.native/tests/compilerChecks/runtests.sh -language-version 2.0`
|
||||
|
||||
Reference output:
|
||||
```text
|
||||
kotlin-native/backend.native/tests/compilerChecks/t1.kt
|
||||
kotlin-native/backend.native/tests/compilerChecks/t1.kt:10:5: error: variadic function pointers are not supported
|
||||
kotlin-native/backend.native/tests/compilerChecks/t10.kt
|
||||
kotlin-native/backend.native/tests/compilerChecks/t10.kt:6:5: error: type kotlin.Function1<*, kotlin.Int> of callback parameter 1 is not supported here: * as 1 parameter type
|
||||
kotlin-native/backend.native/tests/compilerChecks/t11.kt
|
||||
kotlin-native/backend.native/tests/compilerChecks/t11.kt:6:5: error: type kotlin.Function1<in kotlin.Int, kotlin.Int> of callback parameter 1 is not supported here: in-variance of 1 parameter type
|
||||
kotlin-native/backend.native/tests/compilerChecks/t12.kt
|
||||
kotlin-native/backend.native/tests/compilerChecks/t12.kt:6:5: error: type kotlinx.cinterop.CValue<*>? of callback parameter 1 is not supported here: must not be nullable
|
||||
kotlin-native/backend.native/tests/compilerChecks/t13.kt
|
||||
kotlin-native/backend.native/tests/compilerChecks/t13.kt:7:5: error: type kotlinx.cinterop.CValue<T of <root>.bar> of callback parameter 1 is not supported here: must be parameterized with concrete class
|
||||
kotlin-native/backend.native/tests/compilerChecks/t14.kt
|
||||
kotlin-native/backend.native/tests/compilerChecks/t14.kt:8:5: error: type kotlinx.cinterop.CValue<<root>.Z> of callback parameter 1 is not supported here: not a structure or too complex
|
||||
kotlin-native/backend.native/tests/compilerChecks/t15.kt
|
||||
kotlin-native/backend.native/tests/compilerChecks/t15.kt:4:26: error: type kotlin.Function0<kotlin.Unit> is not supported here: not supported as variadic argument
|
||||
kotlin-native/backend.native/tests/compilerChecks/t16.kt
|
||||
kotlin-native/backend.native/tests/compilerChecks/t16.kt:6:26: error: type <root>.Z is not supported here: doesn't correspond to any C type
|
||||
kotlin-native/backend.native/tests/compilerChecks/t17.kt
|
||||
kotlin-native/backend.native/tests/compilerChecks/t17.kt:6:15: error: super calls to Objective-C protocols are not allowed
|
||||
kotlin-native/backend.native/tests/compilerChecks/t18.kt
|
||||
kotlin-native/backend.native/tests/compilerChecks/t18.kt:6:19: error: super calls to Objective-C meta classes are not supported yet
|
||||
kotlin-native/backend.native/tests/compilerChecks/t2.kt
|
||||
kotlin-native/backend.native/tests/compilerChecks/t2.kt:5:5: error: 'handleFailureInFunction' overrides nothing
|
||||
override fun handleFailureInFunction(functionName: String, file: String, lineNumber: NSInteger /* = Long */, description: String?, vararg args: Any?) { }
|
||||
^
|
||||
kotlin-native/backend.native/tests/compilerChecks/t20.kt
|
||||
kotlin-native/backend.native/tests/compilerChecks/t20.kt:4:1: error: only classes are supported as subtypes of Objective-C types
|
||||
kotlin-native/backend.native/tests/compilerChecks/t21.kt
|
||||
kotlin-native/backend.native/tests/compilerChecks/t21.kt:4:1: error: non-final Kotlin subclasses of Objective-C classes are not yet supported
|
||||
kotlin-native/backend.native/tests/compilerChecks/t22.kt
|
||||
kotlin-native/backend.native/tests/compilerChecks/t22.kt:4:1: error: fields are not supported for Companion of subclass of ObjC type
|
||||
kotlin-native/backend.native/tests/compilerChecks/t23.kt
|
||||
kotlin-native/backend.native/tests/compilerChecks/t23.kt:6:1: error: mixing Kotlin and Objective-C supertypes is not supported
|
||||
kotlin-native/backend.native/tests/compilerChecks/t24.kt
|
||||
kotlin-native/backend.native/tests/compilerChecks/t24.kt:4:1: error: only companion objects of subclasses of Objective-C classes can inherit from Objective-C metaclasses
|
||||
kotlin-native/backend.native/tests/compilerChecks/t25.kt
|
||||
kotlin-native/backend.native/tests/compilerChecks/t25.kt:5:14: error: can't override 'toString', override 'description' instead
|
||||
kotlin-native/backend.native/tests/compilerChecks/t26.kt
|
||||
kotlin-native/backend.native/tests/compilerChecks/t26.kt:7:9: error: @kotlinx.cinterop.ObjCAction method must not have extension receiver
|
||||
kotlin-native/backend.native/tests/compilerChecks/t27.kt
|
||||
kotlin-native/backend.native/tests/compilerChecks/t27.kt:7:13: error: unexpected @kotlinx.cinterop.ObjCAction method parameter type: kotlin.String
|
||||
Only Objective-C object types are supported here
|
||||
kotlin-native/backend.native/tests/compilerChecks/t28.kt
|
||||
kotlin-native/backend.native/tests/compilerChecks/t28.kt:7:5: error: unexpected @kotlinx.cinterop.ObjCAction method return type: kotlin.Int
|
||||
Only 'Unit' is supported here
|
||||
kotlin-native/backend.native/tests/compilerChecks/t29.kt
|
||||
kotlin-native/backend.native/tests/compilerChecks/t29.kt:6:5: error: @kotlinx.cinterop.ObjCOutlet property must be var
|
||||
kotlin-native/backend.native/tests/compilerChecks/t3.kt
|
||||
kotlin-native/backend.native/tests/compilerChecks/t3.kt:4:13: error: callable references to variadic C functions are not supported
|
||||
kotlin-native/backend.native/tests/compilerChecks/t30.kt
|
||||
kotlin-native/backend.native/tests/compilerChecks/t30.kt:7:9: error: @kotlinx.cinterop.ObjCOutlet must not have extension receiver
|
||||
kotlin-native/backend.native/tests/compilerChecks/t31.kt
|
||||
kotlin-native/backend.native/tests/compilerChecks/t31.kt:6:5: error: unexpected @kotlinx.cinterop.ObjCOutlet type: kotlin.String
|
||||
Only Objective-C object types are supported here
|
||||
kotlin-native/backend.native/tests/compilerChecks/t32.kt
|
||||
kotlin-native/backend.native/tests/compilerChecks/t32.kt:7:5: error: constructor with @kotlinx.cinterop.ObjCObjectBase.OverrideInit doesn't override any super class constructor.
|
||||
It must completely match by parameter names and types.
|
||||
kotlin-native/backend.native/tests/compilerChecks/t33.kt
|
||||
kotlin-native/backend.native/tests/compilerChecks/t33.kt:7:5: error: constructor with @kotlinx.cinterop.ObjCObjectBase.OverrideInit overrides initializer that is already overridden explicitly
|
||||
kotlin-native/backend.native/tests/compilerChecks/t34.kt
|
||||
kotlin-native/backend.native/tests/compilerChecks/t34.kt:7:5: error: only 0, 1 or 2 parameters are supported here
|
||||
kotlin-native/backend.native/tests/compilerChecks/t35.kt
|
||||
kotlin-native/backend.native/tests/compilerChecks/t35.kt:5:13: error: unable to call non-designated initializer as super constructor
|
||||
kotlin-native/backend.native/tests/compilerChecks/t36.kt
|
||||
kotlin-native/backend.native/tests/compilerChecks/t36.kt:4:13: error: native interop types constructors must not be called directly
|
||||
kotlin-native/backend.native/tests/compilerChecks/t37.kt
|
||||
kotlin-native/backend.native/tests/compilerChecks/t37.kt:5:5: error: subclasses of NativePointed cannot have properties with backing fields
|
||||
kotlin-native/backend.native/tests/compilerChecks/t38.kt
|
||||
kotlin-native/backend.native/tests/compilerChecks/t38.kt:5:5: error: subclasses of NativePointed cannot have properties with backing fields
|
||||
kotlin-native/backend.native/tests/compilerChecks/t4.kt
|
||||
kotlin-native/backend.native/tests/compilerChecks/t4.kt:4:21: error: callable references to variadic Objective-C methods are not supported
|
||||
kotlin-native/backend.native/tests/compilerChecks/t40.kt
|
||||
kotlin-native/backend.native/tests/compilerChecks/t40.kt:8:5: error: kotlinx.cinterop.staticCFunction must take an unbound, non-capturing function or lambda, but captures at:
|
||||
kotlin-native/backend.native/tests/compilerChecks/t40.kt:8:21
|
||||
kotlin-native/backend.native/tests/compilerChecks/t41.kt
|
||||
kotlin-native/backend.native/tests/compilerChecks/t41.kt:7:5: error: kotlinx.cinterop.staticCFunction must take an unbound, non-capturing function or lambda, but captures at:
|
||||
kotlin-native/backend.native/tests/compilerChecks/t41.kt:5:17: x
|
||||
kotlin-native/backend.native/tests/compilerChecks/t42.kt
|
||||
kotlin-native/backend.native/tests/compilerChecks/t42.kt:6:5: error: c function signature element mismatch: expected 'kotlin.Any', got 'kotlin.String'
|
||||
kotlin-native/backend.native/tests/compilerChecks/t43.kt
|
||||
kotlin-native/backend.native/tests/compilerChecks/t43.kt:3:21: error: receiver's type kotlin.Float is not an integer type
|
||||
kotlin-native/backend.native/tests/compilerChecks/t44.kt
|
||||
kotlin-native/backend.native/tests/compilerChecks/t44.kt:3:21: error: type argument kotlin.Float is not an integer type
|
||||
kotlin-native/backend.native/tests/compilerChecks/t45.kt
|
||||
kotlin-native/backend.native/tests/compilerChecks/t45.kt:3:21: error: unable to sign extend kotlin.Int to kotlin.Short
|
||||
kotlin-native/backend.native/tests/compilerChecks/t46.kt
|
||||
kotlin-native/backend.native/tests/compilerChecks/t46.kt:3:21: error: unable to narrow kotlin.Int to kotlin.Long
|
||||
kotlin-native/backend.native/tests/compilerChecks/t47.kt
|
||||
kotlin-native/backend.native/tests/compilerChecks/t47.kt:3:21: error: unable to convert kotlin.Int to kotlin.String
|
||||
kotlin-native/backend.native/tests/compilerChecks/t48.kt
|
||||
kotlin-native/backend.native/tests/compilerChecks/t48.kt:9:12: error: kotlin.native.concurrent.Worker.execute must take an unbound, non-capturing function or lambda, but captures at:
|
||||
kotlin-native/backend.native/tests/compilerChecks/t48.kt:9:50
|
||||
kotlin-native/backend.native/tests/compilerChecks/t49.kt
|
||||
kotlin-native/backend.native/tests/compilerChecks/t49.kt:5:12: error: kotlin.native.concurrent.Worker.execute must take an unbound, non-capturing function or lambda, but captures at:
|
||||
kotlin-native/backend.native/tests/compilerChecks/t49.kt:5:61: x
|
||||
kotlin-native/backend.native/tests/compilerChecks/t5.kt
|
||||
kotlin-native/backend.native/tests/compilerChecks/t5.kt:4:83: error: passing String as variadic Objective-C argument is ambiguous; cast it to NSString or pass with '.cstr' as C string
|
||||
kotlin-native/backend.native/tests/compilerChecks/t50.kt
|
||||
kotlin-native/backend.native/tests/compilerChecks/t50.kt:10:16: error: kotlin.native.concurrent.Worker.execute must take an unbound, non-capturing function or lambda, but captures at:
|
||||
kotlin-native/backend.native/tests/compilerChecks/t50.kt:10:54
|
||||
kotlin-native/backend.native/tests/compilerChecks/t51.kt
|
||||
MISSING EXPECTED ERROR FOR kotlin-native/backend.native/tests/compilerChecks/t51.kt
|
||||
kotlin-native/backend.native/tests/compilerChecks/t52.kt
|
||||
kotlin-native/backend.native/tests/compilerChecks/t52.kt:5:5: warning: 'createCleaner(T, (T) -> Unit): Cleaner' is deprecated. Use kotlin.native.ref.createCleaner instead.
|
||||
createCleaner(42) { println(x) }
|
||||
^
|
||||
MISSING EXPECTED ERROR FOR kotlin-native/backend.native/tests/compilerChecks/t52.kt
|
||||
kotlin-native/backend.native/tests/compilerChecks/t53.kt
|
||||
kotlin-native/backend.native/tests/compilerChecks/t53.kt:9:5: warning: 'createCleaner(T, (T) -> Unit): Cleaner' is deprecated. Use kotlin.native.ref.createCleaner instead.
|
||||
createCleaner(42, C(x)::bar)
|
||||
^
|
||||
MISSING EXPECTED ERROR FOR kotlin-native/backend.native/tests/compilerChecks/t53.kt
|
||||
kotlin-native/backend.native/tests/compilerChecks/t54.kt
|
||||
kotlin-native/backend.native/tests/compilerChecks/t54.kt:1:44: error: no spread elements allowed here
|
||||
kotlin-native/backend.native/tests/compilerChecks/t55.kt
|
||||
kotlin-native/backend.native/tests/compilerChecks/t55.kt:1:37: error: all elements of binary blob must be constants
|
||||
kotlin-native/backend.native/tests/compilerChecks/t56.kt
|
||||
kotlin-native/backend.native/tests/compilerChecks/t56.kt:1:29: error: incorrect value for binary data: 1000
|
||||
kotlin-native/backend.native/tests/compilerChecks/t57.kt
|
||||
kotlin-native/backend.native/tests/compilerChecks/t57.kt:1:13: error: expected at least one element
|
||||
kotlin-native/backend.native/tests/compilerChecks/t58.kt
|
||||
kotlin-native/backend.native/tests/compilerChecks/t58.kt:5:5: error: non-reified type parameters with recursive bounds are not supported yet: TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Comparable<T of <root>.foo>] reified:false
|
||||
kotlin-native/backend.native/tests/compilerChecks/t59.kt
|
||||
kotlin-native/backend.native/tests/compilerChecks/t59.kt:5:5: error: non-reified type parameters with recursive bounds are not supported yet: TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Comparable<T of <root>.foo>] reified:false
|
||||
kotlin-native/backend.native/tests/compilerChecks/t6.kt
|
||||
kotlin-native/backend.native/tests/compilerChecks/t6.kt:4:97: error: when calling variadic Objective-C methods spread operator is supported only for *arrayOf(...)
|
||||
kotlin-native/backend.native/tests/compilerChecks/t60.kt
|
||||
kotlin-native/backend.native/tests/compilerChecks/t60.kt:4:5: error: subclasses of NativePointed cannot have properties with backing fields
|
||||
kotlin-native/backend.native/tests/compilerChecks/t61.kt
|
||||
kotlin-native/backend.native/tests/compilerChecks/t61.kt:8:5: error: only companion objects of subclasses of Objective-C classes can inherit from Objective-C metaclasses
|
||||
kotlin-native/backend.native/tests/compilerChecks/t62.kt
|
||||
kotlin-native/backend.native/tests/compilerChecks/t62.kt:7:1: error: only companion objects of subclasses of Objective-C classes can inherit from Objective-C metaclasses
|
||||
kotlin-native/backend.native/tests/compilerChecks/t63.kt
|
||||
MISSING EXPECTED ERROR FOR kotlin-native/backend.native/tests/compilerChecks/t63.kt
|
||||
kotlin-native/backend.native/tests/compilerChecks/t64.kt
|
||||
MISSING EXPECTED ERROR FOR kotlin-native/backend.native/tests/compilerChecks/t64.kt
|
||||
kotlin-native/backend.native/tests/compilerChecks/t7.kt
|
||||
kotlin-native/backend.native/tests/compilerChecks/t7.kt:4:41: error: when calling variadic C functions spread operator is supported only for *arrayOf(...)
|
||||
kotlin-native/backend.native/tests/compilerChecks/t8.kt
|
||||
kotlin-native/backend.native/tests/compilerChecks/t8.kt:6:5: error: type kotlin.Function0<*> of callback parameter 1 is not supported here: * as return type
|
||||
kotlin-native/backend.native/tests/compilerChecks/t9.kt
|
||||
kotlin-native/backend.native/tests/compilerChecks/t9.kt:6:5: error: type kotlin.Function0<out kotlin.Int> of callback parameter 1 is not supported here: out-variance of return type
|
||||
```
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
#
|
||||
# Copyright 2010-2023 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||
# Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||
#
|
||||
|
||||
for TEST in kotlin-native/backend.native/tests/compilerChecks/*.kt; do
|
||||
echo "$TEST";
|
||||
konanc -p library -Xsuppress-version-warnings "$TEST" "$@";
|
||||
retVal=$?
|
||||
if [ $retVal -eq 0 ]; then
|
||||
echo " MISSING EXPECTED ERROR FOR $TEST"
|
||||
fi
|
||||
done
|
||||
@@ -1,4 +1,4 @@
|
||||
import kotlinx.cinterop.*
|
||||
import platform.posix.*
|
||||
|
||||
fun foo() = stat(malloc(42)!!.rawValue)
|
||||
fun foo() = stat(malloc(42u)!!.rawValue)
|
||||
|
||||
Reference in New Issue
Block a user