FIR: split default importing scopes into low/high priority ones
This fixes resolve of StringBuilder(), AssertionError(), etc.
This commit is contained in:
@@ -24,9 +24,11 @@ import org.jetbrains.kotlin.utils.addToStdlib.safeAs
|
|||||||
fun MutableList<FirScope>.addImportingScopes(file: FirFile, session: FirSession) {
|
fun MutableList<FirScope>.addImportingScopes(file: FirFile, session: FirSession) {
|
||||||
this += listOf(
|
this += listOf(
|
||||||
// from low priority to high priority
|
// from low priority to high priority
|
||||||
FirDefaultStarImportingScope(session),
|
FirDefaultStarImportingScope(session, priority = DefaultImportPriority.LOW),
|
||||||
|
FirDefaultStarImportingScope(session, priority = DefaultImportPriority.HIGH),
|
||||||
FirExplicitStarImportingScope(file.imports, session),
|
FirExplicitStarImportingScope(file.imports, session),
|
||||||
FirDefaultSimpleImportingScope(session),
|
FirDefaultSimpleImportingScope(session, priority = DefaultImportPriority.LOW),
|
||||||
|
FirDefaultSimpleImportingScope(session, priority = DefaultImportPriority.HIGH),
|
||||||
FirSelfImportingScope(file.packageFqName, session),
|
FirSelfImportingScope(file.packageFqName, session),
|
||||||
// TODO: explicit simple importing scope should have highest priority (higher than inner scopes added in process)
|
// TODO: explicit simple importing scope should have highest priority (higher than inner scopes added in process)
|
||||||
FirExplicitSimpleImportingScope(file.imports, session)
|
FirExplicitSimpleImportingScope(file.imports, session)
|
||||||
|
|||||||
+32
@@ -0,0 +1,32 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||||
|
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package org.jetbrains.kotlin.fir.scopes.impl
|
||||||
|
|
||||||
|
import org.jetbrains.kotlin.config.LanguageVersionSettings
|
||||||
|
import org.jetbrains.kotlin.resolve.ImportPath
|
||||||
|
import org.jetbrains.kotlin.resolve.PlatformDependentAnalyzerServices
|
||||||
|
|
||||||
|
enum class DefaultImportPriority {
|
||||||
|
HIGH {
|
||||||
|
override fun getAllDefaultImports(
|
||||||
|
platformDependentAnalyzerServices: PlatformDependentAnalyzerServices?,
|
||||||
|
languageVersionSettings: LanguageVersionSettings
|
||||||
|
): List<ImportPath>? =
|
||||||
|
platformDependentAnalyzerServices?.getDefaultImports(languageVersionSettings, includeLowPriorityImports = false)
|
||||||
|
},
|
||||||
|
LOW {
|
||||||
|
override fun getAllDefaultImports(
|
||||||
|
platformDependentAnalyzerServices: PlatformDependentAnalyzerServices?,
|
||||||
|
languageVersionSettings: LanguageVersionSettings
|
||||||
|
): List<ImportPath>? =
|
||||||
|
platformDependentAnalyzerServices?.defaultLowPriorityImports
|
||||||
|
};
|
||||||
|
|
||||||
|
abstract fun getAllDefaultImports(
|
||||||
|
platformDependentAnalyzerServices: PlatformDependentAnalyzerServices?,
|
||||||
|
languageVersionSettings: LanguageVersionSettings
|
||||||
|
): List<ImportPath>?
|
||||||
|
}
|
||||||
+4
-2
@@ -11,14 +11,16 @@ import org.jetbrains.kotlin.fir.declarations.impl.FirImportImpl
|
|||||||
import org.jetbrains.kotlin.fir.declarations.impl.FirResolvedImportImpl
|
import org.jetbrains.kotlin.fir.declarations.impl.FirResolvedImportImpl
|
||||||
import org.jetbrains.kotlin.fir.resolve.transformers.FirImportResolveTransformer
|
import org.jetbrains.kotlin.fir.resolve.transformers.FirImportResolveTransformer
|
||||||
|
|
||||||
class FirDefaultSimpleImportingScope(session: FirSession) : FirAbstractSimpleImportingScope(session) {
|
class FirDefaultSimpleImportingScope(session: FirSession, priority: DefaultImportPriority) : FirAbstractSimpleImportingScope(session) {
|
||||||
|
|
||||||
private fun FirImportImpl.resolve(importResolveTransformer: FirImportResolveTransformer) =
|
private fun FirImportImpl.resolve(importResolveTransformer: FirImportResolveTransformer) =
|
||||||
importResolveTransformer.transformImport(this, null).single as FirResolvedImportImpl
|
importResolveTransformer.transformImport(this, null).single as FirResolvedImportImpl
|
||||||
|
|
||||||
override val simpleImports = run {
|
override val simpleImports = run {
|
||||||
val importResolveTransformer = FirImportResolveTransformer(session)
|
val importResolveTransformer = FirImportResolveTransformer(session)
|
||||||
session.moduleInfo?.analyzerServices?.getDefaultImports(LanguageVersionSettingsImpl.DEFAULT, true)
|
val analyzerServices = session.moduleInfo?.analyzerServices
|
||||||
|
val allDefaultImports = priority.getAllDefaultImports(analyzerServices, LanguageVersionSettingsImpl.DEFAULT)
|
||||||
|
allDefaultImports
|
||||||
?.filter { !it.isAllUnder }
|
?.filter { !it.isAllUnder }
|
||||||
?.map {
|
?.map {
|
||||||
FirImportImpl(null, it.fqName, isAllUnder = false, aliasName = null)
|
FirImportImpl(null, it.fqName, isAllUnder = false, aliasName = null)
|
||||||
|
|||||||
+14
-10
@@ -10,17 +10,21 @@ import org.jetbrains.kotlin.fir.FirSession
|
|||||||
import org.jetbrains.kotlin.fir.declarations.impl.FirImportImpl
|
import org.jetbrains.kotlin.fir.declarations.impl.FirImportImpl
|
||||||
import org.jetbrains.kotlin.fir.declarations.impl.FirResolvedImportImpl
|
import org.jetbrains.kotlin.fir.declarations.impl.FirResolvedImportImpl
|
||||||
|
|
||||||
class FirDefaultStarImportingScope(session: FirSession, lookupInFir: Boolean = false) :
|
class FirDefaultStarImportingScope(session: FirSession, priority: DefaultImportPriority, lookupInFir: Boolean = false) :
|
||||||
FirAbstractStarImportingScope(session, lookupInFir) {
|
FirAbstractStarImportingScope(session, lookupInFir) {
|
||||||
|
|
||||||
// TODO: put languageVersionSettings into FirSession?
|
// TODO: put languageVersionSettings into FirSession?
|
||||||
override val starImports = session.moduleInfo?.analyzerServices?.getDefaultImports(LanguageVersionSettingsImpl.DEFAULT, true)
|
override val starImports = run {
|
||||||
?.filter { it.isAllUnder }
|
val analyzerServices = session.moduleInfo?.analyzerServices
|
||||||
?.map {
|
val allDefaultImports = priority.getAllDefaultImports(analyzerServices, LanguageVersionSettingsImpl.DEFAULT)
|
||||||
FirResolvedImportImpl(
|
allDefaultImports
|
||||||
FirImportImpl(null, it.fqName, isAllUnder = true, aliasName = null),
|
?.filter { it.isAllUnder }
|
||||||
it.fqName,
|
?.map {
|
||||||
null
|
FirResolvedImportImpl(
|
||||||
)
|
FirImportImpl(null, it.fqName, isAllUnder = true, aliasName = null),
|
||||||
} ?: emptyList()
|
it.fqName,
|
||||||
|
null
|
||||||
|
)
|
||||||
|
} ?: emptyList()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -16,7 +16,7 @@ FILE: initBlock.kt
|
|||||||
|
|
||||||
init {
|
init {
|
||||||
lval x: R|kotlin/Int| = Int(1)
|
lval x: R|kotlin/Int| = Int(1)
|
||||||
throw <Ambiguity: Exception, [java/lang/Exception.Exception, java/lang/Exception.Exception]>#()
|
throw R|java/lang/Exception.Exception|()
|
||||||
lval y: R|kotlin/Int| = Int(2)
|
lval y: R|kotlin/Int| = Int(2)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -91,8 +91,8 @@ digraph propertiesAndInitBlocks_kt {
|
|||||||
27 [label="Const: Int(1)"];
|
27 [label="Const: Int(1)"];
|
||||||
28 [label="Function call: Int(1).R|kotlin/Int.plus|(Int(1))"];
|
28 [label="Function call: Int(1).R|kotlin/Int.plus|(Int(1))"];
|
||||||
29 [label="Variable declaration: lval c: R|kotlin/Int|"];
|
29 [label="Variable declaration: lval c: R|kotlin/Int|"];
|
||||||
30 [label="Function call: <Ambiguity: Exception, [java/lang/Exception.Exception, java/lang/Exception.Exception]>#()"];
|
30 [label="Function call: R|java/lang/Exception.Exception|()"];
|
||||||
31 [label="Throw: throw <Ambiguity: Exception, [java/lang/Exception.Exception, java/lang/Exception.Exception]>#()"];
|
31 [label="Throw: throw R|java/lang/Exception.Exception|()"];
|
||||||
32 [label="Stub" style="filled" fillcolor=gray];
|
32 [label="Stub" style="filled" fillcolor=gray];
|
||||||
33 [label="Exit block" style="filled" fillcolor=gray];
|
33 [label="Exit block" style="filled" fillcolor=gray];
|
||||||
}
|
}
|
||||||
@@ -125,8 +125,8 @@ digraph propertiesAndInitBlocks_kt {
|
|||||||
subgraph cluster_12 {
|
subgraph cluster_12 {
|
||||||
color=blue
|
color=blue
|
||||||
38 [label="Enter block"];
|
38 [label="Enter block"];
|
||||||
39 [label="Function call: <Ambiguity: Exception, [java/lang/Exception.Exception, java/lang/Exception.Exception]>#()"];
|
39 [label="Function call: R|java/lang/Exception.Exception|()"];
|
||||||
40 [label="Throw: throw <Ambiguity: Exception, [java/lang/Exception.Exception, java/lang/Exception.Exception]>#()"];
|
40 [label="Throw: throw R|java/lang/Exception.Exception|()"];
|
||||||
41 [label="Stub" style="filled" fillcolor=gray];
|
41 [label="Stub" style="filled" fillcolor=gray];
|
||||||
42 [label="Exit block" style="filled" fillcolor=gray];
|
42 [label="Exit block" style="filled" fillcolor=gray];
|
||||||
}
|
}
|
||||||
@@ -168,8 +168,8 @@ digraph propertiesAndInitBlocks_kt {
|
|||||||
subgraph cluster_17 {
|
subgraph cluster_17 {
|
||||||
color=blue
|
color=blue
|
||||||
51 [label="Enter block"];
|
51 [label="Enter block"];
|
||||||
52 [label="Function call: <Ambiguity: Exception, [java/lang/Exception.Exception, java/lang/Exception.Exception]>#()"];
|
52 [label="Function call: R|java/lang/Exception.Exception|()"];
|
||||||
53 [label="Throw: throw <Ambiguity: Exception, [java/lang/Exception.Exception, java/lang/Exception.Exception]>#()"];
|
53 [label="Throw: throw R|java/lang/Exception.Exception|()"];
|
||||||
54 [label="Stub" style="filled" fillcolor=gray];
|
54 [label="Stub" style="filled" fillcolor=gray];
|
||||||
55 [label="Const: Int(1)" style="filled" fillcolor=gray];
|
55 [label="Const: Int(1)" style="filled" fillcolor=gray];
|
||||||
56 [label="Exit block" style="filled" fillcolor=gray];
|
56 [label="Exit block" style="filled" fillcolor=gray];
|
||||||
@@ -185,8 +185,8 @@ digraph propertiesAndInitBlocks_kt {
|
|||||||
subgraph cluster_20 {
|
subgraph cluster_20 {
|
||||||
color=blue
|
color=blue
|
||||||
60 [label="Enter block"];
|
60 [label="Enter block"];
|
||||||
61 [label="Function call: <Ambiguity: Exception, [java/lang/Exception.Exception, java/lang/Exception.Exception]>#()"];
|
61 [label="Function call: R|java/lang/Exception.Exception|()"];
|
||||||
62 [label="Throw: throw <Ambiguity: Exception, [java/lang/Exception.Exception, java/lang/Exception.Exception]>#()"];
|
62 [label="Throw: throw R|java/lang/Exception.Exception|()"];
|
||||||
63 [label="Stub" style="filled" fillcolor=gray];
|
63 [label="Stub" style="filled" fillcolor=gray];
|
||||||
64 [label="Exit block" style="filled" fillcolor=gray];
|
64 [label="Exit block" style="filled" fillcolor=gray];
|
||||||
}
|
}
|
||||||
@@ -195,7 +195,7 @@ digraph propertiesAndInitBlocks_kt {
|
|||||||
66 [label="Function call: R|/run|(<L> = run@fun <anonymous>(): R|kotlin/Unit| <kind=EXACTLY_ONCE> {
|
66 [label="Function call: R|/run|(<L> = run@fun <anonymous>(): R|kotlin/Unit| <kind=EXACTLY_ONCE> {
|
||||||
local final fun foo(): R|kotlin/Unit| {
|
local final fun foo(): R|kotlin/Unit| {
|
||||||
lval c: R|kotlin/Int| = Int(1).R|kotlin/Int.plus|(Int(1))
|
lval c: R|kotlin/Int| = Int(1).R|kotlin/Int.plus|(Int(1))
|
||||||
throw <Ambiguity: Exception, [java/lang/Exception.Exception, java/lang/Exception.Exception]>#()
|
throw R|java/lang/Exception.Exception|()
|
||||||
}
|
}
|
||||||
|
|
||||||
local final class LocalClass : R|kotlin/Any| {
|
local final class LocalClass : R|kotlin/Any| {
|
||||||
@@ -204,13 +204,13 @@ digraph propertiesAndInitBlocks_kt {
|
|||||||
}
|
}
|
||||||
|
|
||||||
init {
|
init {
|
||||||
throw <Ambiguity: Exception, [java/lang/Exception.Exception, java/lang/Exception.Exception]>#()
|
throw R|java/lang/Exception.Exception|()
|
||||||
Int(1)
|
Int(1)
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
throw <Ambiguity: Exception, [java/lang/Exception.Exception, java/lang/Exception.Exception]>#()
|
throw R|java/lang/Exception.Exception|()
|
||||||
}
|
}
|
||||||
)" style="filled" fillcolor=gray];
|
)" style="filled" fillcolor=gray];
|
||||||
67 [label="Exit property" style="filled" fillcolor=red];
|
67 [label="Exit property" style="filled" fillcolor=red];
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ FILE: propertiesAndInitBlocks.kt
|
|||||||
public final val x3: R|kotlin/Unit| = R|/run|(<L> = run@fun <anonymous>(): R|kotlin/Unit| <kind=EXACTLY_ONCE> {
|
public final val x3: R|kotlin/Unit| = R|/run|(<L> = run@fun <anonymous>(): R|kotlin/Unit| <kind=EXACTLY_ONCE> {
|
||||||
local final fun foo(): R|kotlin/Unit| {
|
local final fun foo(): R|kotlin/Unit| {
|
||||||
lval c: R|kotlin/Int| = Int(1).R|kotlin/Int.plus|(Int(1))
|
lval c: R|kotlin/Int| = Int(1).R|kotlin/Int.plus|(Int(1))
|
||||||
throw <Ambiguity: Exception, [java/lang/Exception.Exception, java/lang/Exception.Exception]>#()
|
throw R|java/lang/Exception.Exception|()
|
||||||
}
|
}
|
||||||
|
|
||||||
local final class LocalClass : R|kotlin/Any| {
|
local final class LocalClass : R|kotlin/Any| {
|
||||||
@@ -23,13 +23,13 @@ FILE: propertiesAndInitBlocks.kt
|
|||||||
}
|
}
|
||||||
|
|
||||||
init {
|
init {
|
||||||
throw <Ambiguity: Exception, [java/lang/Exception.Exception, java/lang/Exception.Exception]>#()
|
throw R|java/lang/Exception.Exception|()
|
||||||
Int(1)
|
Int(1)
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
throw <Ambiguity: Exception, [java/lang/Exception.Exception, java/lang/Exception.Exception]>#()
|
throw R|java/lang/Exception.Exception|()
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
public get(): R|kotlin/Unit| {
|
public get(): R|kotlin/Unit| {
|
||||||
@@ -39,7 +39,7 @@ FILE: propertiesAndInitBlocks.kt
|
|||||||
}
|
}
|
||||||
|
|
||||||
init {
|
init {
|
||||||
throw <Ambiguity: Exception, [java/lang/Exception.Exception, java/lang/Exception.Exception]>#()
|
throw R|java/lang/Exception.Exception|()
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ FILE: exception.kt
|
|||||||
public final fun main(args: R|kotlin/Array<kotlin/String>|): R|kotlin/Unit| {
|
public final fun main(args: R|kotlin/Array<kotlin/String>|): R|kotlin/Unit| {
|
||||||
when () {
|
when () {
|
||||||
==(R|/box|(), String(OK)) -> {
|
==(R|/box|(), String(OK)) -> {
|
||||||
throw <Ambiguity: Exception, [java/lang/Exception.Exception, java/lang/Exception.Exception]>#(String(Hello))
|
throw R|java/lang/Exception.Exception|(String(Hello))
|
||||||
}
|
}
|
||||||
else -> {
|
else -> {
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
FILE: problems.kt
|
FILE: problems.kt
|
||||||
public final val sb: <ERROR TYPE REF: Ambiguity: StringBuilder, [java/lang/StringBuilder.StringBuilder, java/lang/StringBuilder.StringBuilder]> = <Ambiguity: StringBuilder, [java/lang/StringBuilder.StringBuilder, java/lang/StringBuilder.StringBuilder]>#()
|
public final val sb: R|java/lang/StringBuilder| = R|java/lang/StringBuilder.StringBuilder|()
|
||||||
public get(): <ERROR TYPE REF: Ambiguity: StringBuilder, [java/lang/StringBuilder.StringBuilder, java/lang/StringBuilder.StringBuilder]>
|
public get(): R|java/lang/StringBuilder|
|
||||||
public final val o: R|kotlin/Any| = object : R|kotlin/Any| {
|
public final val o: R|kotlin/Any| = object : R|kotlin/Any| {
|
||||||
private constructor(): R|kotlin/Any| {
|
private constructor(): R|kotlin/Any| {
|
||||||
super<R|kotlin/Any|>()
|
super<R|kotlin/Any|>()
|
||||||
@@ -55,7 +55,7 @@ FILE: problems.kt
|
|||||||
}
|
}
|
||||||
public final val xx: <ERROR TYPE REF: Inapplicable(WRONG_RECEIVER): [kotlin/plus, kotlin/plus, kotlin/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/sequences/plus, kotlin/sequences/plus, kotlin/sequences/plus, kotlin/sequences/plus, kotlin/text/plus]> = R|/Derived.Derived|().R|/Base.x|.<Inapplicable(WRONG_RECEIVER): [kotlin/plus, kotlin/plus, kotlin/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/sequences/plus, kotlin/sequences/plus, kotlin/sequences/plus, kotlin/sequences/plus, kotlin/text/plus]>#(Int(1))
|
public final val xx: <ERROR TYPE REF: Inapplicable(WRONG_RECEIVER): [kotlin/plus, kotlin/plus, kotlin/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/sequences/plus, kotlin/sequences/plus, kotlin/sequences/plus, kotlin/sequences/plus, kotlin/text/plus]> = R|/Derived.Derived|().R|/Base.x|.<Inapplicable(WRONG_RECEIVER): [kotlin/plus, kotlin/plus, kotlin/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/sequences/plus, kotlin/sequences/plus, kotlin/sequences/plus, kotlin/sequences/plus, kotlin/text/plus]>#(Int(1))
|
||||||
public get(): <ERROR TYPE REF: Inapplicable(WRONG_RECEIVER): [kotlin/plus, kotlin/plus, kotlin/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/sequences/plus, kotlin/sequences/plus, kotlin/sequences/plus, kotlin/sequences/plus, kotlin/text/plus]>
|
public get(): <ERROR TYPE REF: Inapplicable(WRONG_RECEIVER): [kotlin/plus, kotlin/plus, kotlin/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/sequences/plus, kotlin/sequences/plus, kotlin/sequences/plus, kotlin/sequences/plus, kotlin/text/plus]>
|
||||||
public final val t: R|kotlin/Nothing| = throw <Ambiguity: AssertionError, [java/lang/AssertionError.AssertionError, java/lang/AssertionError.AssertionError]>#(String())
|
public final val t: R|kotlin/Nothing| = throw R|java/lang/AssertionError.AssertionError|(String())
|
||||||
public get(): R|kotlin/Nothing|
|
public get(): R|kotlin/Nothing|
|
||||||
public abstract interface A : R|kotlin/Any| {
|
public abstract interface A : R|kotlin/Any| {
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -4,7 +4,7 @@ FILE fqName:<root> fileName:/kt30796.kt
|
|||||||
BLOCK_BODY
|
BLOCK_BODY
|
||||||
RETURN type=kotlin.Nothing from='public final fun magic <T> (): T of <root>.magic declared in <root>'
|
RETURN type=kotlin.Nothing from='public final fun magic <T> (): T of <root>.magic declared in <root>'
|
||||||
THROW type=kotlin.Nothing
|
THROW type=kotlin.Nothing
|
||||||
ERROR_CALL 'Unresolved reference: <Ambiguity: Exception, [java/lang/Exception.Exception, java/lang/Exception.Exception]>#' type=IrErrorType
|
CONSTRUCTOR_CALL 'public constructor <init> () declared in java.lang.Exception' type=java.lang.Exception origin=null
|
||||||
FUN name:test visibility:public modality:FINAL <T> (value:T of <root>.test, value2:T of <root>.test) returnType:kotlin.Unit
|
FUN name:test visibility:public modality:FINAL <T> (value:T of <root>.test, value2:T of <root>.test) returnType:kotlin.Unit
|
||||||
TYPE_PARAMETER name:T index:0 variance: superTypes:[]
|
TYPE_PARAMETER name:T index:0 variance: superTypes:[]
|
||||||
VALUE_PARAMETER name:value index:0 type:T of <root>.test
|
VALUE_PARAMETER name:value index:0 type:T of <root>.test
|
||||||
|
|||||||
Reference in New Issue
Block a user