[TD] Update diagnostics test data due to new test runners
Update includes:
- Changing syntax of `OI/`NI` tags from `<!NI;TAG!>` to `<!TAG{NI}!>`
- Fix some incorrect directives
- Change order of diagnostics in some places
- Remove ignored diagnostics from FIR test data (previously `DIAGNOSTICS` didn't work)
- Update FIR dumps in some places and add `FIR_IDENTICAL` if needed
- Replace all JAVAC_SKIP with SKIP_JAVAC directive
This commit is contained in:
@@ -51,4 +51,4 @@ fun testInOut() {
|
||||
(null as Inv<*>).outf()
|
||||
|
||||
Inv<Int>().<!INAPPLICABLE_CANDIDATE!>outf<!>(1) // Wrong Arg
|
||||
}
|
||||
}
|
||||
|
||||
@@ -37,13 +37,13 @@ fun testInOut() {
|
||||
|
||||
Inv<Int>().f(1)
|
||||
(null <!CAST_NEVER_SUCCEEDS!>as<!> Inv<in Int>).f(1)
|
||||
(null <!CAST_NEVER_SUCCEEDS!>as<!> Inv<out Int>).<!OI;MEMBER_PROJECTED_OUT!>f<!>(<!NI;CONSTANT_EXPECTED_TYPE_MISMATCH!>1<!>) // !!
|
||||
(null <!CAST_NEVER_SUCCEEDS!>as<!> Inv<*>).<!OI;MEMBER_PROJECTED_OUT!>f<!>(<!NI;CONSTANT_EXPECTED_TYPE_MISMATCH!>1<!>) // !!
|
||||
(null <!CAST_NEVER_SUCCEEDS!>as<!> Inv<out Int>).<!MEMBER_PROJECTED_OUT{OI}!>f<!>(<!CONSTANT_EXPECTED_TYPE_MISMATCH{NI}!>1<!>) // !!
|
||||
(null <!CAST_NEVER_SUCCEEDS!>as<!> Inv<*>).<!MEMBER_PROJECTED_OUT{OI}!>f<!>(<!CONSTANT_EXPECTED_TYPE_MISMATCH{NI}!>1<!>) // !!
|
||||
|
||||
Inv<Int>().inf(1)
|
||||
(null <!CAST_NEVER_SUCCEEDS!>as<!> Inv<in Int>).inf(1)
|
||||
(null <!CAST_NEVER_SUCCEEDS!>as<!> Inv<out Int>).<!OI;MEMBER_PROJECTED_OUT!>inf<!>(<!NI;CONSTANT_EXPECTED_TYPE_MISMATCH!>1<!>) // !!
|
||||
(null <!CAST_NEVER_SUCCEEDS!>as<!> Inv<*>).<!OI;MEMBER_PROJECTED_OUT!>inf<!>(<!NI;CONSTANT_EXPECTED_TYPE_MISMATCH!>1<!>) // !!
|
||||
(null <!CAST_NEVER_SUCCEEDS!>as<!> Inv<out Int>).<!MEMBER_PROJECTED_OUT{OI}!>inf<!>(<!CONSTANT_EXPECTED_TYPE_MISMATCH{NI}!>1<!>) // !!
|
||||
(null <!CAST_NEVER_SUCCEEDS!>as<!> Inv<*>).<!MEMBER_PROJECTED_OUT{OI}!>inf<!>(<!CONSTANT_EXPECTED_TYPE_MISMATCH{NI}!>1<!>) // !!
|
||||
|
||||
Inv<Int>().outf()
|
||||
checkSubtype<Int>(<!TYPE_MISMATCH!>(null <!CAST_NEVER_SUCCEEDS!>as<!> Inv<in Int>).outf()<!>) // Type mismatch
|
||||
@@ -51,4 +51,4 @@ fun testInOut() {
|
||||
(null <!CAST_NEVER_SUCCEEDS!>as<!> Inv<*>).outf()
|
||||
|
||||
Inv<Int>().outf(<!TOO_MANY_ARGUMENTS!>1<!>) // Wrong Arg
|
||||
}
|
||||
}
|
||||
|
||||
-40
@@ -1,40 +0,0 @@
|
||||
// SKIP_TXT
|
||||
// IGNORE_FIR
|
||||
// !CHECK_TYPE
|
||||
// !LANGUAGE: +NewInference
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER
|
||||
// !FIR_IGNORE
|
||||
|
||||
interface FirMemberDeclaration : FirDeclaration
|
||||
interface TypeConstructorMarker
|
||||
|
||||
interface FirElement
|
||||
interface FirDeclaration : FirElement
|
||||
interface FirStatement : FirElement
|
||||
interface FirSymbolOwner<E> : FirElement where E : FirSymbolOwner<E>, E : FirDeclaration
|
||||
|
||||
interface FirCallableDeclaration<F : FirCallableDeclaration<F>> : FirDeclaration, FirSymbolOwner<F>
|
||||
|
||||
interface FirBasedSymbol<E> where E : FirSymbolOwner<E>, E : FirDeclaration
|
||||
interface AbstractFirBasedSymbol<E> : FirBasedSymbol<E> where E : FirSymbolOwner<E>, E : FirDeclaration
|
||||
|
||||
interface FirVariable<F : FirVariable<F>> : FirCallableDeclaration<F>, FirDeclaration, FirStatement
|
||||
|
||||
interface FirCallableSymbol<D : FirCallableDeclaration<D>> : AbstractFirBasedSymbol<D>
|
||||
interface FirVariableSymbol<D : FirVariable<D>> : FirCallableSymbol<D>
|
||||
interface FirPropertySymbol : FirVariableSymbol<FirProperty>
|
||||
|
||||
interface FirCallableMemberDeclaration<F : FirCallableMemberDeclaration<F>> : FirCallableDeclaration<F>, FirMemberDeclaration
|
||||
|
||||
interface FirProperty : FirVariable<FirProperty>, FirCallableMemberDeclaration<FirProperty>
|
||||
|
||||
fun <D> AbstractFirBasedSymbol<D>.phasedFir(): D where D : FirDeclaration, D : FirSymbolOwner<D> = TODO()
|
||||
|
||||
fun foo(coneSymbol: AbstractFirBasedSymbol<*>) {
|
||||
if (coneSymbol !is FirVariableSymbol) return
|
||||
// For bare types, smart cast should be performed to FirVariableSymbol<*> not to FirVariableSymbol<out FirVariable<*>>
|
||||
coneSymbol.phasedFir() checkType { _<FirVariable<*>>() }
|
||||
|
||||
if (coneSymbol !is FirPropertySymbol) return
|
||||
coneSymbol.phasedFir() checkType { _<FirProperty>() }
|
||||
}
|
||||
+1
-2
@@ -1,9 +1,8 @@
|
||||
// FIR_IDENTICAL
|
||||
// SKIP_TXT
|
||||
// IGNORE_FIR
|
||||
// !CHECK_TYPE
|
||||
// !LANGUAGE: +NewInference
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER
|
||||
// !FIR_IGNORE
|
||||
|
||||
interface FirMemberDeclaration : FirDeclaration
|
||||
interface TypeConstructorMarker
|
||||
|
||||
+4
-4
@@ -10,11 +10,11 @@ class X {
|
||||
|
||||
|
||||
fun testStar(y: X.Y<*>, t: Any) {
|
||||
X().foo(y, <!TYPE_MISMATCH("CapturedType(*)", "Any")!>t<!>)
|
||||
X().foo(y, <!TYPE_MISMATCH("CapturedType(*); Any")!>t<!>)
|
||||
}
|
||||
|
||||
fun testOut(y: X.Y<out Any>, t: Any) {
|
||||
X().foo(y, <!TYPE_MISMATCH("CapturedType(out Any)", "Any")!>t<!>)
|
||||
X().foo(y, <!TYPE_MISMATCH("CapturedType(out Any); Any")!>t<!>)
|
||||
}
|
||||
|
||||
fun testIn(y: X.Y<in Any>, t: Any) {
|
||||
@@ -22,9 +22,9 @@ fun testIn(y: X.Y<in Any>, t: Any) {
|
||||
}
|
||||
|
||||
fun <T : Any> testWithParameter(y: X.Y<T>, t: Any) {
|
||||
X().foo(y, <!TYPE_MISMATCH("T", "Any")!>t<!>)
|
||||
X().foo(y, <!TYPE_MISMATCH("T; Any")!>t<!>)
|
||||
}
|
||||
|
||||
fun <T : Any> testWithCapturedParameter(y: X.Y<out T>, t: Any) {
|
||||
X().foo(y, <!TYPE_MISMATCH("CapturedType(out T)", "Any")!>t<!>)
|
||||
X().foo(y, <!TYPE_MISMATCH("CapturedType(out T); Any")!>t<!>)
|
||||
}
|
||||
|
||||
+1
-1
@@ -79,4 +79,4 @@ object MessageManager15 : Manager<Int> {
|
||||
var <T : <!FINAL_UPPER_BOUND!>Int<!>> T.y
|
||||
get() = 10
|
||||
set(value) {}
|
||||
}
|
||||
}
|
||||
|
||||
compiler/testData/diagnostics/tests/generics/innerClasses/implicitArguments/fromSuperClassesLocal.kt
Vendored
+1
-1
@@ -45,7 +45,7 @@ fun test() {
|
||||
x().foo().a() checkType { _<A<String, Double, Short, Long>>() }
|
||||
x().bar() checkType { _<A<String, Double, Short, Char>>() }
|
||||
|
||||
x = <!NI;TYPE_MISMATCH, NI;TYPE_MISMATCH, NI;TYPE_MISMATCH, TYPE_MISMATCH!>foobar<Int>()<!>
|
||||
x = <!TYPE_MISMATCH{NI}, TYPE_MISMATCH{NI}, TYPE_MISMATCH{NI}, TYPE_MISMATCH!>foobar<Int>()<!>
|
||||
|
||||
var y = noParameters()
|
||||
y = noParameters()
|
||||
|
||||
+2
-2
@@ -46,8 +46,8 @@ class Outer<T> {
|
||||
x().foo().a() checkType { _<A<T, F, String, Double, Short, Long>>() }
|
||||
x().bar() checkType { _<A<T, F, String, Double, Short, Char>>() }
|
||||
|
||||
x = <!NI;TYPE_MISMATCH, NI;TYPE_MISMATCH, NI;TYPE_MISMATCH, TYPE_MISMATCH!>foobar<Int>()<!>
|
||||
x = <!TYPE_MISMATCH!>z.<!NI;TYPE_MISMATCH!>foobar<String>()<!><!>
|
||||
x = <!TYPE_MISMATCH{NI}, TYPE_MISMATCH{NI}, TYPE_MISMATCH{NI}, TYPE_MISMATCH!>foobar<Int>()<!>
|
||||
x = <!TYPE_MISMATCH!>z.<!TYPE_MISMATCH{NI}!>foobar<String>()<!><!>
|
||||
|
||||
var y = noParameters()
|
||||
y = noParameters()
|
||||
|
||||
@@ -32,7 +32,7 @@ fun main() {
|
||||
checkSubtype<Outer<*>.Inner<*>>(outer.Inner<Int>())
|
||||
|
||||
checkSubtype<Outer<CharSequence>.Inner<CharSequence>>(<!TYPE_MISMATCH!>outer.bar()<!>)
|
||||
checkSubtype<Outer<CharSequence>.Inner<CharSequence>>(<!NI;TYPE_MISMATCH!>outer.<!OI;TYPE_INFERENCE_EXPECTED_TYPE_MISMATCH!>Inner()<!><!>)
|
||||
checkSubtype<Outer<CharSequence>.Inner<CharSequence>>(<!TYPE_MISMATCH{NI}!>outer.<!TYPE_INFERENCE_EXPECTED_TYPE_MISMATCH{OI}!>Inner()<!><!>)
|
||||
|
||||
outer.set(outer.bar())
|
||||
outer.set(outer.Inner())
|
||||
|
||||
+1
-1
@@ -15,7 +15,7 @@ class Outer<E> {
|
||||
if (y is <!NO_TYPE_ARGUMENTS_ON_RHS!>Inner<!>) return
|
||||
|
||||
if (z is Inner) {
|
||||
<!OI;DEBUG_INFO_SMARTCAST!>z<!>.prop.checkType { _<Any?>() }
|
||||
<!DEBUG_INFO_SMARTCAST{OI}!>z<!>.prop.checkType { _<Any?>() }
|
||||
return
|
||||
}
|
||||
|
||||
|
||||
@@ -33,5 +33,5 @@ fun foo() {
|
||||
|
||||
val csIt: Iterator<CharSequence> = A<String>().iterator()
|
||||
|
||||
commonSupertype(A<String>().iterator(), A<Int>().iterator()).checkType { <!NI;UNRESOLVED_REFERENCE_WRONG_RECEIVER!>_<!><A<out Any>.MyIt>() }
|
||||
commonSupertype(A<String>().iterator(), A<Int>().iterator()).checkType { <!UNRESOLVED_REFERENCE_WRONG_RECEIVER{NI}!>_<!><A<out Any>.MyIt>() }
|
||||
}
|
||||
|
||||
+1
-1
@@ -6,7 +6,7 @@ class Outer<T> {
|
||||
inner class Inner
|
||||
fun foo(x: Outer<String>.Inner, y: <!WRONG_NUMBER_OF_TYPE_ARGUMENTS!>Outer<!>.Inner, z: Inner) {
|
||||
var inner = Inner()
|
||||
x.checkType { <!NI;UNRESOLVED_REFERENCE_WRONG_RECEIVER, OI;TYPE_MISMATCH!>_<!><Inner>() }
|
||||
x.checkType { <!TYPE_MISMATCH{OI}, UNRESOLVED_REFERENCE_WRONG_RECEIVER{NI}!>_<!><Inner>() }
|
||||
x.checkType { _<Outer<String>.Inner>() }
|
||||
z.checkType { _<Inner>() }
|
||||
z.checkType { _<Outer<T>.Inner>() }
|
||||
|
||||
+3
-3
@@ -29,9 +29,9 @@ fun main() {
|
||||
checkSubtype<Outer<out CharSequence>.Inner>(outer.bar())
|
||||
checkSubtype<Outer<out CharSequence>.Inner>(outer.Inner())
|
||||
|
||||
outer.<!OI;MEMBER_PROJECTED_OUT!>set<!>(<!NI;TYPE_MISMATCH!>outer.bar()<!>)
|
||||
outer.<!OI;MEMBER_PROJECTED_OUT!>set<!>(<!NI;TYPE_MISMATCH!>outer.Inner()<!>)
|
||||
outer.<!MEMBER_PROJECTED_OUT{OI}!>set<!>(<!TYPE_MISMATCH{NI}!>outer.bar()<!>)
|
||||
outer.<!MEMBER_PROJECTED_OUT{OI}!>set<!>(<!TYPE_MISMATCH{NI}!>outer.Inner()<!>)
|
||||
|
||||
val x: Outer<String>.Inner = factoryString()
|
||||
outer.<!OI;MEMBER_PROJECTED_OUT!>set<!>(<!NI;TYPE_MISMATCH!>x<!>)
|
||||
outer.<!MEMBER_PROJECTED_OUT{OI}!>set<!>(<!TYPE_MISMATCH{NI}!>x<!>)
|
||||
}
|
||||
|
||||
+1
-1
@@ -6,4 +6,4 @@ interface A
|
||||
fun <T: A, R: T> emptyStrangeMap(): Map<T, R> = TODO()
|
||||
fun test7() : Map<A, A> = emptyStrangeMap()
|
||||
|
||||
fun test() = <!NI;NEW_INFERENCE_NO_INFORMATION_FOR_PARAMETER, OI;TYPE_INFERENCE_NO_INFORMATION_FOR_PARAMETER!>emptyStrangeMap<!>()
|
||||
fun test() = <!NEW_INFERENCE_NO_INFORMATION_FOR_PARAMETER{NI}, TYPE_INFERENCE_NO_INFORMATION_FOR_PARAMETER{OI}!>emptyStrangeMap<!>()
|
||||
|
||||
+2
-2
@@ -14,6 +14,6 @@ fun <T : ILength> bar(a: (Int) -> T) {
|
||||
}
|
||||
|
||||
fun test() {
|
||||
foo<String> <!NI;TYPE_MISMATCH!>{ <!OI;TYPE_MISMATCH!><!>}<!>
|
||||
bar<Impl> <!NI;TYPE_MISMATCH, NI;TYPE_MISMATCH!>{ <!OI;TYPE_MISMATCH!><!>}<!>
|
||||
foo<String> <!TYPE_MISMATCH{NI}!>{ <!TYPE_MISMATCH{OI}!><!>}<!>
|
||||
bar<Impl> <!TYPE_MISMATCH{NI}, TYPE_MISMATCH{NI}!>{ <!TYPE_MISMATCH{OI}!><!>}<!>
|
||||
}
|
||||
|
||||
+1
-1
@@ -8,4 +8,4 @@ fun main() {
|
||||
val xs = IntStream.<!INTERFACE_STATIC_METHOD_CALL_FROM_JAVA6_TARGET_ERROR!>range<!>(0, 10).mapToObj { it.toString() }
|
||||
.collect(Collectors.toList())
|
||||
xs[0]
|
||||
}
|
||||
}
|
||||
|
||||
+3
-3
@@ -7,13 +7,13 @@ fun <E : CharSequence> foo1(x: E) {}
|
||||
fun <E : CharSequence> E.foo2() {}
|
||||
|
||||
fun <F : String?> bar(x: F) {
|
||||
<!OI;TYPE_INFERENCE_UPPER_BOUND_VIOLATED!>A<!>(<!NI;TYPE_MISMATCH!>x<!>)
|
||||
<!TYPE_INFERENCE_UPPER_BOUND_VIOLATED{OI}!>A<!>(<!TYPE_MISMATCH{NI}!>x<!>)
|
||||
A<<!UPPER_BOUND_VIOLATED!>F<!>>(x)
|
||||
|
||||
<!OI;TYPE_INFERENCE_UPPER_BOUND_VIOLATED!>foo1<!>(<!NI;TYPE_MISMATCH!>x<!>)
|
||||
<!TYPE_INFERENCE_UPPER_BOUND_VIOLATED{OI}!>foo1<!>(<!TYPE_MISMATCH{NI}!>x<!>)
|
||||
foo1<<!UPPER_BOUND_VIOLATED!>F<!>>(x)
|
||||
|
||||
x<!NI;UNSAFE_CALL!>.<!><!OI;TYPE_INFERENCE_UPPER_BOUND_VIOLATED!>foo2<!>()
|
||||
x<!UNSAFE_CALL{NI}!>.<!><!TYPE_INFERENCE_UPPER_BOUND_VIOLATED{OI}!>foo2<!>()
|
||||
x.foo2<<!UPPER_BOUND_VIOLATED!>F<!>>()
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -10,4 +10,4 @@ fun <E : String?, T : ((CharSequence) -> Unit)?> foo(x: E, y: T) {
|
||||
if (x != null && y != null) {
|
||||
<!DEBUG_INFO_SMARTCAST!>y<!>(<!DEBUG_INFO_SMARTCAST!>x<!>)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER,-UNUSED_VARIABLE
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER -UNUSED_VARIABLE
|
||||
|
||||
fun <E> bar(x: E) {}
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER,-UNUSED_VARIABLE
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER -UNUSED_VARIABLE
|
||||
|
||||
fun <E> bar(x: E) {}
|
||||
|
||||
|
||||
@@ -15,9 +15,9 @@ fun <T : CharSequence?> foo(x: T) {
|
||||
<!DEBUG_INFO_SMARTCAST!>x<!>.length
|
||||
x<!UNNECESSARY_SAFE_CALL!>?.<!>length
|
||||
|
||||
<!NI;DEBUG_INFO_SMARTCAST!>x<!>.bar1()
|
||||
<!DEBUG_INFO_SMARTCAST{NI}!>x<!>.bar1()
|
||||
x.bar2()
|
||||
<!NI;DEBUG_INFO_SMARTCAST!>x<!>.<!OI;TYPE_INFERENCE_UPPER_BOUND_VIOLATED!>bar3<!>()
|
||||
<!DEBUG_INFO_SMARTCAST{NI}!>x<!>.<!TYPE_INFERENCE_UPPER_BOUND_VIOLATED{OI}!>bar3<!>()
|
||||
<!DEBUG_INFO_SMARTCAST!>x<!>.bar4()
|
||||
|
||||
|
||||
@@ -30,7 +30,7 @@ fun <T : CharSequence?> foo(x: T) {
|
||||
<!DEBUG_INFO_SMARTCAST!>x<!>.length
|
||||
x<!UNNECESSARY_SAFE_CALL!>?.<!>length
|
||||
|
||||
<!NI;DEBUG_INFO_SMARTCAST!>x<!>.bar1()
|
||||
<!DEBUG_INFO_SMARTCAST{NI}!>x<!>.bar1()
|
||||
x.bar2()
|
||||
<!DEBUG_INFO_SMARTCAST!>x<!>.bar3()
|
||||
}
|
||||
@@ -39,7 +39,7 @@ fun <T : CharSequence?> foo(x: T) {
|
||||
<!DEBUG_INFO_SMARTCAST!>x<!>.length
|
||||
x<!UNNECESSARY_SAFE_CALL!>?.<!>length
|
||||
|
||||
<!NI;DEBUG_INFO_SMARTCAST!>x<!>.bar1()
|
||||
<!DEBUG_INFO_SMARTCAST{NI}!>x<!>.bar1()
|
||||
x.bar2()
|
||||
<!DEBUG_INFO_SMARTCAST!>x<!>.bar3()
|
||||
}
|
||||
|
||||
+7
-7
@@ -11,13 +11,13 @@ fun <T : String?> T.foo() {
|
||||
if (this != null) {
|
||||
if (<!SENSELESS_COMPARISON!>this != null<!>) {}
|
||||
|
||||
<!NI;DEBUG_INFO_IMPLICIT_RECEIVER_SMARTCAST!>length<!>
|
||||
<!DEBUG_INFO_IMPLICIT_RECEIVER_SMARTCAST{NI}!>length<!>
|
||||
this<!UNNECESSARY_SAFE_CALL!>?.<!>length
|
||||
|
||||
<!NI;DEBUG_INFO_IMPLICIT_RECEIVER_SMARTCAST!>bar1<!>()
|
||||
<!DEBUG_INFO_IMPLICIT_RECEIVER_SMARTCAST{NI}!>bar1<!>()
|
||||
bar2()
|
||||
<!NI;DEBUG_INFO_IMPLICIT_RECEIVER_SMARTCAST, OI;TYPE_INFERENCE_UPPER_BOUND_VIOLATED!>bar3<!>()
|
||||
<!NI;DEBUG_INFO_IMPLICIT_RECEIVER_SMARTCAST!>bar4<!>()
|
||||
<!DEBUG_INFO_IMPLICIT_RECEIVER_SMARTCAST{NI}, TYPE_INFERENCE_UPPER_BOUND_VIOLATED{OI}!>bar3<!>()
|
||||
<!DEBUG_INFO_IMPLICIT_RECEIVER_SMARTCAST{NI}!>bar4<!>()
|
||||
|
||||
|
||||
this<!UNNECESSARY_SAFE_CALL!>?.<!>bar1()
|
||||
@@ -29,8 +29,8 @@ fun <T : String?> T.foo() {
|
||||
<!DEBUG_INFO_IMPLICIT_RECEIVER_SMARTCAST!>length<!>
|
||||
this<!UNNECESSARY_SAFE_CALL!>?.<!>length
|
||||
|
||||
<!NI;DEBUG_INFO_IMPLICIT_RECEIVER_SMARTCAST!>bar1<!>()
|
||||
<!DEBUG_INFO_IMPLICIT_RECEIVER_SMARTCAST{NI}!>bar1<!>()
|
||||
bar2()
|
||||
<!NI;DEBUG_INFO_IMPLICIT_RECEIVER_SMARTCAST, OI;TYPE_INFERENCE_UPPER_BOUND_VIOLATED!>bar3<!>()
|
||||
<!DEBUG_INFO_IMPLICIT_RECEIVER_SMARTCAST{NI}, TYPE_INFERENCE_UPPER_BOUND_VIOLATED{OI}!>bar3<!>()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
// !WITH_NEW_INFERENCE
|
||||
// !DIAGNOSTICS: -UNUSED_EXPRESSION,-UNUSED_VARIABLE,-UNUSED_PARAMETER,-ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE,-UNUSED_VALUE
|
||||
// !DIAGNOSTICS: -UNUSED_EXPRESSION -UNUSED_VARIABLE -UNUSED_PARAMETER -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE
|
||||
|
||||
fun <T : CharSequence> bar1(x: T) {}
|
||||
fun bar2(x: CharSequence) {}
|
||||
|
||||
+5
-5
@@ -1,5 +1,5 @@
|
||||
// !WITH_NEW_INFERENCE
|
||||
// !DIAGNOSTICS: -UNUSED_EXPRESSION,-UNUSED_VARIABLE,-UNUSED_PARAMETER,-ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE,-UNUSED_VALUE
|
||||
// !DIAGNOSTICS: -UNUSED_EXPRESSION -UNUSED_VARIABLE -UNUSED_PARAMETER -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE
|
||||
|
||||
fun <T : CharSequence> bar1(x: T) {}
|
||||
fun bar2(x: CharSequence) {}
|
||||
@@ -14,7 +14,7 @@ fun <T : CharSequence?> foo(x: T) {
|
||||
y1 = <!DEBUG_INFO_SMARTCAST!>x<!>
|
||||
y2 = <!TYPE_MISMATCH!>x<!>
|
||||
|
||||
<!OI;TYPE_INFERENCE_UPPER_BOUND_VIOLATED!>bar1<!>(<!NI;DEBUG_INFO_SMARTCAST!>x<!>)
|
||||
<!TYPE_INFERENCE_UPPER_BOUND_VIOLATED{OI}!>bar1<!>(<!DEBUG_INFO_SMARTCAST{NI}!>x<!>)
|
||||
bar1<CharSequence>(<!DEBUG_INFO_SMARTCAST!>x<!>)
|
||||
bar2(<!DEBUG_INFO_SMARTCAST!>x<!>)
|
||||
bar3(<!TYPE_MISMATCH!>x<!>)
|
||||
@@ -40,13 +40,13 @@ fun <T : CharSequence?> foo(x: T) {
|
||||
|
||||
if (1 == 1) {
|
||||
val y = x!!
|
||||
<!OI;TYPE_INFERENCE_UPPER_BOUND_VIOLATED!>bar1<!>(<!NI;DEBUG_INFO_SMARTCAST!>x<!>)
|
||||
<!TYPE_INFERENCE_UPPER_BOUND_VIOLATED{OI}!>bar1<!>(<!DEBUG_INFO_SMARTCAST{NI}!>x<!>)
|
||||
bar1<CharSequence>(<!DEBUG_INFO_SMARTCAST!>x<!>)
|
||||
bar2(<!DEBUG_INFO_SMARTCAST!>x<!>)
|
||||
bar3(<!TYPE_MISMATCH!>x<!>)
|
||||
|
||||
<!OI;TYPE_INFERENCE_UPPER_BOUND_VIOLATED!>bar1<!>(y)
|
||||
bar2(<!OI;DEBUG_INFO_SMARTCAST!>y<!>)
|
||||
<!TYPE_INFERENCE_UPPER_BOUND_VIOLATED{OI}!>bar1<!>(y)
|
||||
bar2(<!DEBUG_INFO_SMARTCAST{OI}!>y<!>)
|
||||
bar3(<!TYPE_MISMATCH!>y<!>)
|
||||
}
|
||||
}
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
// !WITH_NEW_INFERENCE
|
||||
// !CHECK_TYPE
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER,-UNUSED_VARIABLE
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER -UNUSED_VARIABLE
|
||||
|
||||
class A<F> {
|
||||
fun <E : F> foo1(x: E) = x
|
||||
|
||||
+3
-3
@@ -1,6 +1,6 @@
|
||||
// !WITH_NEW_INFERENCE
|
||||
// !CHECK_TYPE
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER,-UNUSED_VARIABLE
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER -UNUSED_VARIABLE
|
||||
|
||||
class A<F> {
|
||||
fun <E : F> foo1(x: E) = x
|
||||
@@ -18,7 +18,7 @@ class A<F> {
|
||||
x2.checkType { _<F>() }
|
||||
|
||||
foo1<<!UPPER_BOUND_VIOLATED!>F?<!>>(y)
|
||||
<!OI;TYPE_INFERENCE_UPPER_BOUND_VIOLATED!>foo1<!>(<!NI;TYPE_MISMATCH!>y<!>)
|
||||
<!TYPE_INFERENCE_UPPER_BOUND_VIOLATED{OI}!>foo1<!>(<!TYPE_MISMATCH{NI}!>y<!>)
|
||||
foo2<F?>(y)
|
||||
|
||||
val x3 = foo2(y)
|
||||
@@ -38,7 +38,7 @@ class A<F> {
|
||||
x4.checkType { _<Z>() }
|
||||
|
||||
foo1<<!UPPER_BOUND_VIOLATED!>W<!>>(w)
|
||||
<!OI;TYPE_INFERENCE_UPPER_BOUND_VIOLATED!>foo1<!>(<!NI;TYPE_MISMATCH!>w<!>)
|
||||
<!TYPE_INFERENCE_UPPER_BOUND_VIOLATED{OI}!>foo1<!>(<!TYPE_MISMATCH{NI}!>w<!>)
|
||||
foo2<W>(w)
|
||||
|
||||
val x6 = foo2(w)
|
||||
|
||||
+10
-10
@@ -20,7 +20,7 @@ class A<F> {
|
||||
fooInv1<Inv<F>>(Inv<F>())
|
||||
fooInv2<<!UPPER_BOUND_VIOLATED!>Inv<F><!>>(Inv<F>())
|
||||
fooInv1(Inv<F>())
|
||||
<!OI;TYPE_INFERENCE_UPPER_BOUND_VIOLATED!>fooInv2<!>(<!NI;TYPE_MISMATCH!>Inv<F>()<!>)
|
||||
<!TYPE_INFERENCE_UPPER_BOUND_VIOLATED{OI}!>fooInv2<!>(<!TYPE_MISMATCH{NI}!>Inv<F>()<!>)
|
||||
|
||||
fooIn1<In<F?>>(In<F?>())
|
||||
fooIn2<In<F?>>(In<F?>())
|
||||
@@ -35,13 +35,13 @@ class A<F> {
|
||||
// Z
|
||||
fooInv1<<!UPPER_BOUND_VIOLATED!>Inv<Z><!>>(Inv<Z>())
|
||||
fooInv2<<!UPPER_BOUND_VIOLATED!>Inv<Z><!>>(Inv<Z>())
|
||||
<!OI;TYPE_INFERENCE_UPPER_BOUND_VIOLATED!>fooInv1<!>(<!NI;TYPE_MISMATCH!>Inv<Z>()<!>)
|
||||
<!OI;TYPE_INFERENCE_UPPER_BOUND_VIOLATED!>fooInv2<!>(<!NI;TYPE_MISMATCH!>Inv<Z>()<!>)
|
||||
<!TYPE_INFERENCE_UPPER_BOUND_VIOLATED{OI}!>fooInv1<!>(<!TYPE_MISMATCH{NI}!>Inv<Z>()<!>)
|
||||
<!TYPE_INFERENCE_UPPER_BOUND_VIOLATED{OI}!>fooInv2<!>(<!TYPE_MISMATCH{NI}!>Inv<Z>()<!>)
|
||||
|
||||
fooIn1<<!UPPER_BOUND_VIOLATED!>In<Z?><!>>(In<Z?>())
|
||||
fooIn2<<!UPPER_BOUND_VIOLATED!>In<Z?><!>>(In<Z?>())
|
||||
<!OI;TYPE_INFERENCE_UPPER_BOUND_VIOLATED!>fooIn1<!>(<!NI;TYPE_MISMATCH!>In<Z?>()<!>)
|
||||
<!OI;TYPE_INFERENCE_UPPER_BOUND_VIOLATED!>fooIn2<!>(<!NI;TYPE_MISMATCH!>In<Z?>()<!>)
|
||||
<!TYPE_INFERENCE_UPPER_BOUND_VIOLATED{OI}!>fooIn1<!>(<!TYPE_MISMATCH{NI}!>In<Z?>()<!>)
|
||||
<!TYPE_INFERENCE_UPPER_BOUND_VIOLATED{OI}!>fooIn2<!>(<!TYPE_MISMATCH{NI}!>In<Z?>()<!>)
|
||||
|
||||
fooOut1<Out<Z>>(Out<Z>())
|
||||
fooOut2<Out<Z>>(Out<Z>())
|
||||
@@ -51,17 +51,17 @@ class A<F> {
|
||||
// W
|
||||
fooInv1<<!UPPER_BOUND_VIOLATED!>Inv<W><!>>(Inv<W>())
|
||||
fooInv2<<!UPPER_BOUND_VIOLATED!>Inv<W><!>>(Inv<W>())
|
||||
<!OI;TYPE_INFERENCE_UPPER_BOUND_VIOLATED!>fooInv1<!>(<!NI;TYPE_MISMATCH!>Inv<W>()<!>)
|
||||
<!OI;TYPE_INFERENCE_UPPER_BOUND_VIOLATED!>fooInv2<!>(<!NI;TYPE_MISMATCH!>Inv<W>()<!>)
|
||||
<!TYPE_INFERENCE_UPPER_BOUND_VIOLATED{OI}!>fooInv1<!>(<!TYPE_MISMATCH{NI}!>Inv<W>()<!>)
|
||||
<!TYPE_INFERENCE_UPPER_BOUND_VIOLATED{OI}!>fooInv2<!>(<!TYPE_MISMATCH{NI}!>Inv<W>()<!>)
|
||||
|
||||
fooIn1<<!UPPER_BOUND_VIOLATED!>In<W?><!>>(In<W?>())
|
||||
fooIn2<<!UPPER_BOUND_VIOLATED!>In<W?><!>>(In<W?>())
|
||||
<!OI;TYPE_INFERENCE_UPPER_BOUND_VIOLATED!>fooIn1<!>(<!NI;TYPE_MISMATCH!>In<W?>()<!>)
|
||||
<!OI;TYPE_INFERENCE_UPPER_BOUND_VIOLATED!>fooIn2<!>(<!NI;TYPE_MISMATCH!>In<W?>()<!>)
|
||||
<!TYPE_INFERENCE_UPPER_BOUND_VIOLATED{OI}!>fooIn1<!>(<!TYPE_MISMATCH{NI}!>In<W?>()<!>)
|
||||
<!TYPE_INFERENCE_UPPER_BOUND_VIOLATED{OI}!>fooIn2<!>(<!TYPE_MISMATCH{NI}!>In<W?>()<!>)
|
||||
|
||||
fooOut1<<!UPPER_BOUND_VIOLATED!>Out<W><!>>(Out<W>())
|
||||
fooOut2<Out<W>>(Out<W>())
|
||||
<!OI;TYPE_INFERENCE_UPPER_BOUND_VIOLATED!>fooOut1<!>(<!NI;TYPE_MISMATCH!>Out<W>()<!>)
|
||||
<!TYPE_INFERENCE_UPPER_BOUND_VIOLATED{OI}!>fooOut1<!>(<!TYPE_MISMATCH{NI}!>Out<W>()<!>)
|
||||
fooOut2(Out<W>())
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
// !WITH_NEW_INFERENCE
|
||||
// !DIAGNOSTICS: -UNUSED_VALUE,-UNUSED_VARIABLE,-ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE,-VARIABLE_WITH_REDUNDANT_INITIALIZER
|
||||
// !DIAGNOSTICS: -UNUSED_VALUE -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -VARIABLE_WITH_REDUNDANT_INITIALIZER
|
||||
|
||||
class A<T : CharSequence?, E1 : T, E2: T?> {
|
||||
fun T.bar() {}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
// !WITH_NEW_INFERENCE
|
||||
// !DIAGNOSTICS: -UNUSED_VALUE,-UNUSED_VARIABLE,-ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE,-VARIABLE_WITH_REDUNDANT_INITIALIZER
|
||||
// !DIAGNOSTICS: -UNUSED_VALUE -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -VARIABLE_WITH_REDUNDANT_INITIALIZER
|
||||
|
||||
class A<T : CharSequence?, E1 : T, E2: T?> {
|
||||
fun T.bar() {}
|
||||
|
||||
@@ -21,7 +21,7 @@ fun <T : String?> foo(x: T) {
|
||||
x?.bar1()
|
||||
x?.bar2()
|
||||
|
||||
x<!NI;UNSAFE_CALL!>.<!><!OI;TYPE_INFERENCE_UPPER_BOUND_VIOLATED!>bar3<!>()
|
||||
x<!UNSAFE_CALL{NI}!>.<!><!TYPE_INFERENCE_UPPER_BOUND_VIOLATED{OI}!>bar3<!>()
|
||||
|
||||
x?.let { it<!OI;UNSAFE_CALL!>.<!>length }
|
||||
x?.let { it<!UNSAFE_CALL{OI}!>.<!>length }
|
||||
}
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
// !WITH_NEW_INFERENCE
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER,-UNUSED_VARIABLE
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER -UNUSED_VARIABLE
|
||||
|
||||
fun <T : CharSequence?> bar1(x: T) {}
|
||||
|
||||
|
||||
+2
-2
@@ -1,5 +1,5 @@
|
||||
// !WITH_NEW_INFERENCE
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER,-UNUSED_VARIABLE
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER -UNUSED_VARIABLE
|
||||
|
||||
fun <T : CharSequence?> bar1(x: T) {}
|
||||
|
||||
@@ -13,6 +13,6 @@ fun <T : String?> foo(x: T) {
|
||||
bar1(x)
|
||||
bar2(x)
|
||||
|
||||
<!OI;TYPE_INFERENCE_UPPER_BOUND_VIOLATED!>bar3<!>(<!NI;TYPE_MISMATCH!>x<!>)
|
||||
<!TYPE_INFERENCE_UPPER_BOUND_VIOLATED{OI}!>bar3<!>(<!TYPE_MISMATCH{NI}!>x<!>)
|
||||
bar4(<!TYPE_MISMATCH!>x<!>)
|
||||
}
|
||||
|
||||
@@ -15,18 +15,18 @@ fun <T> mc(): MC<T> = null!!
|
||||
fun <T> c(): C<T> = null!!
|
||||
|
||||
fun foo(x: MC<out Open>) {
|
||||
x.addAll(<!NI;TYPE_MISMATCH, OI;TYPE_MISMATCH_DUE_TO_TYPE_PROJECTIONS!>x<!>)
|
||||
x.addAllMC(<!NI;TYPE_MISMATCH, OI;TYPE_MISMATCH_DUE_TO_TYPE_PROJECTIONS!>x<!>)
|
||||
x.addAll(<!TYPE_MISMATCH{NI}, TYPE_MISMATCH_DUE_TO_TYPE_PROJECTIONS{OI}!>x<!>)
|
||||
x.addAllMC(<!TYPE_MISMATCH{NI}, TYPE_MISMATCH_DUE_TO_TYPE_PROJECTIONS{OI}!>x<!>)
|
||||
|
||||
x.addAll(<!NI;TYPE_MISMATCH, OI;TYPE_MISMATCH_DUE_TO_TYPE_PROJECTIONS!>mc<Open>()<!>)
|
||||
x.addAllMC(<!NI;TYPE_MISMATCH, OI;TYPE_MISMATCH_DUE_TO_TYPE_PROJECTIONS!>mc<Open>()<!>)
|
||||
x.addAll(<!TYPE_MISMATCH{NI}, TYPE_MISMATCH_DUE_TO_TYPE_PROJECTIONS{OI}!>mc<Open>()<!>)
|
||||
x.addAllMC(<!TYPE_MISMATCH{NI}, TYPE_MISMATCH_DUE_TO_TYPE_PROJECTIONS{OI}!>mc<Open>()<!>)
|
||||
|
||||
x.addAll(<!NI;TYPE_MISMATCH, OI;TYPE_MISMATCH_DUE_TO_TYPE_PROJECTIONS!>mc<Derived>()<!>)
|
||||
x.addAllMC(<!NI;TYPE_MISMATCH, OI;TYPE_MISMATCH_DUE_TO_TYPE_PROJECTIONS!>mc<Derived>()<!>)
|
||||
x.addAll(<!TYPE_MISMATCH{NI}, TYPE_MISMATCH_DUE_TO_TYPE_PROJECTIONS{OI}!>mc<Derived>()<!>)
|
||||
x.addAllMC(<!TYPE_MISMATCH{NI}, TYPE_MISMATCH_DUE_TO_TYPE_PROJECTIONS{OI}!>mc<Derived>()<!>)
|
||||
|
||||
x.addAll(c())
|
||||
x.addAll(c<Nothing>())
|
||||
|
||||
x.<!OI;MEMBER_PROJECTED_OUT!>addAllInv<!>(<!NI;TYPE_MISMATCH!>mc<Open>()<!>)
|
||||
x.<!MEMBER_PROJECTED_OUT{OI}!>addAllInv<!>(<!TYPE_MISMATCH{NI}!>mc<Open>()<!>)
|
||||
x.addAll(<!CONSTANT_EXPECTED_TYPE_MISMATCH!>1<!>)
|
||||
}
|
||||
|
||||
Vendored
+2
-2
@@ -9,10 +9,10 @@ fun test(x: A<out CharSequence>, y: Out<CharSequence>) {
|
||||
with(x) {
|
||||
// TODO: this diagnostic could be replaced with TYPE_MISMATCH_DUE_TO_TYPE_PROJECTION
|
||||
"".<!UNRESOLVED_REFERENCE_WRONG_RECEIVER!>foo<!>()
|
||||
<!OI;TYPE_MISMATCH_DUE_TO_TYPE_PROJECTIONS!>y<!>.<!NI;UNRESOLVED_REFERENCE_WRONG_RECEIVER!>bar<!>()
|
||||
<!TYPE_MISMATCH_DUE_TO_TYPE_PROJECTIONS{OI}!>y<!>.<!UNRESOLVED_REFERENCE_WRONG_RECEIVER{NI}!>bar<!>()
|
||||
|
||||
with(y) {
|
||||
<!NI;UNRESOLVED_REFERENCE_WRONG_RECEIVER, OI;TYPE_MISMATCH_DUE_TO_TYPE_PROJECTIONS!>bar<!>()
|
||||
<!TYPE_MISMATCH_DUE_TO_TYPE_PROJECTIONS{OI}, UNRESOLVED_REFERENCE_WRONG_RECEIVER{NI}!>bar<!>()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+1
-1
@@ -5,5 +5,5 @@ interface B<E> {
|
||||
}
|
||||
|
||||
fun foo(x: B<in CharSequence>, y: A<CharSequence>) {
|
||||
x.foo(<!NI;TYPE_MISMATCH, OI;TYPE_MISMATCH_DUE_TO_TYPE_PROJECTIONS!>y<!>)
|
||||
x.foo(<!TYPE_MISMATCH{NI}, TYPE_MISMATCH_DUE_TO_TYPE_PROJECTIONS{OI}!>y<!>)
|
||||
}
|
||||
|
||||
Vendored
+1
-1
@@ -6,5 +6,5 @@ class A<T> {
|
||||
}
|
||||
|
||||
fun test(a: A<out CharSequence>) {
|
||||
a.<!OI;MEMBER_PROJECTED_OUT!>foo<!>(<!NI;TYPE_MISMATCH!>""<!>, <!NI;TYPE_MISMATCH!>""<!>)
|
||||
a.<!MEMBER_PROJECTED_OUT{OI}!>foo<!>(<!TYPE_MISMATCH{NI}!>""<!>, <!TYPE_MISMATCH{NI}!>""<!>)
|
||||
}
|
||||
|
||||
+3
-3
@@ -8,7 +8,7 @@ class A<T> {
|
||||
}
|
||||
|
||||
fun test(a: A<out CharSequence>) {
|
||||
a <!OI;MEMBER_PROJECTED_OUT!>+<!> <!NI;TYPE_MISMATCH!>""<!>
|
||||
<!OI;MEMBER_PROJECTED_OUT!>a[1]<!> = <!NI;TYPE_MISMATCH!>""<!>
|
||||
<!OI;MEMBER_PROJECTED_OUT!>a[<!NI;TYPE_MISMATCH!>""<!>]<!>
|
||||
a <!MEMBER_PROJECTED_OUT{OI}!>+<!> <!TYPE_MISMATCH{NI}!>""<!>
|
||||
<!MEMBER_PROJECTED_OUT{OI}!>a[1]<!> = <!TYPE_MISMATCH{NI}!>""<!>
|
||||
<!MEMBER_PROJECTED_OUT{OI}!>a[<!TYPE_MISMATCH{NI}!>""<!>]<!>
|
||||
}
|
||||
|
||||
+4
-4
@@ -6,18 +6,18 @@ class C<R> {
|
||||
}
|
||||
|
||||
fun foo(x: Any?, y: C<*>) {
|
||||
y.<!OI;MEMBER_PROJECTED_OUT!>bindTo<!>(<!NI;TYPE_MISMATCH!>""<!>)
|
||||
y.<!MEMBER_PROJECTED_OUT{OI}!>bindTo<!>(<!TYPE_MISMATCH{NI}!>""<!>)
|
||||
|
||||
if (x is C<*>) {
|
||||
<!DEBUG_INFO_SMARTCAST!>x<!>.<!OI;MEMBER_PROJECTED_OUT!>bindTo<!>(<!NI;TYPE_MISMATCH!>""<!>)
|
||||
<!DEBUG_INFO_SMARTCAST!>x<!>.<!MEMBER_PROJECTED_OUT{OI}!>bindTo<!>(<!TYPE_MISMATCH{NI}!>""<!>)
|
||||
with(<!DEBUG_INFO_SMARTCAST!>x<!>) {
|
||||
<!OI;MEMBER_PROJECTED_OUT!>bindTo<!>(<!NI;TYPE_MISMATCH!>""<!>)
|
||||
<!MEMBER_PROJECTED_OUT{OI}!>bindTo<!>(<!TYPE_MISMATCH{NI}!>""<!>)
|
||||
}
|
||||
}
|
||||
|
||||
with(x) {
|
||||
if (this is C<*>) {
|
||||
<!DEBUG_INFO_IMPLICIT_RECEIVER_SMARTCAST, OI;MEMBER_PROJECTED_OUT!>bindTo<!>(<!NI;TYPE_MISMATCH!>""<!>)
|
||||
<!DEBUG_INFO_IMPLICIT_RECEIVER_SMARTCAST, MEMBER_PROJECTED_OUT{OI}!>bindTo<!>(<!TYPE_MISMATCH{NI}!>""<!>)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+3
-3
@@ -10,9 +10,9 @@ class A<T> {
|
||||
class Out<out F>
|
||||
|
||||
fun test(a: A<out CharSequence>, y: Out<CharSequence>) {
|
||||
a + <!NI;TYPE_MISMATCH, OI;TYPE_MISMATCH_DUE_TO_TYPE_PROJECTIONS!>y<!>
|
||||
a[1] = <!NI;TYPE_MISMATCH, OI;TYPE_MISMATCH_DUE_TO_TYPE_PROJECTIONS!>y<!>
|
||||
a[<!NI;TYPE_MISMATCH, OI;TYPE_MISMATCH_DUE_TO_TYPE_PROJECTIONS!>y<!>]
|
||||
a + <!TYPE_MISMATCH{NI}, TYPE_MISMATCH_DUE_TO_TYPE_PROJECTIONS{OI}!>y<!>
|
||||
a[1] = <!TYPE_MISMATCH{NI}, TYPE_MISMATCH_DUE_TO_TYPE_PROJECTIONS{OI}!>y<!>
|
||||
a[<!TYPE_MISMATCH{NI}, TYPE_MISMATCH_DUE_TO_TYPE_PROJECTIONS{OI}!>y<!>]
|
||||
|
||||
a + Out<Nothing>()
|
||||
a[1] = Out<Nothing>()
|
||||
|
||||
+5
-5
@@ -14,14 +14,14 @@ class A<E> {
|
||||
fun test(a: A<out CharSequence>, z: Out<CharSequence>) {
|
||||
a.foo {
|
||||
val x: String = <!CONSTANT_EXPECTED_TYPE_MISMATCH!>1<!> // Should be no TYPE_MISMATCH_DUE_TO_TYPE_PROJECTIONS
|
||||
<!NI;TYPE_MISMATCH, NI;TYPE_MISMATCH, TYPE_MISMATCH!>""<!>
|
||||
<!TYPE_MISMATCH{NI}, TYPE_MISMATCH{NI}, TYPE_MISMATCH!>""<!>
|
||||
}
|
||||
a.bar { <!NI;TYPE_MISMATCH, NI;TYPE_MISMATCH, NI;TYPE_MISMATCH, TYPE_MISMATCH!>Out<CharSequence>()<!> }
|
||||
a.bar { <!TYPE_MISMATCH{NI}, TYPE_MISMATCH{NI}, TYPE_MISMATCH{NI}, TYPE_MISMATCH!>Out<CharSequence>()<!> }
|
||||
a.bar { Out() }
|
||||
a.bar { <!NI;TYPE_MISMATCH, NI;TYPE_MISMATCH, TYPE_MISMATCH!>z.id()<!> }
|
||||
a.bar { <!TYPE_MISMATCH{NI}, TYPE_MISMATCH{NI}, TYPE_MISMATCH!>z.id()<!> }
|
||||
|
||||
a.foo {
|
||||
z.foobar(if (1 > 2) return@foo <!NI;TYPE_MISMATCH, NI;TYPE_MISMATCH, TYPE_MISMATCH!>""<!> else "")
|
||||
<!NI;TYPE_MISMATCH, NI;TYPE_MISMATCH, TYPE_MISMATCH!>""<!>
|
||||
z.foobar(if (1 > 2) return@foo <!TYPE_MISMATCH{NI}, TYPE_MISMATCH{NI}, TYPE_MISMATCH!>""<!> else "")
|
||||
<!TYPE_MISMATCH{NI}, TYPE_MISMATCH{NI}, TYPE_MISMATCH!>""<!>
|
||||
}
|
||||
}
|
||||
|
||||
+10
-10
@@ -13,15 +13,15 @@ class A<T> {
|
||||
}
|
||||
|
||||
fun foo2(a: A<out CharSequence>, b: A<in CharSequence>) {
|
||||
a.<!OI;TYPE_INFERENCE_UPPER_BOUND_VIOLATED!>foo1<!>(<!NI;TYPE_MISMATCH!>Out<CharSequence>()<!>)
|
||||
a.foo1<<!UPPER_BOUND_VIOLATED!>Out<CharSequence><!>>(<!NI;TYPE_MISMATCH!>Out()<!>)
|
||||
a.<!TYPE_INFERENCE_UPPER_BOUND_VIOLATED{OI}!>foo1<!>(<!TYPE_MISMATCH{NI}!>Out<CharSequence>()<!>)
|
||||
a.foo1<<!UPPER_BOUND_VIOLATED!>Out<CharSequence><!>>(<!TYPE_MISMATCH{NI}!>Out()<!>)
|
||||
|
||||
a.foo1(Out())
|
||||
a.foo1(Out<Nothing>())
|
||||
|
||||
a.<!OI;TYPE_INFERENCE_INCORPORATION_ERROR!>foo2<!>(<!NI;TYPE_MISMATCH!><!OI;TYPE_INFERENCE_NO_INFORMATION_FOR_PARAMETER!>Inv<!>()<!>)
|
||||
a.<!OI;TYPE_INFERENCE_UPPER_BOUND_VIOLATED!>foo2<!>(<!NI;TYPE_MISMATCH!>Inv<CharSequence>()<!>)
|
||||
a.foo2<<!UPPER_BOUND_VIOLATED!>Inv<CharSequence><!>>(<!NI;TYPE_MISMATCH!>Inv()<!>)
|
||||
a.<!TYPE_INFERENCE_INCORPORATION_ERROR{OI}!>foo2<!>(<!TYPE_MISMATCH{NI}!><!TYPE_INFERENCE_NO_INFORMATION_FOR_PARAMETER{OI}!>Inv<!>()<!>)
|
||||
a.<!TYPE_INFERENCE_UPPER_BOUND_VIOLATED{OI}!>foo2<!>(<!TYPE_MISMATCH{NI}!>Inv<CharSequence>()<!>)
|
||||
a.foo2<<!UPPER_BOUND_VIOLATED!>Inv<CharSequence><!>>(<!TYPE_MISMATCH{NI}!>Inv()<!>)
|
||||
|
||||
a.foo3(In())
|
||||
a.foo3(In<CharSequence>())
|
||||
@@ -31,13 +31,13 @@ fun foo2(a: A<out CharSequence>, b: A<in CharSequence>) {
|
||||
b.foo1(Out<CharSequence>())
|
||||
b.foo1<Out<CharSequence>>(Out())
|
||||
|
||||
b.<!OI;TYPE_INFERENCE_INCORPORATION_ERROR!>foo2<!>(<!NI;TYPE_MISMATCH!><!OI;TYPE_INFERENCE_NO_INFORMATION_FOR_PARAMETER!>Inv<!>()<!>)
|
||||
b.<!OI;TYPE_INFERENCE_UPPER_BOUND_VIOLATED!>foo2<!>(<!NI;TYPE_MISMATCH!>Inv<CharSequence>()<!>)
|
||||
b.foo2<<!UPPER_BOUND_VIOLATED!>Inv<CharSequence><!>>(<!NI;TYPE_MISMATCH!>Inv()<!>)
|
||||
b.<!TYPE_INFERENCE_INCORPORATION_ERROR{OI}!>foo2<!>(<!TYPE_MISMATCH{NI}!><!TYPE_INFERENCE_NO_INFORMATION_FOR_PARAMETER{OI}!>Inv<!>()<!>)
|
||||
b.<!TYPE_INFERENCE_UPPER_BOUND_VIOLATED{OI}!>foo2<!>(<!TYPE_MISMATCH{NI}!>Inv<CharSequence>()<!>)
|
||||
b.foo2<<!UPPER_BOUND_VIOLATED!>Inv<CharSequence><!>>(<!TYPE_MISMATCH{NI}!>Inv()<!>)
|
||||
|
||||
|
||||
b.<!OI;TYPE_INFERENCE_UPPER_BOUND_VIOLATED!>foo3<!>(<!NI;TYPE_MISMATCH!>In<CharSequence>()<!>)
|
||||
b.foo3<<!UPPER_BOUND_VIOLATED!>In<CharSequence><!>>(<!NI;TYPE_MISMATCH!>In()<!>)
|
||||
b.<!TYPE_INFERENCE_UPPER_BOUND_VIOLATED{OI}!>foo3<!>(<!TYPE_MISMATCH{NI}!>In<CharSequence>()<!>)
|
||||
b.foo3<<!UPPER_BOUND_VIOLATED!>In<CharSequence><!>>(<!TYPE_MISMATCH{NI}!>In()<!>)
|
||||
|
||||
b.foo3(In<Any?>())
|
||||
b.foo3(In())
|
||||
|
||||
@@ -6,8 +6,8 @@ class A<T> {
|
||||
}
|
||||
|
||||
fun test(a: A<out CharSequence>, y: Array<out CharSequence>) {
|
||||
a.<!OI;MEMBER_PROJECTED_OUT!>foo<!>(<!NI;TYPE_MISMATCH!>""<!>, <!NI;TYPE_MISMATCH!>""<!>, <!NI;TYPE_MISMATCH!>""<!>)
|
||||
a.foo(*<!NI;TYPE_MISMATCH, OI;TYPE_MISMATCH_DUE_TO_TYPE_PROJECTIONS!>y<!>)
|
||||
a.<!MEMBER_PROJECTED_OUT{OI}!>foo<!>(<!TYPE_MISMATCH{NI}!>""<!>, <!TYPE_MISMATCH{NI}!>""<!>, <!TYPE_MISMATCH{NI}!>""<!>)
|
||||
a.foo(*<!TYPE_MISMATCH{NI}, TYPE_MISMATCH_DUE_TO_TYPE_PROJECTIONS{OI}!>y<!>)
|
||||
// TODO: TYPE_MISMATCH_DUE_TO_TYPE_PROJECTIONS probably redundant
|
||||
a.<!OI;MEMBER_PROJECTED_OUT!>foo<!>(*<!NI;TYPE_MISMATCH, OI;TYPE_MISMATCH_DUE_TO_TYPE_PROJECTIONS!>y<!>, <!NI;TYPE_MISMATCH!>""<!>)
|
||||
a.<!MEMBER_PROJECTED_OUT{OI}!>foo<!>(*<!TYPE_MISMATCH{NI}, TYPE_MISMATCH_DUE_TO_TYPE_PROJECTIONS{OI}!>y<!>, <!TYPE_MISMATCH{NI}!>""<!>)
|
||||
}
|
||||
|
||||
@@ -17,7 +17,7 @@ fun main(a: A<*>, j: JavaClass<*>, i2: Inv2<*>) {
|
||||
j.foo() checkType { _<Any?>() }
|
||||
i2.x checkType { _<Any?>() }
|
||||
|
||||
j.bar(<!CONSTANT_EXPECTED_TYPE_MISMATCH!>1<!>, <!CONSTANT_EXPECTED_TYPE_MISMATCH!>2<!>, <!NI;TYPE_MISMATCH, OI;TYPE_MISMATCH_DUE_TO_TYPE_PROJECTIONS!>Any()<!>)
|
||||
j.bar(<!CONSTANT_EXPECTED_TYPE_MISMATCH!>1<!>, <!CONSTANT_EXPECTED_TYPE_MISMATCH!>2<!>, <!TYPE_MISMATCH{NI}, TYPE_MISMATCH_DUE_TO_TYPE_PROJECTIONS{OI}!>Any()<!>)
|
||||
j.bar(null)
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -14,4 +14,4 @@ fun <A> main() {
|
||||
|
||||
// TODO svtk, uncomment when extensions are called for nested calls!
|
||||
//val < !UNUSED_VARIABLE!>с< !>: C<A> = id(< !TYPE_PARAMETER_AS_REIFIED!>C< !>())
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,7 +4,7 @@ class C<<!REIFIED_TYPE_PARAMETER_NO_INLINE!>reified<!> T>
|
||||
fun <T> id(p: T): T = p
|
||||
|
||||
fun <A> main() {
|
||||
<!NI;NEW_INFERENCE_NO_INFORMATION_FOR_PARAMETER, OI;TYPE_INFERENCE_NO_INFORMATION_FOR_PARAMETER!>C<!>()
|
||||
<!NEW_INFERENCE_NO_INFORMATION_FOR_PARAMETER{NI}, TYPE_INFERENCE_NO_INFORMATION_FOR_PARAMETER{OI}!>C<!>()
|
||||
|
||||
val <!UNUSED_VARIABLE!>a<!>: C<A> = <!TYPE_PARAMETER_AS_REIFIED!>C<!>()
|
||||
C<<!TYPE_PARAMETER_AS_REIFIED!>A<!>>()
|
||||
@@ -14,4 +14,4 @@ fun <A> main() {
|
||||
|
||||
// TODO svtk, uncomment when extensions are called for nested calls!
|
||||
//val < !UNUSED_VARIABLE!>с< !>: C<A> = id(< !TYPE_PARAMETER_AS_REIFIED!>C< !>())
|
||||
}
|
||||
}
|
||||
|
||||
@@ -15,4 +15,4 @@ fun <A> main() {
|
||||
f<Int>()
|
||||
|
||||
val с: A = id(f())
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,7 +6,7 @@ inline fun <reified T> f(): T = throw UnsupportedOperationException()
|
||||
fun <T> id(p: T): T = p
|
||||
|
||||
fun <A> main() {
|
||||
<!NI;NEW_INFERENCE_NO_INFORMATION_FOR_PARAMETER, OI;TYPE_INFERENCE_NO_INFORMATION_FOR_PARAMETER!>f<!>()
|
||||
<!NEW_INFERENCE_NO_INFORMATION_FOR_PARAMETER{NI}, TYPE_INFERENCE_NO_INFORMATION_FOR_PARAMETER{OI}!>f<!>()
|
||||
|
||||
val <!UNUSED_VARIABLE!>a<!>: A = <!TYPE_PARAMETER_AS_REIFIED!>f<!>()
|
||||
f<<!TYPE_PARAMETER_AS_REIFIED!>A<!>>()
|
||||
@@ -15,4 +15,4 @@ fun <A> main() {
|
||||
f<Int>()
|
||||
|
||||
val <!UNUSED_VARIABLE!>с<!>: A = id(<!TYPE_PARAMETER_AS_REIFIED!>f<!>())
|
||||
}
|
||||
}
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
// JAVAC_SKIP
|
||||
// SKIP_JAVAC
|
||||
// FILE: JavaClass.java
|
||||
public class JavaClass {
|
||||
public void foo(? x) {}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
// JAVAC_SKIP
|
||||
// SKIP_JAVAC
|
||||
// FILE: JavaClass.java
|
||||
public class JavaClass {
|
||||
public void foo(? x) {}
|
||||
|
||||
+3
-3
@@ -5,12 +5,12 @@ fun myFun(i : String) {}
|
||||
fun myFun(i : Int) {}
|
||||
|
||||
fun test1() {
|
||||
<!NI;NONE_APPLICABLE!>myFun<!><!OI;WRONG_NUMBER_OF_TYPE_ARGUMENTS!><Int><!>(3)
|
||||
<!NONE_APPLICABLE{NI}!>myFun<!><!WRONG_NUMBER_OF_TYPE_ARGUMENTS{OI}!><Int><!>(3)
|
||||
<!NONE_APPLICABLE!>myFun<!><String>('a')
|
||||
}
|
||||
|
||||
fun test2() {
|
||||
val m0 = java.util.<!NI;NEW_INFERENCE_NO_INFORMATION_FOR_PARAMETER, OI;TYPE_INFERENCE_NO_INFORMATION_FOR_PARAMETER!>HashMap<!>()
|
||||
val m0 = java.util.<!NEW_INFERENCE_NO_INFORMATION_FOR_PARAMETER{NI}, TYPE_INFERENCE_NO_INFORMATION_FOR_PARAMETER{OI}!>HashMap<!>()
|
||||
val m1 = java.util.HashMap<!WRONG_NUMBER_OF_TYPE_ARGUMENTS!><String, String, String><!>()
|
||||
val m2 = java.util.HashMap<!WRONG_NUMBER_OF_TYPE_ARGUMENTS!><String><!>()
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user