[FIR] Introduce TYPE_ARGUMENTS_NOT_ALLOWED & some other type errors
This commit introduces several different things, in particular: - check type arguments in expressions - new TypeArgumentList node to deal with diagnostic source - ConeDiagnostic was moved to fir:cones - ConeIntermediateDiagnostic to use in inference (?) without reporting - detailed diagnostics on error type
This commit is contained in:
+1
@@ -22,6 +22,7 @@ interface B {
|
||||
<!REDUNDANT_MODALITY_MODIFIER!>abstract<!> var bar: Unit
|
||||
<!REDUNDANT_MODALITY_MODIFIER!>abstract<!> fun foo()
|
||||
}
|
||||
interface Foo
|
||||
|
||||
expect abstract class AbstractClass : Foo {
|
||||
abstract override fun foo()
|
||||
|
||||
+3
-1
@@ -36,7 +36,9 @@ FILE: RedundantModalityModifierChecker.kt
|
||||
public abstract fun foo(): R|kotlin/Unit|
|
||||
|
||||
}
|
||||
public abstract expect class AbstractClass : R|ERROR CLASS: Symbol not found, for `Foo`| {
|
||||
public abstract interface Foo : R|kotlin/Any| {
|
||||
}
|
||||
public abstract expect class AbstractClass : R|Foo| {
|
||||
public expect constructor(): R|AbstractClass| {
|
||||
super<R|kotlin/Any|>()
|
||||
}
|
||||
|
||||
+1
-1
@@ -5,7 +5,7 @@ interface A {
|
||||
val b: B?
|
||||
}
|
||||
|
||||
class C(a: A, b: b) {
|
||||
class C(a: A, b: B) {
|
||||
init {
|
||||
val c = a.b?.let {
|
||||
C(a, it)
|
||||
|
||||
+1
-1
@@ -7,7 +7,7 @@ FILE: initBlockAndInPlaceLambda.kt
|
||||
|
||||
}
|
||||
public final class C : R|kotlin/Any| {
|
||||
public constructor(a: R|A|, b: R|ERROR CLASS: Symbol not found, for `b`|): R|C| {
|
||||
public constructor(a: R|A|, b: R|B|): R|C| {
|
||||
super<R|kotlin/Any|>()
|
||||
}
|
||||
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
// FULL_JDK
|
||||
// FILE: util/HashMap.java
|
||||
|
||||
package util;
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
FILE: LinkedList.kt
|
||||
public final class LinkedList<T> : R|ERROR CLASS: Symbol not found, for `java.util.LinkedList<R|T|>`| {
|
||||
public final class LinkedList<T> : R|java/util/LinkedList<T>| {
|
||||
public constructor<T>(): R|foo/LinkedList<T>| {
|
||||
super<R|ERROR CLASS: Symbol not found, for `java.util.LinkedList<R|T|>`|>()
|
||||
super<R|java/util/LinkedList<T>|>()
|
||||
}
|
||||
|
||||
}
|
||||
@@ -13,9 +13,9 @@ FILE: HashSet.kt
|
||||
|
||||
}
|
||||
FILE: main.kt
|
||||
public final class LinkedHashMap<K, V> : R|ERROR CLASS: Symbol not found, for `java.util.LinkedHashMap<R|K|, R|V|>`| {
|
||||
public final class LinkedHashMap<K, V> : R|java/util/LinkedHashMap<K, V>| {
|
||||
public constructor<K, V>(): R|foo/LinkedHashMap<K, V>| {
|
||||
super<R|ERROR CLASS: Symbol not found, for `java.util.LinkedHashMap<R|K|, R|V|>`|>()
|
||||
super<R|java/util/LinkedHashMap<K, V>|>()
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
+1
-1
@@ -1,7 +1,7 @@
|
||||
fun foo() {
|
||||
<!LOCAL_ANNOTATION_CLASS_ERROR!>annotation class Ann<!>
|
||||
|
||||
@Anno class Local {
|
||||
@Ann class Local {
|
||||
// There should also be NESTED_CLASS_NOT_ALLOWED report here.
|
||||
<!LOCAL_ANNOTATION_CLASS_ERROR!>annotation class Nested<!>
|
||||
}
|
||||
|
||||
+1
-1
@@ -7,7 +7,7 @@ FILE: localAnnotationClass.kt
|
||||
|
||||
}
|
||||
|
||||
@R|ERROR CLASS: Symbol not found, for `Anno`|() local final class Local : R|kotlin/Any| {
|
||||
@R|Ann|() local final class Local : R|kotlin/Any| {
|
||||
public constructor(): R|Local| {
|
||||
super<R|kotlin/Any|>()
|
||||
}
|
||||
|
||||
+34
@@ -0,0 +1,34 @@
|
||||
package rest
|
||||
|
||||
abstract class Foo<T> {
|
||||
abstract val x: <!TYPE_ARGUMENTS_NOT_ALLOWED, TYPE_ARGUMENTS_NOT_ALLOWED!>T<Int><!>
|
||||
|
||||
abstract fun foo(): <!TYPE_ARGUMENTS_NOT_ALLOWED!>T<String><!>
|
||||
}
|
||||
|
||||
fun <T> foo() {
|
||||
bar<<!TYPE_ARGUMENTS_NOT_ALLOWED, UPPER_BOUND_VIOLATED!>T<Int><!>>()
|
||||
bar<List<List<<!TYPE_ARGUMENTS_NOT_ALLOWED, UPPER_BOUND_VIOLATED!>T<Boolean><!>>>>()
|
||||
}
|
||||
|
||||
fun <T> bar() {}
|
||||
|
||||
object Best {
|
||||
|
||||
}
|
||||
|
||||
val a = <!TYPE_ARGUMENTS_NOT_ALLOWED!>rest<Int><!>.<!UNRESOLVED_REFERENCE!>MyClass<!><String>
|
||||
val b = Best.<!UNRESOLVED_REFERENCE!>MyClass<!><String>
|
||||
|
||||
class B<E>
|
||||
class C<F<!SYNTAX!><<!><!SYNTAX!>Boolean<!><!SYNTAX!>><!><!SYNTAX!>><!> <!SYNTAX!>:<!> <!SYNTAX!>B<!><!SYNTAX!><<!><!SYNTAX!>F<!><!SYNTAX!><<!><!SYNTAX!>Boolean<!><!SYNTAX!>><!><!SYNTAX!>><!><!SYNTAX!>(<!><!SYNTAX!>)<!>
|
||||
|
||||
fun <G> gest() {}
|
||||
|
||||
fun <T> fest() {
|
||||
val b: List<<!TYPE_ARGUMENTS_NOT_ALLOWED!>T<Double><!>>
|
||||
gest<<!TYPE_ARGUMENTS_NOT_ALLOWED, UPPER_BOUND_VIOLATED!>T<Char><!>>()
|
||||
gest<T>()
|
||||
val c: List<List<List<<!TYPE_ARGUMENTS_NOT_ALLOWED!>T<String><!>>>>
|
||||
gest<List<List<<!TYPE_ARGUMENTS_NOT_ALLOWED, UPPER_BOUND_VIOLATED!>T<Boolean><!>>>>()
|
||||
}
|
||||
+49
@@ -0,0 +1,49 @@
|
||||
FILE: typeArgumentsNotAllowed.kt
|
||||
public abstract class Foo<T> : R|kotlin/Any| {
|
||||
public constructor<T>(): R|rest/Foo<T>| {
|
||||
super<R|kotlin/Any|>()
|
||||
}
|
||||
|
||||
public abstract val x: <ERROR TYPE REF: Type arguments not allowed>
|
||||
public get(): <ERROR TYPE REF: Type arguments not allowed>
|
||||
|
||||
public abstract fun foo(): <ERROR TYPE REF: Type arguments not allowed>
|
||||
|
||||
}
|
||||
public final fun <T> foo(): R|kotlin/Unit| {
|
||||
R|rest/bar|<<ERROR TYPE REF: Type arguments not allowed>>()
|
||||
R|rest/bar|<<ERROR TYPE REF: Type arguments not allowed>>()
|
||||
}
|
||||
public final fun <T> bar(): R|kotlin/Unit| {
|
||||
}
|
||||
public final object Best : R|kotlin/Any| {
|
||||
private constructor(): R|rest/Best| {
|
||||
super<R|kotlin/Any|>()
|
||||
}
|
||||
|
||||
}
|
||||
public final val a: <ERROR TYPE REF: Unresolved name: MyClass> = Q|rest|.<Unresolved name: MyClass>#
|
||||
public get(): <ERROR TYPE REF: Unresolved name: MyClass>
|
||||
public final val b: <ERROR TYPE REF: Unresolved name: MyClass> = Q|rest/Best|.<Unresolved name: MyClass>#
|
||||
public get(): <ERROR TYPE REF: Unresolved name: MyClass>
|
||||
public final class B<E> : R|kotlin/Any| {
|
||||
public constructor<E>(): R|rest/B<E>| {
|
||||
super<R|kotlin/Any|>()
|
||||
}
|
||||
|
||||
}
|
||||
public final class C<F> : R|kotlin/Any| {
|
||||
public constructor<F>(): R|rest/C<F>| {
|
||||
super<R|kotlin/Any|>()
|
||||
}
|
||||
|
||||
}
|
||||
public final fun <G> gest(): R|kotlin/Unit| {
|
||||
}
|
||||
public final fun <T> fest(): R|kotlin/Unit| {
|
||||
lval b: <ERROR TYPE REF: Type arguments not allowed>
|
||||
R|rest/gest|<<ERROR TYPE REF: Type arguments not allowed>>()
|
||||
R|rest/gest|<R|T|>()
|
||||
lval c: <ERROR TYPE REF: Type arguments not allowed>
|
||||
R|rest/gest|<<ERROR TYPE REF: Type arguments not allowed>>()
|
||||
}
|
||||
+2
-2
@@ -14,8 +14,8 @@ fun test() {
|
||||
val b1 = B<<!UPPER_BOUND_VIOLATED!>Int<!>>()
|
||||
val b2 = B<C>()
|
||||
val b3 = B<<!UPPER_BOUND_VIOLATED!>Any?<!>>()
|
||||
val b4 = B<UnexistingType>()
|
||||
val b5 = B<<!UPPER_BOUND_VIOLATED!>B<UnexistingType><!>>()
|
||||
val b4 = B<<!OTHER_ERROR, UPPER_BOUND_VIOLATED!>UnexistingType<!>>()
|
||||
val b5 = B<<!OTHER_ERROR, UPPER_BOUND_VIOLATED!>B<UnexistingType><!>>()
|
||||
fest<<!UPPER_BOUND_VIOLATED!>Boolean<!>>()
|
||||
fest<C>()
|
||||
fest<HHH>()
|
||||
|
||||
+2
-2
@@ -22,8 +22,8 @@ FILE: upperBoundViolated.kt
|
||||
lval b1: R|B<kotlin/Int>| = R|/B.B|<R|kotlin/Int|>()
|
||||
lval b2: R|B<C>| = R|/B.B|<R|C|>()
|
||||
lval b3: R|B<kotlin/Any?>| = R|/B.B|<R|kotlin/Any?|>()
|
||||
lval b4: R|B<A>| = R|/B.B|<R|A|>()
|
||||
lval b5: R|B<B<ERROR CLASS: Symbol not found, for `UnexistingType`>>| = R|/B.B|<R|B<ERROR CLASS: Symbol not found, for `UnexistingType`>|>()
|
||||
lval b4: R|B<A>| = R|/B.B|<<ERROR TYPE REF: Symbol not found, for `UnexistingType`>>()
|
||||
lval b5: R|B<A>| = R|/B.B|<<ERROR TYPE REF: Symbol not found, for `UnexistingType`>>()
|
||||
R|/fest|<R|kotlin/Boolean|>()
|
||||
R|/fest|<R|C|>()
|
||||
R|/fest|<R|C|>()
|
||||
|
||||
Vendored
+12
-2
@@ -1,5 +1,15 @@
|
||||
package org.jetbrains.kotlin.codegen.range.inExpression
|
||||
|
||||
interface ExpressionCodegen
|
||||
interface KtSimpleNameExpression
|
||||
interface InExpressionGenerator
|
||||
interface StackValue
|
||||
open class BranchedValue
|
||||
interface Type
|
||||
interface KotlinType
|
||||
interface Label
|
||||
interface InstructionAdapter
|
||||
|
||||
class CallBasedInExpressionGenerator(
|
||||
val codegen: ExpressionCodegen,
|
||||
operatorReference: KtSimpleNameExpression
|
||||
@@ -8,10 +18,10 @@ class CallBasedInExpressionGenerator(
|
||||
private val isInverted = operatorReference.<!UNRESOLVED_REFERENCE!>getReferencedNameElementType<!>() == <!UNRESOLVED_REFERENCE!>KtTokens<!>.<!UNRESOLVED_REFERENCE!>NOT_IN<!>
|
||||
|
||||
override fun generate(argument: StackValue): BranchedValue =
|
||||
gen(argument).<!INAPPLICABLE_CANDIDATE!>let<!> { if (isInverted) <!UNRESOLVED_REFERENCE!>Invert<!>(it) else it }
|
||||
gen(argument).let { if (isInverted) <!UNRESOLVED_REFERENCE!>Invert<!>(it) else it }
|
||||
|
||||
private fun gen(argument: StackValue): BranchedValue =
|
||||
object : BranchedValue(argument, null, argument.<!UNRESOLVED_REFERENCE!>type<!>, <!UNRESOLVED_REFERENCE!>Opcodes<!>.<!UNRESOLVED_REFERENCE!>IFEQ<!>) {
|
||||
object : <!INAPPLICABLE_CANDIDATE!>BranchedValue<!>(argument, null, argument.<!UNRESOLVED_REFERENCE!>type<!>, <!UNRESOLVED_REFERENCE!>Opcodes<!>.<!UNRESOLVED_REFERENCE!>IFEQ<!>) {
|
||||
override fun putSelector(type: Type, kotlinType: KotlinType?, v: InstructionAdapter) {
|
||||
invokeFunction(v)
|
||||
<!UNRESOLVED_REFERENCE!>coerceTo<!>(type, kotlinType, v)
|
||||
|
||||
Vendored
+34
-12
@@ -1,11 +1,33 @@
|
||||
FILE: CallBasedInExpressionGenerator.kt
|
||||
public final class CallBasedInExpressionGenerator : R|ERROR CLASS: Symbol not found, for `InExpressionGenerator`| {
|
||||
public constructor(codegen: R|ERROR CLASS: Symbol not found, for `ExpressionCodegen`|, operatorReference: R|ERROR CLASS: Symbol not found, for `KtSimpleNameExpression`|): R|org/jetbrains/kotlin/codegen/range/inExpression/CallBasedInExpressionGenerator| {
|
||||
public abstract interface ExpressionCodegen : R|kotlin/Any| {
|
||||
}
|
||||
public abstract interface KtSimpleNameExpression : R|kotlin/Any| {
|
||||
}
|
||||
public abstract interface InExpressionGenerator : R|kotlin/Any| {
|
||||
}
|
||||
public abstract interface StackValue : R|kotlin/Any| {
|
||||
}
|
||||
public open class BranchedValue : R|kotlin/Any| {
|
||||
public constructor(): R|org/jetbrains/kotlin/codegen/range/inExpression/BranchedValue| {
|
||||
super<R|kotlin/Any|>()
|
||||
}
|
||||
|
||||
public final val codegen: R|ERROR CLASS: Symbol not found, for `ExpressionCodegen`| = R|<local>/codegen|
|
||||
public get(): R|ERROR CLASS: Symbol not found, for `ExpressionCodegen`|
|
||||
}
|
||||
public abstract interface Type : R|kotlin/Any| {
|
||||
}
|
||||
public abstract interface KotlinType : R|kotlin/Any| {
|
||||
}
|
||||
public abstract interface Label : R|kotlin/Any| {
|
||||
}
|
||||
public abstract interface InstructionAdapter : R|kotlin/Any| {
|
||||
}
|
||||
public final class CallBasedInExpressionGenerator : R|org/jetbrains/kotlin/codegen/range/inExpression/InExpressionGenerator| {
|
||||
public constructor(codegen: R|org/jetbrains/kotlin/codegen/range/inExpression/ExpressionCodegen|, operatorReference: R|org/jetbrains/kotlin/codegen/range/inExpression/KtSimpleNameExpression|): R|org/jetbrains/kotlin/codegen/range/inExpression/CallBasedInExpressionGenerator| {
|
||||
super<R|kotlin/Any|>()
|
||||
}
|
||||
|
||||
public final val codegen: R|org/jetbrains/kotlin/codegen/range/inExpression/ExpressionCodegen| = R|<local>/codegen|
|
||||
public get(): R|org/jetbrains/kotlin/codegen/range/inExpression/ExpressionCodegen|
|
||||
|
||||
private final val resolvedCall: <ERROR TYPE REF: Unresolved name: getResolvedCallWithAssert> = R|<local>/operatorReference|.<Unresolved name: getResolvedCallWithAssert>#(R|<local>/codegen|.<Unresolved name: bindingContext>#)
|
||||
private get(): <ERROR TYPE REF: Unresolved name: getResolvedCallWithAssert>
|
||||
@@ -13,8 +35,8 @@ FILE: CallBasedInExpressionGenerator.kt
|
||||
private final val isInverted: R|kotlin/Boolean| = ==(R|<local>/operatorReference|.<Unresolved name: getReferencedNameElementType>#(), <Unresolved name: KtTokens>#.<Unresolved name: NOT_IN>#)
|
||||
private get(): R|kotlin/Boolean|
|
||||
|
||||
public final override fun generate(argument: R|ERROR CLASS: Symbol not found, for `StackValue`|): R|ERROR CLASS: Symbol not found, for `BranchedValue`| {
|
||||
^generate this@R|org/jetbrains/kotlin/codegen/range/inExpression/CallBasedInExpressionGenerator|.R|org/jetbrains/kotlin/codegen/range/inExpression/CallBasedInExpressionGenerator.gen|(R|<local>/argument|).<Inapplicable(WRONG_RECEIVER): kotlin/let>#<R|kotlin/Any?|, R|kotlin/Nothing|>(<L> = let@fun <anonymous>(it: R|kotlin/Any?|): <ERROR TYPE REF: Can't resolve when expression> <kind=EXACTLY_ONCE> {
|
||||
public final override fun generate(argument: R|org/jetbrains/kotlin/codegen/range/inExpression/StackValue|): R|org/jetbrains/kotlin/codegen/range/inExpression/BranchedValue| {
|
||||
^generate this@R|org/jetbrains/kotlin/codegen/range/inExpression/CallBasedInExpressionGenerator|.R|org/jetbrains/kotlin/codegen/range/inExpression/CallBasedInExpressionGenerator.gen|(R|<local>/argument|).R|kotlin/let|<R|org/jetbrains/kotlin/codegen/range/inExpression/BranchedValue|, R|org/jetbrains/kotlin/codegen/range/inExpression/BranchedValue|>(<L> = let@fun <anonymous>(it: R|org/jetbrains/kotlin/codegen/range/inExpression/BranchedValue|): R|org/jetbrains/kotlin/codegen/range/inExpression/BranchedValue| <kind=EXACTLY_ONCE> {
|
||||
^ when () {
|
||||
this@R|org/jetbrains/kotlin/codegen/range/inExpression/CallBasedInExpressionGenerator|.R|org/jetbrains/kotlin/codegen/range/inExpression/CallBasedInExpressionGenerator.isInverted| -> {
|
||||
<Unresolved name: Invert>#(R|<local>/it|)
|
||||
@@ -28,18 +50,18 @@ FILE: CallBasedInExpressionGenerator.kt
|
||||
)
|
||||
}
|
||||
|
||||
private final fun gen(argument: R|ERROR CLASS: Symbol not found, for `StackValue`|): R|ERROR CLASS: Symbol not found, for `BranchedValue`| {
|
||||
^gen object : R|ERROR CLASS: Symbol not found, for `BranchedValue`| {
|
||||
private final fun gen(argument: R|org/jetbrains/kotlin/codegen/range/inExpression/StackValue|): R|org/jetbrains/kotlin/codegen/range/inExpression/BranchedValue| {
|
||||
^gen object : R|org/jetbrains/kotlin/codegen/range/inExpression/BranchedValue| {
|
||||
private constructor(): R|<anonymous>| {
|
||||
super<R|ERROR CLASS: Symbol not found, for `BranchedValue`|>(R|<local>/argument|, Null(null), R|<local>/argument|.<Unresolved name: type>#, <Unresolved name: Opcodes>#.<Unresolved name: IFEQ>#)
|
||||
super<R|org/jetbrains/kotlin/codegen/range/inExpression/BranchedValue|>(R|<local>/argument|, Null(null), R|<local>/argument|.<Unresolved name: type>#, <Unresolved name: Opcodes>#.<Unresolved name: IFEQ>#)
|
||||
}
|
||||
|
||||
public final override fun putSelector(type: R|ERROR CLASS: Symbol not found, for `Type`|, kotlinType: R|ERROR CLASS: Symbol not found, for `KotlinType?`|, v: R|ERROR CLASS: Symbol not found, for `InstructionAdapter`|): R|kotlin/Unit| {
|
||||
public final override fun putSelector(type: R|org/jetbrains/kotlin/codegen/range/inExpression/Type|, kotlinType: R|org/jetbrains/kotlin/codegen/range/inExpression/KotlinType?|, v: R|org/jetbrains/kotlin/codegen/range/inExpression/InstructionAdapter|): R|kotlin/Unit| {
|
||||
this@R|/<anonymous>|.R|/<anonymous>.invokeFunction|(R|<local>/v|)
|
||||
<Unresolved name: coerceTo>#(R|<local>/type|, R|<local>/kotlinType|, R|<local>/v|)
|
||||
}
|
||||
|
||||
public final override fun condJump(jumpLabel: R|ERROR CLASS: Symbol not found, for `Label`|, v: R|ERROR CLASS: Symbol not found, for `InstructionAdapter`|, jumpIfFalse: R|kotlin/Boolean|): R|kotlin/Unit| {
|
||||
public final override fun condJump(jumpLabel: R|org/jetbrains/kotlin/codegen/range/inExpression/Label|, v: R|org/jetbrains/kotlin/codegen/range/inExpression/InstructionAdapter|, jumpIfFalse: R|kotlin/Boolean|): R|kotlin/Unit| {
|
||||
this@R|/<anonymous>|.R|/<anonymous>.invokeFunction|(R|<local>/v|)
|
||||
R|<local>/v|.<Unresolved name: visitJumpInsn>#(when () {
|
||||
R|<local>/jumpIfFalse| -> {
|
||||
@@ -52,7 +74,7 @@ FILE: CallBasedInExpressionGenerator.kt
|
||||
, R|<local>/jumpLabel|)
|
||||
}
|
||||
|
||||
private final fun invokeFunction(v: R|ERROR CLASS: Symbol not found, for `InstructionAdapter`|): R|kotlin/Unit| {
|
||||
private final fun invokeFunction(v: R|org/jetbrains/kotlin/codegen/range/inExpression/InstructionAdapter|): R|kotlin/Unit| {
|
||||
lval result: <ERROR TYPE REF: Unresolved name: invokeFunction> = this@R|org/jetbrains/kotlin/codegen/range/inExpression/CallBasedInExpressionGenerator|.R|org/jetbrains/kotlin/codegen/range/inExpression/CallBasedInExpressionGenerator.codegen|.<Unresolved name: invokeFunction>#(this@R|org/jetbrains/kotlin/codegen/range/inExpression/CallBasedInExpressionGenerator|.R|org/jetbrains/kotlin/codegen/range/inExpression/CallBasedInExpressionGenerator.resolvedCall|.<Unresolved name: call>#, this@R|org/jetbrains/kotlin/codegen/range/inExpression/CallBasedInExpressionGenerator|.R|org/jetbrains/kotlin/codegen/range/inExpression/CallBasedInExpressionGenerator.resolvedCall|, <Unresolved name: none>#())
|
||||
R|<local>/result|.<Unresolved name: put>#(R|<local>/result|.<Unresolved name: type>#, R|<local>/result|.<Unresolved name: kotlinType>#, R|<local>/v|)
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
FILE: fakeRecursiveSupertype.kt
|
||||
public final class My : R|ERROR CLASS: Loop in supertype: /My -> /My| {
|
||||
public final class My : <ERROR TYPE REF: Loop in supertype: /My -> /My> {
|
||||
public constructor(): R|My| {
|
||||
super<R|My|>()
|
||||
}
|
||||
@@ -11,7 +11,7 @@ FILE: fakeRecursiveSupertype.kt
|
||||
}
|
||||
|
||||
}
|
||||
public final class His : R|ERROR CLASS: Loop in supertype: /His -> /Your| {
|
||||
public final class His : <ERROR TYPE REF: Loop in supertype: /His -> /Your> {
|
||||
public constructor(): R|His| {
|
||||
super<R|Your|>()
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import incorrect.directory.Your
|
||||
|
||||
typealias My = incorrect.directory.My
|
||||
typealias My = <!OTHER_ERROR!>incorrect.directory.My<!>
|
||||
|
||||
typealias Your = <!OTHER_ERROR!>Your<!>
|
||||
@@ -1,3 +1,3 @@
|
||||
FILE: fakeRecursiveTypealias.kt
|
||||
public final typealias My = R|ERROR CLASS: Symbol not found, for `incorrect.directory.My`|
|
||||
public final typealias Your = R|ERROR CLASS: Loop in supertype: /Your -> /Your|
|
||||
public final typealias My = <ERROR TYPE REF: Symbol not found, for `incorrect.directory.My`>
|
||||
public final typealias Your = <ERROR TYPE REF: Loop in supertype: /Your -> /Your>
|
||||
|
||||
@@ -15,7 +15,7 @@ package other
|
||||
import test.Test.*
|
||||
|
||||
abstract class Factory {
|
||||
abstract fun createTest(): Test
|
||||
abstract fun createTest(): <!OTHER_ERROR!>Test<!>
|
||||
|
||||
abstract fun createObj(): O
|
||||
|
||||
|
||||
+1
-1
@@ -28,7 +28,7 @@ FILE: main.kt
|
||||
super<R|kotlin/Any|>()
|
||||
}
|
||||
|
||||
public abstract fun createTest(): R|ERROR CLASS: Symbol not found, for `Test`|
|
||||
public abstract fun createTest(): <ERROR TYPE REF: Symbol not found, for `Test`>
|
||||
|
||||
public abstract fun createObj(): R|test/Test.O|
|
||||
|
||||
|
||||
@@ -9,9 +9,9 @@ abstract class My<T : Some> {
|
||||
|
||||
abstract fun foo(arg: T)
|
||||
|
||||
abstract val y: My.T
|
||||
abstract val y: <!OTHER_ERROR, OTHER_ERROR!>My.T<!>
|
||||
|
||||
abstract val z: test.My.T
|
||||
abstract val z: <!OTHER_ERROR, OTHER_ERROR!>test.My.T<!>
|
||||
|
||||
class Some : <!UNRESOLVED_REFERENCE!>T<!>()
|
||||
}
|
||||
|
||||
@@ -18,11 +18,11 @@ FILE: typeParameterVsNested.kt
|
||||
|
||||
public abstract fun foo(arg: R|test/My.T<T>|): R|kotlin/Unit|
|
||||
|
||||
public abstract val y: R|test/My.T<ERROR CLASS: Type argument not defined>|
|
||||
public get(): R|test/My.T<ERROR CLASS: Type argument not defined>|
|
||||
public abstract val y: <ERROR TYPE REF: Type argument not defined>
|
||||
public get(): <ERROR TYPE REF: Type argument not defined>
|
||||
|
||||
public abstract val z: R|test/My.T<ERROR CLASS: Type argument not defined>|
|
||||
public get(): R|test/My.T<ERROR CLASS: Type argument not defined>|
|
||||
public abstract val z: <ERROR TYPE REF: Type argument not defined>
|
||||
public get(): <ERROR TYPE REF: Type argument not defined>
|
||||
|
||||
public final class Some : R|test/My.T<T>| {
|
||||
public constructor(): R|test/My.Some| {
|
||||
@@ -32,7 +32,7 @@ FILE: typeParameterVsNested.kt
|
||||
}
|
||||
|
||||
}
|
||||
public abstract class Your<T : R|test/Some|> : R|ERROR CLASS: Type parameter cannot be a super-type: T| {
|
||||
public abstract class Your<T : R|test/Some|> : <ERROR TYPE REF: Type parameter cannot be a super-type: T> {
|
||||
public constructor<T : R|test/Some|>(): R|test/Your<T>| {
|
||||
super<R|kotlin/Any|>()
|
||||
}
|
||||
|
||||
+1
-1
@@ -10,4 +10,4 @@ class A<T1, T2> {
|
||||
|
||||
fun <R1, R2, R3> foo(c: A<R1, R1>.B<R2, R2>.C<R3, R3>) {}
|
||||
|
||||
fun <R3> foo(c: A.B.C<R3, R3>) {}
|
||||
fun <R3> foo(c: <!OTHER_ERROR!>A.B.C<R3, R3><!>) {}
|
||||
+1
-1
@@ -27,5 +27,5 @@ FILE: capturedParametersOfInnerClasses.kt
|
||||
}
|
||||
public final fun <R1, R2, R3> foo(c: R|A.B.C<R3, R3, R2, R2, R1, R1>|): R|kotlin/Unit| {
|
||||
}
|
||||
public final fun <R3> foo(c: R|A.B.C<R3, R3, ERROR CLASS: Type argument not defined, ERROR CLASS: Type argument not defined, ERROR CLASS: Type argument not defined, ERROR CLASS: Type argument not defined>|): R|kotlin/Unit| {
|
||||
public final fun <R3> foo(c: <ERROR TYPE REF: Type argument not defined>): R|kotlin/Unit| {
|
||||
}
|
||||
|
||||
+1
-1
@@ -58,6 +58,6 @@ class Test6 : E, <!EXPOSED_SUPER_CLASS!>C.CPublic<!> {
|
||||
|
||||
}
|
||||
|
||||
class Test7 : D.PublicButProtected {
|
||||
class Test7 : <!OTHER_ERROR!>D.PublicButProtected<!> {
|
||||
|
||||
}
|
||||
+1
-1
@@ -92,7 +92,7 @@ FILE: exposedSupertype.kt
|
||||
}
|
||||
|
||||
}
|
||||
public final class Test7 : R|ERROR CLASS: Symbol not found, for `D.PublicButProtected`| {
|
||||
public final class Test7 : <ERROR TYPE REF: Symbol not found, for `D.PublicButProtected`> {
|
||||
public constructor(): R|Test7| {
|
||||
super<R|kotlin/Any|>()
|
||||
}
|
||||
|
||||
Vendored
+1
-1
@@ -1,6 +1,6 @@
|
||||
// FILE: K1.kt
|
||||
class K2: J1() {
|
||||
class Q : Nested()
|
||||
class Q : <!OTHER_ERROR, OTHER_ERROR, OTHER_ERROR!>Nested<!>()
|
||||
fun bar() {
|
||||
<!UNRESOLVED_REFERENCE!>foo<!>()
|
||||
<!UNRESOLVED_REFERENCE!>baz<!>()
|
||||
|
||||
Vendored
+2
-2
@@ -4,9 +4,9 @@ FILE: K1.kt
|
||||
super<R|J1|>()
|
||||
}
|
||||
|
||||
public final class Q : R|ERROR CLASS: Symbol not found, for `Nested`| {
|
||||
public final class Q : <ERROR TYPE REF: Symbol not found, for `Nested`> {
|
||||
public constructor(): R|K2.Q| {
|
||||
super<R|ERROR CLASS: Symbol not found, for `Nested`|>()
|
||||
super<<ERROR TYPE REF: Symbol not found, for `Nested`>>()
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user