tests for obsolete tasks

#KT-3007 obsolete
 #KT-3038 obsolete
This commit is contained in:
Svetlana Isakova
2012-12-26 13:01:48 +04:00
parent b8507c0391
commit 54dffd6aad
3 changed files with 75 additions and 0 deletions
@@ -0,0 +1,43 @@
//KT-3007 Kotlin plugin 0.4.126 does not compile KAnnotator revision ba0a93eb
package a
enum class SomeEnum {
FIRST
SECOND
}
// Doesn't work
fun Iterable<Int>.some() {
this.fold(SomeEnum.FIRST, {(res : SomeEnum, value) ->
if (res == SomeEnum.FIRST) SomeEnum.FIRST else SomeEnum.SECOND
})
}
fun tempFun() : SomeEnum {
return SomeEnum.FIRST
}
// Doesn't work
fun Iterable<Int>.someSimpleWithFun() {
this.fold(SomeEnum.FIRST, {(res : SomeEnum, value) ->
tempFun()
})
}
// Works
fun Iterable<Int>.someSimple() {
this.fold(SomeEnum.FIRST, {(res : SomeEnum, value) ->
SomeEnum.FIRST
})
}
// Works
fun Iterable<Int>.someInt() {
this.fold(0, {(res : Int, value) ->
if (res == 0) 1 else 0
})
}
//from standard library
fun <T,R> Iterable<T>.fold(<!UNUSED_PARAMETER!>initial<!>: R, <!UNUSED_PARAMETER!>operation<!>: (R, T) -> R): R {<!NO_RETURN_IN_FUNCTION_WITH_BLOCK_BODY!>}<!>
@@ -0,0 +1,22 @@
//KT-3038 Wrong type inference for enum entry
package a
enum class TestEnum {
FIRST
SECOND
}
fun inferenceTest<T>(a: T) : T = a
fun hello() {
var enumElemFirst = <!VARIABLE_WITH_REDUNDANT_INITIALIZER!>inferenceTest(TestEnum.FIRST)<!>
enumElemFirst = TestEnum.SECOND // Type mismatch: inferred type is testDebug.TestEnum.<class-object-for-TestEnum>.SECOND but testDebug.TestEnum.<class-object-for-TestEnum>.FIRST was expected
var enumElemSecond : TestEnum = <!VARIABLE_WITH_REDUNDANT_INITIALIZER!>inferenceTest(TestEnum.FIRST)<!>
enumElemSecond = TestEnum.SECOND // Ok
use(enumElemFirst, enumElemSecond)
}
fun use(vararg a: Any?) = a
@@ -2222,6 +2222,16 @@ public class JetDiagnosticsTestGenerated extends AbstractDiagnosticsTestWithEage
doTest("compiler/testData/diagnostics/tests/inference/regressions/kt2842.kt");
}
@TestMetadata("kt3007.kt")
public void testKt3007() throws Exception {
doTest("compiler/testData/diagnostics/tests/inference/regressions/kt3007.kt");
}
@TestMetadata("kt3038.kt")
public void testKt3038() throws Exception {
doTest("compiler/testData/diagnostics/tests/inference/regressions/kt3038.kt");
}
@TestMetadata("kt3150.kt")
public void testKt3150() throws Exception {
doTest("compiler/testData/diagnostics/tests/inference/regressions/kt3150.kt");