Disable New Inference in JS backend

See #KT-37163 for details
This commit is contained in:
Mikhail Zarechenskiy
2020-03-02 15:23:17 +03:00
parent e6885323da
commit d1a8f57740
18 changed files with 153 additions and 43 deletions
+3
View File
@@ -0,0 +1,3 @@
$TESTDATA_DIR$/reifiedIntersectionType.kt
-output
$TEMP_DIR$/out.js
+16
View File
@@ -0,0 +1,16 @@
fun test1() {
val flow = combine(
flowOf("1"),
flowOf(2)
) { arr -> arr.joinToString() }
}
fun <T> Array<out T>.joinToString(): String = ""
public inline fun <reified T, R> combine(
vararg flows: Flow<T>,
crossinline transform: suspend (Array<T>) -> R
): Flow<R> = TODO()
fun <T> flowOf(value: T): Flow<T> = TODO()
interface Flow<out T>
+13
View File
@@ -0,0 +1,13 @@
compiler/testData/cli/js/reifiedIntersectionType.kt:2:9: warning: variable 'flow' is never used
val flow = combine(
^
compiler/testData/cli/js/reifiedIntersectionType.kt:11:12: warning: parameter 'flows' is never used
vararg flows: Flow<T>,
^
compiler/testData/cli/js/reifiedIntersectionType.kt:12:17: warning: parameter 'transform' is never used
crossinline transform: suspend (Array<T>) -> R
^
compiler/testData/cli/js/reifiedIntersectionType.kt:15:16: warning: parameter 'value' is never used
fun <T> flowOf(value: T): Flow<T> = TODO()
^
OK
@@ -0,0 +1,37 @@
// IGNORE_BACKEND: JS
// KJS_WITH_FULL_RUNTIME
// Case that was found in kotlinx.coroutines
fun test1() {
val flow = combine(
flowOf("1"),
flowOf(2)
) { arr -> arr.joinToString() }
}
fun <T> Array<out T>.joinToString(): String = ""
public inline fun <reified T, R> combine(
vararg flows: Flow<T>,
crossinline transform: suspend (Array<T>) -> R
): Flow<R> = TODO()
fun <T> flowOf(value: T): Flow<T> = TODO()
interface Flow<out T>
// Simplified case
class In<in T>
inline fun <reified K> select(x: K, y: K): K = x
interface A
interface B
fun test2(a: In<A>, b: In<B>) {
select(a, b)
}
fun box(): String {
return "OK"
}
+1 -3
View File
@@ -1,6 +1,4 @@
// ADDITIONAL_COMPILER_ARGUMENTS: -XXLanguage:+NewInference
// ADDITIONAL_COMPILER_ARGUMENTS: -XXLanguage:+SamConversionForKotlinFunctions
// ADDITIONAL_COMPILER_ARGUMENTS: -XXLanguage:+SamConversionPerArgument
// ADDITIONAL_COMPILER_ARGUMENTS: -Xnew-inference
package common
+1 -3
View File
@@ -1,6 +1,4 @@
// ADDITIONAL_COMPILER_ARGUMENTS: -XXLanguage:+NewInference
// ADDITIONAL_COMPILER_ARGUMENTS: -XXLanguage:+SamConversionForKotlinFunctions
// ADDITIONAL_COMPILER_ARGUMENTS: -XXLanguage:+SamConversionPerArgument
// ADDITIONAL_COMPILER_ARGUMENTS: -Xnew-inference
package js
+1 -3
View File
@@ -1,6 +1,4 @@
// ADDITIONAL_COMPILER_ARGUMENTS: -XXLanguage:+NewInference
// ADDITIONAL_COMPILER_ARGUMENTS: -XXLanguage:+SamConversionForKotlinFunctions
// ADDITIONAL_COMPILER_ARGUMENTS: -XXLanguage:+SamConversionPerArgument
// ADDITIONAL_COMPILER_ARGUMENTS: -Xnew-inference
package jvm
@@ -1,41 +1,11 @@
-- Common --
Exit code: OK
Output:
warning: ATTENTION!
This build uses unsafe internal compiler arguments:
-XXLanguage:+NewInference
-XXLanguage:+SamConversionForKotlinFunctions
-XXLanguage:+SamConversionPerArgument
This mode is not recommended for production use,
as no stability/compatibility guarantees are given on
compiler or generated code. Use it at your own risk!
-- JVM --
Exit code: OK
Output:
warning: ATTENTION!
This build uses unsafe internal compiler arguments:
-XXLanguage:+NewInference
-XXLanguage:+SamConversionForKotlinFunctions
-XXLanguage:+SamConversionPerArgument
This mode is not recommended for production use,
as no stability/compatibility guarantees are given on
compiler or generated code. Use it at your own risk!
-- JS --
Exit code: OK
Output:
warning: ATTENTION!
This build uses unsafe internal compiler arguments:
-XXLanguage:+NewInference
-XXLanguage:+SamConversionForKotlinFunctions
-XXLanguage:+SamConversionPerArgument
This mode is not recommended for production use,
as no stability/compatibility guarantees are given on
compiler or generated code. Use it at your own risk!