Introduce compiler key to disable compatibility resolution mechanism

Enable it if one was using new inferene before 1.4

 #KT-40128 Fixed
 #KT-40112 Fixed
 #KT-40113 Fixed
This commit is contained in:
Mikhail Zarechenskiy
2020-07-09 00:26:10 +03:00
parent c1fd891916
commit 0c8b847ae6
17 changed files with 106 additions and 9 deletions
@@ -0,0 +1,4 @@
$TESTDATA_DIR$/newInferenceImpliesProgressiveModeForNI.kt
-d
$TEMP_DIR$
-XXLanguage\:+NewInference
@@ -0,0 +1,11 @@
fun bar(): Int = 0
object Scope {
fun <T> foo(f: () -> T): T = f()
fun bar(x: Int = 0): String = ""
fun test() {
val r1 = foo(::bar)
}
}
@@ -0,0 +1,16 @@
warning: ATTENTION!
This build uses unsafe internal compiler arguments:
-XXLanguage:+NewInference
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!
compiler/testData/cli/jvm/newInferenceImpliesProgressiveModeForNI.kt:6:13: warning: parameter 'x' is never used
fun bar(x: Int = 0): String = ""
^
compiler/testData/cli/jvm/newInferenceImpliesProgressiveModeForNI.kt:9:13: warning: variable 'r1' is never used
val r1 = foo(::bar)
^
OK