[FIR] Put rendering of cone types in one place and change render for error types

This commit is contained in:
Dmitriy Novozhilov
2020-01-27 13:31:27 +03:00
parent a882cd98ea
commit 4303cd2fc7
21 changed files with 58 additions and 57 deletions
@@ -66,7 +66,7 @@ sealed class ConeKotlinType : ConeKotlinTypeProjection(),
abstract val nullability: ConeNullability abstract val nullability: ConeNullability
override fun toString(): String { final override fun toString(): String {
return render() return render()
} }
} }
@@ -90,10 +90,6 @@ class ConeClassErrorType(val reason: String) : ConeClassLikeType() {
override val nullability: ConeNullability override val nullability: ConeNullability
get() = ConeNullability.UNKNOWN get() = ConeNullability.UNKNOWN
override fun toString(): String {
return "<ERROR CLASS: $reason>"
}
} }
abstract class ConeLookupTagBasedType : ConeSimpleKotlinType() { abstract class ConeLookupTagBasedType : ConeSimpleKotlinType() {
@@ -221,6 +217,10 @@ class ConeStubType(val variable: ConeTypeVariable, override val nullability: Con
open class ConeTypeVariable(name: String) : TypeVariableMarker { open class ConeTypeVariable(name: String) : TypeVariableMarker {
val typeConstructor = ConeTypeVariableTypeConstructor(name) val typeConstructor = ConeTypeVariableTypeConstructor(name)
val defaultType = ConeTypeVariableType(ConeNullability.NOT_NULL, typeConstructor) val defaultType = ConeTypeVariableType(ConeNullability.NOT_NULL, typeConstructor)
override fun toString(): String {
return defaultType.toString()
}
} }
class ConeTypeVariableTypeConstructor(val debugName: String) : ConeClassifierLookupTag(), TypeVariableTypeConstructorMarker { class ConeTypeVariableTypeConstructor(val debugName: String) : ConeClassifierLookupTag(), TypeVariableTypeConstructorMarker {
@@ -13,8 +13,8 @@ fun ConeKotlinType.render(): String {
val nullabilitySuffix = if (this !is ConeKotlinErrorType && this !is ConeClassErrorType) nullability.suffix else "" val nullabilitySuffix = if (this !is ConeKotlinErrorType && this !is ConeClassErrorType) nullability.suffix else ""
return when (this) { return when (this) {
is ConeTypeVariableType -> "TypeVariable(${this.lookupTag.name})" is ConeTypeVariableType -> "TypeVariable(${this.lookupTag.name})"
is ConeDefinitelyNotNullType -> "${original.render()}!" is ConeDefinitelyNotNullType -> "${original.render()}!!"
is ConeClassErrorType -> "class error: $reason" is ConeClassErrorType -> "ERROR CLASS: $reason"
is ConeCapturedType -> "captured type: lowerType = ${lowerType?.render()}" is ConeCapturedType -> "captured type: lowerType = ${lowerType?.render()}"
is ConeClassLikeType -> { is ConeClassLikeType -> {
buildString { buildString {
@@ -1,4 +1,4 @@
public final fun builder(c: @R|kotlin/ExtensionFunctionType|() R|class error: createSuspendFunctionType not supported|): R|kotlin/Unit| public final fun builder(c: @R|kotlin/ExtensionFunctionType|() R|ERROR CLASS: createSuspendFunctionType not supported|): R|kotlin/Unit|
public final class Controller : R|kotlin/Any| { public final class Controller : R|kotlin/Any| {
public final suspend fun suspendFun(): R|kotlin/Unit| public final suspend fun suspendFun(): R|kotlin/Unit|
@@ -1,7 +1,8 @@
public final fun test1(): R|class error: createSuspendFunctionType not supported| public final fun test1(): R|ERROR CLASS: createSuspendFunctionType not supported|
public final fun test2(): @R|kotlin/ExtensionFunctionType|() R|class error: createSuspendFunctionType not supported| public final fun test2(): @R|kotlin/ExtensionFunctionType|() R|ERROR CLASS: createSuspendFunctionType not supported|
public final fun test3(): R|kotlin/collections/List<class error: createSuspendFunctionType not supported>| public final fun test3(): R|kotlin/collections/List<ERROR CLASS: createSuspendFunctionType not supported>|
public final fun test4(): R|ERROR CLASS: createSuspendFunctionType not supported|
public final fun test4(): R|class error: createSuspendFunctionType not supported|
+2 -2
View File
@@ -18,8 +18,8 @@ FILE: cast.kt
} }
public get(): R|(kotlin/String) -> kotlin/Boolean| public get(): R|(kotlin/String) -> kotlin/Boolean|
public final val hError: R|(class error: No type for parameter) -> kotlin/Boolean| = fun <anonymous>(_: R|class error: No type for parameter|): R|kotlin/Boolean| { public final val hError: R|(ERROR CLASS: No type for parameter) -> kotlin/Boolean| = fun <anonymous>(_: R|ERROR CLASS: No type for parameter|): R|kotlin/Boolean| {
Boolean(true) Boolean(true)
} }
public get(): R|(class error: No type for parameter) -> kotlin/Boolean| public get(): R|(ERROR CLASS: No type for parameter) -> kotlin/Boolean|
+2 -2
View File
@@ -28,7 +28,7 @@ digraph complex_kt {
14 [label="Access variable R|<local>/url|"]; 14 [label="Access variable R|<local>/url|"];
15 [label="Access variable R|<local>/url|"]; 15 [label="Access variable R|<local>/url|"];
16 [label="Function call: <Unresolved name: HttpRequests>#.<Unresolved name: request>#(R|<local>/url|)"]; 16 [label="Function call: <Unresolved name: HttpRequests>#.<Unresolved name: request>#(R|<local>/url|)"];
17 [label="Function call: <Unresolved name: HttpRequests>#.<Unresolved name: request>#(R|<local>/url|).<Unresolved name: connect>#(<L> = connect@fun <anonymous>(): R|class error: Unresolved name: fromJson| { 17 [label="Function call: <Unresolved name: HttpRequests>#.<Unresolved name: request>#(R|<local>/url|).<Unresolved name: connect>#(<L> = connect@fun <anonymous>(): R|ERROR CLASS: Unresolved name: fromJson| {
<Unresolved name: GsonBuilder>#().<Unresolved name: create>#().<Unresolved name: fromJson>#(<Unresolved name: it>#.<Unresolved name: inputStream>#.<Ambiguity: reader, [kotlin/io/reader, kotlin/io/reader, kotlin/io/reader]>#(), <getClass>(Q|kotlin/Array|).R|kotlin/jvm/java|) <Unresolved name: GsonBuilder>#().<Unresolved name: create>#().<Unresolved name: fromJson>#(<Unresolved name: it>#.<Unresolved name: inputStream>#.<Ambiguity: reader, [kotlin/io/reader, kotlin/io/reader, kotlin/io/reader]>#(), <getClass>(Q|kotlin/Array|).R|kotlin/jvm/java|)
} }
)"]; )"];
@@ -71,7 +71,7 @@ digraph complex_kt {
} }
41 [label="Try expression exit"]; 41 [label="Try expression exit"];
} }
42 [label="Variable declaration: lval pluginDTOs: R|kotlin/Array<class error: Symbol not found, for `PluginDTO`>|"]; 42 [label="Variable declaration: lval pluginDTOs: R|kotlin/Array<ERROR CLASS: Symbol not found, for `PluginDTO`>|"];
43 [label="Exit function fetchPluginReleaseDate" style="filled" fillcolor=red]; 43 [label="Exit function fetchPluginReleaseDate" style="filled" fillcolor=red];
} }
subgraph cluster_8 { subgraph cluster_8 {
+5 -5
View File
@@ -1,16 +1,16 @@
FILE: complex.kt FILE: complex.kt
@R|kotlin/jvm/Throws|(<getClass>(<Unresolved name: IOException>#), <getClass>(<Unresolved name: ResponseParseException>#)) public final fun fetchPluginReleaseDate(pluginId: R|class error: Symbol not found, for `PluginId`|, version: R|kotlin/String|, channel: R|kotlin/String?|): R|class error: Symbol not found, for `LocalDate?`| { @R|kotlin/jvm/Throws|(<getClass>(<Unresolved name: IOException>#), <getClass>(<Unresolved name: ResponseParseException>#)) public final fun fetchPluginReleaseDate(pluginId: R|ERROR CLASS: Symbol not found, for `PluginId`|, version: R|kotlin/String|, channel: R|kotlin/String?|): R|ERROR CLASS: Symbol not found, for `LocalDate?`| {
lval url: R|kotlin/String| = <strcat>(String(https://plugins.jetbrains.com/api/plugins/), R|<local>/pluginId|.<Unresolved name: idString>#.R|kotlin/toString|(), String(/updates?version=), R|<local>/version|.R|kotlin/Any.toString|()) lval url: R|kotlin/String| = <strcat>(String(https://plugins.jetbrains.com/api/plugins/), R|<local>/pluginId|.<Unresolved name: idString>#.R|kotlin/toString|(), String(/updates?version=), R|<local>/version|.R|kotlin/Any.toString|())
lval pluginDTOs: R|kotlin/Array<class error: Symbol not found, for `PluginDTO`>| = try { lval pluginDTOs: R|kotlin/Array<ERROR CLASS: Symbol not found, for `PluginDTO`>| = try {
<Unresolved name: HttpRequests>#.<Unresolved name: request>#(R|<local>/url|).<Unresolved name: connect>#(<L> = connect@fun <anonymous>(): R|class error: Unresolved name: fromJson| { <Unresolved name: HttpRequests>#.<Unresolved name: request>#(R|<local>/url|).<Unresolved name: connect>#(<L> = connect@fun <anonymous>(): R|ERROR CLASS: Unresolved name: fromJson| {
<Unresolved name: GsonBuilder>#().<Unresolved name: create>#().<Unresolved name: fromJson>#(<Unresolved name: it>#.<Unresolved name: inputStream>#.<Ambiguity: reader, [kotlin/io/reader, kotlin/io/reader, kotlin/io/reader]>#(), <getClass>(Q|kotlin/Array|).R|kotlin/jvm/java|) <Unresolved name: GsonBuilder>#().<Unresolved name: create>#().<Unresolved name: fromJson>#(<Unresolved name: it>#.<Unresolved name: inputStream>#.<Ambiguity: reader, [kotlin/io/reader, kotlin/io/reader, kotlin/io/reader]>#(), <getClass>(Q|kotlin/Array|).R|kotlin/jvm/java|)
} }
) )
} }
catch (ioException: R|class error: Symbol not found, for `JsonIOException`|) { catch (ioException: R|ERROR CLASS: Symbol not found, for `JsonIOException`|) {
throw <Unresolved name: IOException>#(R|<local>/ioException|) throw <Unresolved name: IOException>#(R|<local>/ioException|)
} }
catch (syntaxException: R|class error: Symbol not found, for `JsonSyntaxException`|) { catch (syntaxException: R|ERROR CLASS: Symbol not found, for `JsonSyntaxException`|) {
throw <Unresolved name: ResponseParseException>#(String(Can't parse json response), R|<local>/syntaxException|) throw <Unresolved name: ResponseParseException>#(String(Can't parse json response), R|<local>/syntaxException|)
} }
@@ -7,7 +7,7 @@ FILE: initBlockAndInPlaceLambda.kt
} }
public final class C : R|kotlin/Any| { public final class C : R|kotlin/Any| {
public constructor(a: R|A|, b: R|class error: Symbol not found, for `b`|): R|C| { public constructor(a: R|A|, b: R|ERROR CLASS: Symbol not found, for `b`|): R|C| {
super<R|kotlin/Any|>() super<R|kotlin/Any|>()
} }
@@ -1,11 +1,11 @@
FILE: CallBasedInExpressionGenerator.kt FILE: CallBasedInExpressionGenerator.kt
public final class CallBasedInExpressionGenerator : R|class error: Symbol not found, for `InExpressionGenerator`| { public final class CallBasedInExpressionGenerator : R|ERROR CLASS: Symbol not found, for `InExpressionGenerator`| {
public constructor(codegen: R|class error: Symbol not found, for `ExpressionCodegen`|, operatorReference: R|class error: Symbol not found, for `KtSimpleNameExpression`|): R|org/jetbrains/kotlin/codegen/range/inExpression/CallBasedInExpressionGenerator| { 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| {
super<R|kotlin/Any|>() super<R|kotlin/Any|>()
} }
public final val codegen: R|class error: Symbol not found, for `ExpressionCodegen`| = R|<local>/codegen| public final val codegen: R|ERROR CLASS: Symbol not found, for `ExpressionCodegen`| = R|<local>/codegen|
public get(): R|class error: Symbol not found, for `ExpressionCodegen`| public get(): R|ERROR CLASS: Symbol not found, for `ExpressionCodegen`|
private final val resolvedCall: <ERROR TYPE REF: Unresolved name: getResolvedCallWithAssert> = R|<local>/operatorReference|.<Unresolved name: getResolvedCallWithAssert>#(R|<local>/codegen|.<Unresolved name: bindingContext>#) 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> private get(): <ERROR TYPE REF: Unresolved name: getResolvedCallWithAssert>
@@ -13,8 +13,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 final val isInverted: R|kotlin/Boolean| = ==(R|<local>/operatorReference|.<Unresolved name: getReferencedNameElementType>#(), <Unresolved name: KtTokens>#.<Unresolved name: NOT_IN>#)
private get(): R|kotlin/Boolean| private get(): R|kotlin/Boolean|
public final override fun generate(argument: R|class error: Symbol not found, for `StackValue`|): R|class error: Symbol not found, for `BranchedValue`| { public final override fun generate(argument: R|ERROR CLASS: Symbol not found, for `StackValue`|): R|ERROR CLASS: Symbol not found, for `BranchedValue`| {
^generate R?C|org/jetbrains/kotlin/codegen/range/inExpression/CallBasedInExpressionGenerator.gen|(R|<local>/argument|).<Inapplicable(WRONG_RECEIVER): [kotlin/let]>#(<L> = let@fun <anonymous>(): R|class error: Can't resolve when expression| { ^generate R?C|org/jetbrains/kotlin/codegen/range/inExpression/CallBasedInExpressionGenerator.gen|(R|<local>/argument|).<Inapplicable(WRONG_RECEIVER): [kotlin/let]>#(<L> = let@fun <anonymous>(): R|ERROR CLASS: Can't resolve when expression| {
when () { when () {
this@R|org/jetbrains/kotlin/codegen/range/inExpression/CallBasedInExpressionGenerator|.R|org/jetbrains/kotlin/codegen/range/inExpression/CallBasedInExpressionGenerator.isInverted| -> { this@R|org/jetbrains/kotlin/codegen/range/inExpression/CallBasedInExpressionGenerator|.R|org/jetbrains/kotlin/codegen/range/inExpression/CallBasedInExpressionGenerator.isInverted| -> {
<Unresolved name: Invert>#(<Unresolved name: it>#) <Unresolved name: Invert>#(<Unresolved name: it>#)
@@ -28,18 +28,18 @@ FILE: CallBasedInExpressionGenerator.kt
) )
} }
private final fun gen(argument: R|class error: Symbol not found, for `StackValue`|): R|class error: Symbol not found, for `BranchedValue`| { private final fun gen(argument: R|ERROR CLASS: Symbol not found, for `StackValue`|): R|ERROR CLASS: Symbol not found, for `BranchedValue`| {
^gen object : R|class error: Symbol not found, for `BranchedValue`| { ^gen object : R|ERROR CLASS: Symbol not found, for `BranchedValue`| {
private constructor(): R|class error: Symbol not found, for `BranchedValue`| { private constructor(): R|ERROR CLASS: Symbol not found, for `BranchedValue`| {
super<R|class error: Symbol not found, for `BranchedValue`|>(R|<local>/argument|, Null(null), R|<local>/argument|.<Unresolved name: type>#, <Unresolved name: Opcodes>#.<Unresolved name: IFEQ>#) 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>#)
} }
public final override fun putSelector(type: R|class error: Symbol not found, for `Type`|, kotlinType: R|class error: Symbol not found, for `KotlinType?`|, v: R|class error: Symbol not found, for `InstructionAdapter`|): R|kotlin/Unit| { 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| {
this@R|/anonymous|.R|/anonymous.invokeFunction|(R|<local>/v|) this@R|/anonymous|.R|/anonymous.invokeFunction|(R|<local>/v|)
<Unresolved name: coerceTo>#(R|<local>/type|, R|<local>/kotlinType|, R|<local>/v|) <Unresolved name: coerceTo>#(R|<local>/type|, R|<local>/kotlinType|, R|<local>/v|)
} }
public final override fun condJump(jumpLabel: R|class error: Symbol not found, for `Label`|, v: R|class error: Symbol not found, for `InstructionAdapter`|, jumpIfFalse: R|kotlin/Boolean|): R|kotlin/Unit| { 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| {
this@R|/anonymous|.R|/anonymous.invokeFunction|(R|<local>/v|) this@R|/anonymous|.R|/anonymous.invokeFunction|(R|<local>/v|)
R|<local>/v|.<Unresolved name: visitJumpInsn>#(when () { R|<local>/v|.<Unresolved name: visitJumpInsn>#(when () {
R|<local>/jumpIfFalse| -> { R|<local>/jumpIfFalse| -> {
@@ -52,7 +52,7 @@ FILE: CallBasedInExpressionGenerator.kt
, R|<local>/jumpLabel|) , R|<local>/jumpLabel|)
} }
private final fun invokeFunction(v: R|class error: Symbol not found, for `InstructionAdapter`|): R|kotlin/Unit| { private final fun invokeFunction(v: R|ERROR CLASS: Symbol not found, for `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>#()) 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|) R|<local>/result|.<Unresolved name: put>#(R|<local>/result|.<Unresolved name: type>#, R|<local>/result|.<Unresolved name: kotlinType>#, R|<local>/v|)
} }
@@ -6,17 +6,17 @@ FILE: test.kt
} }
public final fun create(d: R|Diagnostic<DerivedElement>|): R|kotlin/Unit| { public final fun create(d: R|Diagnostic<DerivedElement>|): R|kotlin/Unit| {
lval element: R|DerivedElement!| = R|<local>/d|.R|/Diagnostic.element| lval element: R|DerivedElement!!| = R|<local>/d|.R|/Diagnostic.element|
R|/Fix.Fix|(R|<local>/element|) R|/Fix.Fix|(R|<local>/element|)
} }
public final fun <DE : R|DerivedElement|> createGeneric(d: R|Diagnostic<DE>|): R|kotlin/Unit| { public final fun <DE : R|DerivedElement|> createGeneric(d: R|Diagnostic<DE>|): R|kotlin/Unit| {
lval element: R|DE!| = R|<local>/d|.R|/Diagnostic.element| lval element: R|DE!!| = R|<local>/d|.R|/Diagnostic.element|
R|/Fix.Fix|(R|<local>/element|) R|/Fix.Fix|(R|<local>/element|)
} }
private final val DERIVED_FACTORY: R|DiagnosticFactory0<DerivedElement>| = R|/DiagnosticFactory0.DiagnosticFactory0|<R|DerivedElement|>() private final val DERIVED_FACTORY: R|DiagnosticFactory0<DerivedElement>| = R|/DiagnosticFactory0.DiagnosticFactory0|<R|DerivedElement|>()
private get(): R|DiagnosticFactory0<DerivedElement>| private get(): R|DiagnosticFactory0<DerivedElement>|
public final fun createViaFactory(d: R|EmptyDiagnostic|): R|kotlin/Unit| { public final fun createViaFactory(d: R|EmptyDiagnostic|): R|kotlin/Unit| {
lval casted: R|Diagnostic<DerivedElement>!| = R|/DERIVED_FACTORY|.R|FakeOverride</DiagnosticFactory.cast: R|Diagnostic<DerivedElement>!|>|(R|<local>/d|) lval casted: R|Diagnostic<DerivedElement>!!| = R|/DERIVED_FACTORY|.R|FakeOverride</DiagnosticFactory.cast: R|Diagnostic<DerivedElement>!!|>|(R|<local>/d|)
lval element: R|DerivedElement!| = R|<local>/casted|.R|/Diagnostic.element| lval element: R|DerivedElement!!| = R|<local>/casted|.R|/Diagnostic.element|
R|/Fix.Fix|(R|<local>/element|) R|/Fix.Fix|(R|<local>/element|)
} }
@@ -1,5 +1,5 @@
FILE: fakeRecursiveSupertype.kt FILE: fakeRecursiveSupertype.kt
public final class My : R|class error: Loop in supertype: /My -> /My| { public final class My : R|ERROR CLASS: Loop in supertype: /My -> /My| {
public constructor(): R|My| { public constructor(): R|My| {
super<R|My|>() super<R|My|>()
} }
@@ -11,7 +11,7 @@ FILE: fakeRecursiveSupertype.kt
} }
} }
public final class His : R|class error: Loop in supertype: /His -> /Your| { public final class His : R|ERROR CLASS: Loop in supertype: /His -> /Your| {
public constructor(): R|His| { public constructor(): R|His| {
super<R|Your|>() super<R|Your|>()
} }
@@ -1,3 +1,3 @@
FILE: fakeRecursiveTypealias.kt FILE: fakeRecursiveTypealias.kt
public final typealias My = R|class error: Symbol not found, for `incorrect.directory.My`| public final typealias My = R|ERROR CLASS: Symbol not found, for `incorrect.directory.My`|
public final typealias Your = R|class error: Loop in supertype: /Your -> /Your| public final typealias Your = R|ERROR CLASS: Loop in supertype: /Your -> /Your|
@@ -28,7 +28,7 @@ FILE: main.kt
super<R|kotlin/Any|>() super<R|kotlin/Any|>()
} }
public abstract fun createTest(): R|class error: Symbol not found, for `Test`| public abstract fun createTest(): R|ERROR CLASS: Symbol not found, for `Test`|
public abstract fun createObj(): R|test/Test.O| public abstract fun createObj(): R|test/Test.O|
@@ -1,7 +1,7 @@
FILE: LinkedList.kt FILE: LinkedList.kt
public final class LinkedList<T> : R|class error: Symbol not found, for `java.util.LinkedList<R|T|>`| { public final class LinkedList<T> : R|ERROR CLASS: Symbol not found, for `java.util.LinkedList<R|T|>`| {
public constructor<T>(): R|foo/LinkedList<T>| { public constructor<T>(): R|foo/LinkedList<T>| {
super<R|class error: Symbol not found, for `java.util.LinkedList<R|T|>`|>() super<R|ERROR CLASS: Symbol not found, for `java.util.LinkedList<R|T|>`|>()
} }
} }
@@ -13,9 +13,9 @@ FILE: HashSet.kt
} }
FILE: main.kt FILE: main.kt
public final class LinkedHashMap<K, V> : R|class error: Symbol not found, for `java.util.LinkedHashMap<R|K|, R|V|>`| { public final class LinkedHashMap<K, V> : R|ERROR CLASS: Symbol not found, for `java.util.LinkedHashMap<R|K|, R|V|>`| {
public constructor<K, V>(): R|foo/LinkedHashMap<K, V>| { public constructor<K, V>(): R|foo/LinkedHashMap<K, V>| {
super<R|class error: Symbol not found, for `java.util.LinkedHashMap<R|K|, R|V|>`|>() super<R|ERROR CLASS: Symbol not found, for `java.util.LinkedHashMap<R|K|, R|V|>`|>()
} }
} }
@@ -1,6 +1,6 @@
FILE: main.kt FILE: main.kt
public final fun test(): R|kotlin/Unit| { public final fun test(): R|kotlin/Unit| {
<Inapplicable(INAPPLICABLE): [/Foo.Foo]>#(<L> = Foo@fun <anonymous>(): R|class error: Unresolved name: it| { <Inapplicable(INAPPLICABLE): [/Foo.Foo]>#(<L> = Foo@fun <anonymous>(): R|ERROR CLASS: Unresolved name: it| {
<Unresolved name: it># <Unresolved name: it>#
} }
) )
@@ -38,12 +38,12 @@ FILE: kotlinSam.kt
} }
) )
R|/foo1|(R|<local>/f|) R|/foo1|(R|<local>/f|)
<Inapplicable(INAPPLICABLE): [/foo2]>#(<L> = foo2@fun <anonymous>(x: R|class error: No type for parameter|): R|kotlin/Boolean| { <Inapplicable(INAPPLICABLE): [/foo2]>#(<L> = foo2@fun <anonymous>(x: R|ERROR CLASS: No type for parameter|): R|kotlin/Boolean| {
>(R|<local>/x|, Int(1)) >(R|<local>/x|, Int(1))
} }
) )
<Inapplicable(INAPPLICABLE): [/foo2]>#(R|<local>/f|) <Inapplicable(INAPPLICABLE): [/foo2]>#(R|<local>/f|)
<Inapplicable(INAPPLICABLE): [/foo3]>#(<L> = foo3@fun <anonymous>(x: R|class error: No type for parameter|): R|kotlin/Boolean| { <Inapplicable(INAPPLICABLE): [/foo3]>#(<L> = foo3@fun <anonymous>(x: R|ERROR CLASS: No type for parameter|): R|kotlin/Boolean| {
>(R|<local>/x|, Int(1)) >(R|<local>/x|, Int(1))
} }
) )
@@ -2,7 +2,7 @@ FILE: main.kt
public final fun foo(m: R|MyRunnable|): R|kotlin/Unit| { public final fun foo(m: R|MyRunnable|): R|kotlin/Unit| {
} }
public final fun main(): R|kotlin/Unit| { public final fun main(): R|kotlin/Unit| {
Q|JavaUsage|.<Inapplicable(INAPPLICABLE): [/JavaUsage.foo]>#(<L> = foo@fun <anonymous>(x: R|class error: No type for parameter|): R|kotlin/Boolean| { Q|JavaUsage|.<Inapplicable(INAPPLICABLE): [/JavaUsage.foo]>#(<L> = foo@fun <anonymous>(x: R|ERROR CLASS: No type for parameter|): R|kotlin/Boolean| {
>(R|<local>/x|, Int(1)) >(R|<local>/x|, Int(1))
} }
) )
@@ -4,9 +4,9 @@ FILE: K1.kt
super<R|J1|>() super<R|J1|>()
} }
public final class Q : R|class error: Symbol not found, for `Nested`| { public final class Q : R|ERROR CLASS: Symbol not found, for `Nested`| {
public constructor(): R|K2.Q| { public constructor(): R|K2.Q| {
super<R|class error: Symbol not found, for `Nested`|>() super<R|ERROR CLASS: Symbol not found, for `Nested`|>()
} }
} }
@@ -41,7 +41,7 @@ FILE: delegateTypeMismatch.kt
D|/A.classifierNamePolicy|.<Inapplicable(INAPPLICABLE): [kotlin/properties/ReadWriteProperty.setValue]>#(this@R|/A|, ::R|/A.classifierNamePolicy|, R|<local>/classifierNamePolicy|) D|/A.classifierNamePolicy|.<Inapplicable(INAPPLICABLE): [kotlin/properties/ReadWriteProperty.setValue]>#(this@R|/A|, ::R|/A.classifierNamePolicy|, R|<local>/classifierNamePolicy|)
} }
public final var typeNormalizer: <ERROR TYPE REF: Ambiguity: getValue, [kotlin/getValue, kotlin/collections/getValue, kotlin/collections/getValue, kotlin/collections/getValue]>by <Inapplicable(INAPPLICABLE): [/A.property]>#<R|(KotlinType) -> KotlinType|>(property@fun <anonymous>(): R|class error: Unresolved name: it| { public final var typeNormalizer: <ERROR TYPE REF: Ambiguity: getValue, [kotlin/getValue, kotlin/collections/getValue, kotlin/collections/getValue, kotlin/collections/getValue]>by <Inapplicable(INAPPLICABLE): [/A.property]>#<R|(KotlinType) -> KotlinType|>(property@fun <anonymous>(): R|ERROR CLASS: Unresolved name: it| {
<Unresolved name: it># <Unresolved name: it>#
} }
) )
@@ -1,6 +1,6 @@
FILE: inapplicableRemoveAll.kt FILE: inapplicableRemoveAll.kt
public final fun test(list: R|kotlin/collections/MutableList<kotlin/String>|): R|kotlin/Unit| { public final fun test(list: R|kotlin/collections/MutableList<kotlin/String>|): R|kotlin/Unit| {
R|<local>/list|.<Ambiguity: removeAll, [kotlin/collections/removeAll, kotlin/collections/removeAll, kotlin/collections/removeAll, kotlin/collections/removeAll]>#(<L> = removeAll@fun <anonymous>(): R|class error: Ambiguity: isEmpty, [kotlin/collections/isEmpty, kotlin/collections/isEmpty, kotlin/collections/isEmpty, kotlin/collections/isEmpty, kotlin/collections/isEmpty, kotlin/collections/isEmpty, kotlin/collections/isEmpty, kotlin/collections/isEmpty, kotlin/collections/isEmpty, kotlin/text/isEmpty]| { R|<local>/list|.<Ambiguity: removeAll, [kotlin/collections/removeAll, kotlin/collections/removeAll, kotlin/collections/removeAll, kotlin/collections/removeAll]>#(<L> = removeAll@fun <anonymous>(): R|ERROR CLASS: Ambiguity: isEmpty, [kotlin/collections/isEmpty, kotlin/collections/isEmpty, kotlin/collections/isEmpty, kotlin/collections/isEmpty, kotlin/collections/isEmpty, kotlin/collections/isEmpty, kotlin/collections/isEmpty, kotlin/collections/isEmpty, kotlin/collections/isEmpty, kotlin/text/isEmpty]| {
<Unresolved name: it>#.<Ambiguity: isEmpty, [kotlin/collections/isEmpty, kotlin/collections/isEmpty, kotlin/collections/isEmpty, kotlin/collections/isEmpty, kotlin/collections/isEmpty, kotlin/collections/isEmpty, kotlin/collections/isEmpty, kotlin/collections/isEmpty, kotlin/collections/isEmpty, kotlin/text/isEmpty]>#() <Unresolved name: it>#.<Ambiguity: isEmpty, [kotlin/collections/isEmpty, kotlin/collections/isEmpty, kotlin/collections/isEmpty, kotlin/collections/isEmpty, kotlin/collections/isEmpty, kotlin/collections/isEmpty, kotlin/collections/isEmpty, kotlin/collections/isEmpty, kotlin/collections/isEmpty, kotlin/text/isEmpty]>#()
} }
) )
@@ -32,7 +32,7 @@ FILE: typeParameterVsNested.kt
} }
} }
public abstract class Your<T : R|test/Some|> : R|class error: Type parameter cannot be a super-type: T| { public abstract class Your<T : R|test/Some|> : R|ERROR CLASS: Type parameter cannot be a super-type: T| {
public constructor<T : R|test/Some|>(): R|test/Your<T>| { public constructor<T : R|test/Some|>(): R|test/Your<T>| {
super<R|kotlin/Any|>() super<R|kotlin/Any|>()
} }