[SLC] implement infrastructure for light class hierarchy tests
This commit is contained in:
committed by
Space Team
parent
feff03894f
commit
b2c0a37050
+5
-3
@@ -58,9 +58,11 @@ abstract class AbstractAnalysisApiBasedTest : TestWithDisposable() {
|
||||
|
||||
protected abstract fun doTestByModuleStructure(moduleStructure: TestModuleStructure, testServices: TestServices)
|
||||
|
||||
protected fun AssertionsService.assertEqualsToTestDataFileSibling(actual: String, extension: String = ".txt") {
|
||||
val testPrefix = configurator.testPrefix
|
||||
|
||||
protected fun AssertionsService.assertEqualsToTestDataFileSibling(
|
||||
actual: String,
|
||||
extension: String = ".txt",
|
||||
testPrefix: String? = configurator.testPrefix,
|
||||
) {
|
||||
val expectedFile = getTestDataFileSiblingPath(extension, testPrefix = testPrefix)
|
||||
assertEqualsToFile(expectedFile, actual)
|
||||
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
one.MyAnnotationClass|java.lang.annotation.Annotation|false| -> true
|
||||
one.MyAnnotationClass|java.lang.annotation.Annotation|true| -> true
|
||||
one.MyAnnotationClass|java.lang.Object|false| -> true
|
||||
one.MyAnnotationClass|java.lang.Object|true| -> true
|
||||
one.MyAnnotationClass|java.util.Collection|true| -> false
|
||||
@@ -0,0 +1,3 @@
|
||||
package one
|
||||
|
||||
annotation class MyAnnotationClass
|
||||
@@ -0,0 +1,19 @@
|
||||
KtClass:
|
||||
line: 6
|
||||
name: MyAnnotationClass
|
||||
qualifier: one.MyAnnotationClass
|
||||
light: KtLightClassForDecompiledDeclaration
|
||||
name: MyAnnotationClass
|
||||
qualifier: one.MyAnnotationClass
|
||||
superTypes: [
|
||||
PsiType:Annotation
|
||||
]
|
||||
superClass: ClsClassImpl: Object (java.lang.Object)
|
||||
interfaces: [
|
||||
ClsClassImpl: Annotation (java.lang.annotation.Annotation)
|
||||
]
|
||||
supers: [
|
||||
ClsClassImpl: Object (java.lang.Object)
|
||||
ClsClassImpl: Annotation (java.lang.annotation.Annotation)
|
||||
]
|
||||
|
||||
@@ -0,0 +1,19 @@
|
||||
KtClass:
|
||||
line: 3
|
||||
name: MyAnnotationClass
|
||||
qualifier: one.MyAnnotationClass
|
||||
light: SymbolLightClassForAnnotationClass
|
||||
name: MyAnnotationClass
|
||||
qualifier: one.MyAnnotationClass
|
||||
superTypes: [
|
||||
PsiType:Annotation
|
||||
]
|
||||
superClass: ClsClassImpl: Object (java.lang.Object)
|
||||
interfaces: [
|
||||
ClsClassImpl: Annotation (java.lang.annotation.Annotation)
|
||||
]
|
||||
supers: [
|
||||
ClsClassImpl: Object (java.lang.Object)
|
||||
ClsClassImpl: Annotation (java.lang.annotation.Annotation)
|
||||
]
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
cba.ChildOfOpen|cba.OpenClassFromAbstractClass|false| -> true
|
||||
cba.ChildOfOpen|cba.OpenClassFromAbstractClass|true| -> true
|
||||
cba.ChildOfOpen|java.lang.Object|false| -> false
|
||||
cba.ChildOfOpen|java.lang.Object|true| -> true
|
||||
cba.ChildOfOpen|cba.AbstractClass|false| -> false
|
||||
cba.ChildOfOpen|cba.AbstractClass|true| -> true
|
||||
cba.OpenClassFromAbstractClass|cba.AbstractClass|false| -> true
|
||||
cba.OpenClassFromAbstractClass|cba.AbstractClass|true| -> true
|
||||
cba.OpenClassFromAbstractClass|cba.OpenClassFromAbstractClass|false| -> false
|
||||
cba.OpenClassFromAbstractClass|cba.OpenClassFromAbstractClass|true| -> false
|
||||
cba.OpenClassFromAbstractClass|cba.FinalClass|false| -> false
|
||||
cba.OpenClassFromAbstractClass|cba.FinalClass|true| -> false
|
||||
@@ -0,0 +1,9 @@
|
||||
package cba
|
||||
|
||||
class FinalClass
|
||||
|
||||
abstract class AbstractClass
|
||||
|
||||
open class OpenClassFromAbstractClass : AbstractClass()
|
||||
|
||||
class ChildOfOpen : OpenClassFromAbstractClass()
|
||||
@@ -0,0 +1,68 @@
|
||||
FinalClass.class:
|
||||
KtClass:
|
||||
line: 6
|
||||
name: FinalClass
|
||||
qualifier: cba.FinalClass
|
||||
light: KtLightClassForDecompiledDeclaration
|
||||
name: FinalClass
|
||||
qualifier: cba.FinalClass
|
||||
superTypes: [
|
||||
PsiType:Object
|
||||
]
|
||||
superClass: ClsClassImpl: Object (java.lang.Object)
|
||||
interfaces: []
|
||||
supers: [
|
||||
ClsClassImpl: Object (java.lang.Object)
|
||||
]
|
||||
|
||||
AbstractClass.class:
|
||||
KtClass:
|
||||
line: 6
|
||||
name: AbstractClass
|
||||
qualifier: cba.AbstractClass
|
||||
light: KtLightClassForDecompiledDeclaration
|
||||
name: AbstractClass
|
||||
qualifier: cba.AbstractClass
|
||||
superTypes: [
|
||||
PsiType:Object
|
||||
]
|
||||
superClass: ClsClassImpl: Object (java.lang.Object)
|
||||
interfaces: []
|
||||
supers: [
|
||||
ClsClassImpl: Object (java.lang.Object)
|
||||
]
|
||||
|
||||
ChildOfOpen.class:
|
||||
KtClass:
|
||||
line: 6
|
||||
name: ChildOfOpen
|
||||
qualifier: cba.ChildOfOpen
|
||||
light: KtLightClassForDecompiledDeclaration
|
||||
name: ChildOfOpen
|
||||
qualifier: cba.ChildOfOpen
|
||||
superTypes: [
|
||||
PsiType:OpenClassFromAbstractClass
|
||||
]
|
||||
superClass: KtLightClassForDecompiledDeclaration: OpenClassFromAbstractClass (cba.OpenClassFromAbstractClass)
|
||||
interfaces: []
|
||||
supers: [
|
||||
KtLightClassForDecompiledDeclaration: OpenClassFromAbstractClass (cba.OpenClassFromAbstractClass)
|
||||
]
|
||||
|
||||
OpenClassFromAbstractClass.class:
|
||||
KtClass:
|
||||
line: 6
|
||||
name: OpenClassFromAbstractClass
|
||||
qualifier: cba.OpenClassFromAbstractClass
|
||||
light: KtLightClassForDecompiledDeclaration
|
||||
name: OpenClassFromAbstractClass
|
||||
qualifier: cba.OpenClassFromAbstractClass
|
||||
superTypes: [
|
||||
PsiType:AbstractClass
|
||||
]
|
||||
superClass: KtLightClassForDecompiledDeclaration: AbstractClass (cba.AbstractClass)
|
||||
interfaces: []
|
||||
supers: [
|
||||
KtLightClassForDecompiledDeclaration: AbstractClass (cba.AbstractClass)
|
||||
]
|
||||
|
||||
@@ -0,0 +1,64 @@
|
||||
KtClass:
|
||||
line: 3
|
||||
name: FinalClass
|
||||
qualifier: cba.FinalClass
|
||||
light: SymbolLightClassForClassOrObject
|
||||
name: FinalClass
|
||||
qualifier: cba.FinalClass
|
||||
superTypes: [
|
||||
PsiType:Object
|
||||
]
|
||||
superClass: ClsClassImpl: Object (java.lang.Object)
|
||||
interfaces: []
|
||||
supers: [
|
||||
ClsClassImpl: Object (java.lang.Object)
|
||||
]
|
||||
|
||||
KtClass:
|
||||
line: 5
|
||||
name: AbstractClass
|
||||
qualifier: cba.AbstractClass
|
||||
light: SymbolLightClassForClassOrObject
|
||||
name: AbstractClass
|
||||
qualifier: cba.AbstractClass
|
||||
superTypes: [
|
||||
PsiType:Object
|
||||
]
|
||||
superClass: ClsClassImpl: Object (java.lang.Object)
|
||||
interfaces: []
|
||||
supers: [
|
||||
ClsClassImpl: Object (java.lang.Object)
|
||||
]
|
||||
|
||||
KtClass:
|
||||
line: 7
|
||||
name: OpenClassFromAbstractClass
|
||||
qualifier: cba.OpenClassFromAbstractClass
|
||||
light: SymbolLightClassForClassOrObject
|
||||
name: OpenClassFromAbstractClass
|
||||
qualifier: cba.OpenClassFromAbstractClass
|
||||
superTypes: [
|
||||
PsiType:AbstractClass
|
||||
]
|
||||
superClass: SymbolLightClassForClassOrObject: AbstractClass (cba.AbstractClass)
|
||||
interfaces: []
|
||||
supers: [
|
||||
SymbolLightClassForClassOrObject: AbstractClass (cba.AbstractClass)
|
||||
]
|
||||
|
||||
KtClass:
|
||||
line: 9
|
||||
name: ChildOfOpen
|
||||
qualifier: cba.ChildOfOpen
|
||||
light: SymbolLightClassForClassOrObject
|
||||
name: ChildOfOpen
|
||||
qualifier: cba.ChildOfOpen
|
||||
superTypes: [
|
||||
PsiType:OpenClassFromAbstractClass
|
||||
]
|
||||
superClass: SymbolLightClassForClassOrObject: OpenClassFromAbstractClass (cba.OpenClassFromAbstractClass)
|
||||
interfaces: []
|
||||
supers: [
|
||||
SymbolLightClassForClassOrObject: OpenClassFromAbstractClass (cba.OpenClassFromAbstractClass)
|
||||
]
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
one.two.EnumEntries|java.lang.Object|false| -> false
|
||||
one.two.EnumEntries|java.lang.Object|true| -> true
|
||||
one.two.EnumEntries|java.lang.Enum|false| -> true
|
||||
one.two.EnumEntries|java.lang.Enum|true| -> true
|
||||
one.two.EnumEntries.SecondEntryWithBody|java.lang.Enum|false| -> false
|
||||
one.two.EnumEntries.SecondEntryWithBody|java.lang.Enum|true| -> true
|
||||
one.two.EnumEntries.SecondEntryWithBody|one.two.EnumEntries|false| -> true
|
||||
one.two.EnumEntries.SecondEntryWithBody|one.two.EnumEntries|true| -> true
|
||||
one.two.EnumEntries.SecondEntryWithBody|java.lang.Object|false| -> false
|
||||
one.two.EnumEntries.SecondEntryWithBody|java.lang.Object|true| -> true
|
||||
one.two.EnumEntries.SecondEntryWithBody|one.two.BaseInterface|false| -> false
|
||||
one.two.EnumEntries.SecondEntryWithBody|one.two.BaseInterface|true| -> false
|
||||
one.two.EnumClassWithInterface.NewSecondEntryWithBody|one.two.BaseInterface|false| -> false
|
||||
one.two.EnumClassWithInterface.NewSecondEntryWithBody|one.two.BaseInterface|true| -> true
|
||||
@@ -0,0 +1,21 @@
|
||||
package one.two
|
||||
|
||||
interface BaseInterface
|
||||
|
||||
enum class EnumEntries {
|
||||
FirstEntry,
|
||||
SecondEntryWithBody {
|
||||
fun foo() {
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
enum class EnumClassWithInterface : BaseInterface {
|
||||
NewFirstEntry,
|
||||
NewSecondEntryWithBody {
|
||||
fun foo() {
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,79 @@
|
||||
BaseInterface.class:
|
||||
KtClass:
|
||||
line: 6
|
||||
name: BaseInterface
|
||||
qualifier: one.two.BaseInterface
|
||||
light: KtLightClassForDecompiledDeclaration
|
||||
name: BaseInterface
|
||||
qualifier: one.two.BaseInterface
|
||||
superTypes: [
|
||||
PsiType:Object
|
||||
]
|
||||
superClass: ClsClassImpl: Object (java.lang.Object)
|
||||
interfaces: []
|
||||
supers: [
|
||||
ClsClassImpl: Object (java.lang.Object)
|
||||
]
|
||||
|
||||
EnumClassWithInterface.class:
|
||||
KtEnumEntry:
|
||||
line: 7
|
||||
name: NewFirstEntry
|
||||
qualifier: one.two.EnumClassWithInterface.NewFirstEntry
|
||||
light: null
|
||||
|
||||
KtEnumEntry:
|
||||
line: 9
|
||||
name: NewSecondEntryWithBody
|
||||
qualifier: one.two.EnumClassWithInterface.NewSecondEntryWithBody
|
||||
light: null
|
||||
|
||||
KtClass:
|
||||
line: 6
|
||||
name: EnumClassWithInterface
|
||||
qualifier: one.two.EnumClassWithInterface
|
||||
light: KtLightClassForDecompiledDeclaration
|
||||
name: EnumClassWithInterface
|
||||
qualifier: one.two.EnumClassWithInterface
|
||||
superTypes: [
|
||||
PsiType:Enum<EnumClassWithInterface>
|
||||
PsiType:BaseInterface
|
||||
]
|
||||
superClass: ClsClassImpl: Enum (java.lang.Enum)
|
||||
interfaces: [
|
||||
KtLightClassForDecompiledDeclaration: BaseInterface (one.two.BaseInterface)
|
||||
]
|
||||
supers: [
|
||||
ClsClassImpl: Enum (java.lang.Enum)
|
||||
KtLightClassForDecompiledDeclaration: BaseInterface (one.two.BaseInterface)
|
||||
]
|
||||
|
||||
EnumEntries.class:
|
||||
KtEnumEntry:
|
||||
line: 7
|
||||
name: FirstEntry
|
||||
qualifier: one.two.EnumEntries.FirstEntry
|
||||
light: null
|
||||
|
||||
KtEnumEntry:
|
||||
line: 9
|
||||
name: SecondEntryWithBody
|
||||
qualifier: one.two.EnumEntries.SecondEntryWithBody
|
||||
light: null
|
||||
|
||||
KtClass:
|
||||
line: 6
|
||||
name: EnumEntries
|
||||
qualifier: one.two.EnumEntries
|
||||
light: KtLightClassForDecompiledDeclaration
|
||||
name: EnumEntries
|
||||
qualifier: one.two.EnumEntries
|
||||
superTypes: [
|
||||
PsiType:Enum<EnumEntries>
|
||||
]
|
||||
superClass: ClsClassImpl: Enum (java.lang.Enum)
|
||||
interfaces: []
|
||||
supers: [
|
||||
ClsClassImpl: Enum (java.lang.Enum)
|
||||
]
|
||||
|
||||
@@ -0,0 +1,96 @@
|
||||
KtClass:
|
||||
line: 3
|
||||
name: BaseInterface
|
||||
qualifier: one.two.BaseInterface
|
||||
light: SymbolLightClassForInterface
|
||||
name: BaseInterface
|
||||
qualifier: one.two.BaseInterface
|
||||
superTypes: [
|
||||
PsiType:Object
|
||||
]
|
||||
superClass: ClsClassImpl: Object (java.lang.Object)
|
||||
interfaces: []
|
||||
supers: [
|
||||
ClsClassImpl: Object (java.lang.Object)
|
||||
]
|
||||
|
||||
KtEnumEntry:
|
||||
line: 6
|
||||
name: FirstEntry
|
||||
qualifier: one.two.EnumEntries.FirstEntry
|
||||
light: null
|
||||
|
||||
KtEnumEntry:
|
||||
line: 7
|
||||
name: SecondEntryWithBody
|
||||
qualifier: one.two.EnumEntries.SecondEntryWithBody
|
||||
light: SymbolLightClassForEnumEntry
|
||||
name: SecondEntryWithBody
|
||||
qualifier: one.two.EnumEntries.SecondEntryWithBody
|
||||
superTypes: [
|
||||
PsiType:EnumEntries
|
||||
]
|
||||
superClass: SymbolLightClassForClassOrObject: EnumEntries (one.two.EnumEntries)
|
||||
interfaces: []
|
||||
supers: [
|
||||
SymbolLightClassForClassOrObject: EnumEntries (one.two.EnumEntries)
|
||||
]
|
||||
|
||||
KtClass:
|
||||
line: 5
|
||||
name: EnumEntries
|
||||
qualifier: one.two.EnumEntries
|
||||
light: SymbolLightClassForClassOrObject
|
||||
name: EnumEntries
|
||||
qualifier: one.two.EnumEntries
|
||||
superTypes: [
|
||||
PsiType:Enum<EnumEntries>
|
||||
]
|
||||
superClass: ClsClassImpl: Enum (java.lang.Enum)
|
||||
interfaces: []
|
||||
supers: [
|
||||
ClsClassImpl: Enum (java.lang.Enum)
|
||||
]
|
||||
|
||||
KtEnumEntry:
|
||||
line: 15
|
||||
name: NewFirstEntry
|
||||
qualifier: one.two.EnumClassWithInterface.NewFirstEntry
|
||||
light: null
|
||||
|
||||
KtEnumEntry:
|
||||
line: 16
|
||||
name: NewSecondEntryWithBody
|
||||
qualifier: one.two.EnumClassWithInterface.NewSecondEntryWithBody
|
||||
light: SymbolLightClassForEnumEntry
|
||||
name: NewSecondEntryWithBody
|
||||
qualifier: one.two.EnumClassWithInterface.NewSecondEntryWithBody
|
||||
superTypes: [
|
||||
PsiType:EnumClassWithInterface
|
||||
]
|
||||
superClass: SymbolLightClassForClassOrObject: EnumClassWithInterface (one.two.EnumClassWithInterface)
|
||||
interfaces: []
|
||||
supers: [
|
||||
SymbolLightClassForClassOrObject: EnumClassWithInterface (one.two.EnumClassWithInterface)
|
||||
]
|
||||
|
||||
KtClass:
|
||||
line: 14
|
||||
name: EnumClassWithInterface
|
||||
qualifier: one.two.EnumClassWithInterface
|
||||
light: SymbolLightClassForClassOrObject
|
||||
name: EnumClassWithInterface
|
||||
qualifier: one.two.EnumClassWithInterface
|
||||
superTypes: [
|
||||
PsiType:Enum<EnumClassWithInterface>
|
||||
PsiType:BaseInterface
|
||||
]
|
||||
superClass: ClsClassImpl: Enum (java.lang.Enum)
|
||||
interfaces: [
|
||||
SymbolLightClassForInterface: BaseInterface (one.two.BaseInterface)
|
||||
]
|
||||
supers: [
|
||||
ClsClassImpl: Enum (java.lang.Enum)
|
||||
SymbolLightClassForInterface: BaseInterface (one.two.BaseInterface)
|
||||
]
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
package my
|
||||
|
||||
interface BaseInterface1
|
||||
|
||||
interface BaseInterface2
|
||||
|
||||
interface ComplexInterface : BaseInterface1, BaseInterface2
|
||||
|
||||
open class OpenBaseClass
|
||||
|
||||
class FinalClassWithBaseInterface : BaseInterface1
|
||||
|
||||
class FinalClassWithSeveralBaseInterfaces : BaseInterface1, BaseInterface2
|
||||
|
||||
class FinalClassWithComplexInterface : ComplexInterface
|
||||
|
||||
class FinalClassWithComplexInterfaceAndBaseInterface : ComplexInterface, BaseInterface1
|
||||
|
||||
abstract class AbstractClassWithBaseInterface : BaseInterface2
|
||||
|
||||
abstract class AbstractClassWithComplexInterface : ComplexInterface
|
||||
|
||||
abstract class AbstractClassTransitiveBaseInterface : AbstractClassWithBaseInterface(), BaseInterface1
|
||||
|
||||
open class OpenComplexClass : ComplexInterface, AbstractClassTransitiveBaseInterface()
|
||||
|
||||
class OnlyTransitiveInterface : OpenComplexClass()
|
||||
+265
@@ -0,0 +1,265 @@
|
||||
OpenBaseClass.class:
|
||||
KtClass:
|
||||
line: 6
|
||||
name: OpenBaseClass
|
||||
qualifier: my.OpenBaseClass
|
||||
light: KtLightClassForDecompiledDeclaration
|
||||
name: OpenBaseClass
|
||||
qualifier: my.OpenBaseClass
|
||||
superTypes: [
|
||||
PsiType:Object
|
||||
]
|
||||
superClass: ClsClassImpl: Object (java.lang.Object)
|
||||
interfaces: []
|
||||
supers: [
|
||||
ClsClassImpl: Object (java.lang.Object)
|
||||
]
|
||||
|
||||
FinalClassWithBaseInterface.class:
|
||||
KtClass:
|
||||
line: 6
|
||||
name: FinalClassWithBaseInterface
|
||||
qualifier: my.FinalClassWithBaseInterface
|
||||
light: KtLightClassForDecompiledDeclaration
|
||||
name: FinalClassWithBaseInterface
|
||||
qualifier: my.FinalClassWithBaseInterface
|
||||
superTypes: [
|
||||
PsiType:Object
|
||||
PsiType:BaseInterface1
|
||||
]
|
||||
superClass: ClsClassImpl: Object (java.lang.Object)
|
||||
interfaces: [
|
||||
KtLightClassForDecompiledDeclaration: BaseInterface1 (my.BaseInterface1)
|
||||
]
|
||||
supers: [
|
||||
ClsClassImpl: Object (java.lang.Object)
|
||||
KtLightClassForDecompiledDeclaration: BaseInterface1 (my.BaseInterface1)
|
||||
]
|
||||
|
||||
AbstractClassWithBaseInterface.class:
|
||||
KtClass:
|
||||
line: 6
|
||||
name: AbstractClassWithBaseInterface
|
||||
qualifier: my.AbstractClassWithBaseInterface
|
||||
light: KtLightClassForDecompiledDeclaration
|
||||
name: AbstractClassWithBaseInterface
|
||||
qualifier: my.AbstractClassWithBaseInterface
|
||||
superTypes: [
|
||||
PsiType:Object
|
||||
PsiType:BaseInterface2
|
||||
]
|
||||
superClass: ClsClassImpl: Object (java.lang.Object)
|
||||
interfaces: [
|
||||
KtLightClassForDecompiledDeclaration: BaseInterface2 (my.BaseInterface2)
|
||||
]
|
||||
supers: [
|
||||
ClsClassImpl: Object (java.lang.Object)
|
||||
KtLightClassForDecompiledDeclaration: BaseInterface2 (my.BaseInterface2)
|
||||
]
|
||||
|
||||
BaseInterface1.class:
|
||||
KtClass:
|
||||
line: 6
|
||||
name: BaseInterface1
|
||||
qualifier: my.BaseInterface1
|
||||
light: KtLightClassForDecompiledDeclaration
|
||||
name: BaseInterface1
|
||||
qualifier: my.BaseInterface1
|
||||
superTypes: [
|
||||
PsiType:Object
|
||||
]
|
||||
superClass: ClsClassImpl: Object (java.lang.Object)
|
||||
interfaces: []
|
||||
supers: [
|
||||
ClsClassImpl: Object (java.lang.Object)
|
||||
]
|
||||
|
||||
BaseInterface2.class:
|
||||
KtClass:
|
||||
line: 6
|
||||
name: BaseInterface2
|
||||
qualifier: my.BaseInterface2
|
||||
light: KtLightClassForDecompiledDeclaration
|
||||
name: BaseInterface2
|
||||
qualifier: my.BaseInterface2
|
||||
superTypes: [
|
||||
PsiType:Object
|
||||
]
|
||||
superClass: ClsClassImpl: Object (java.lang.Object)
|
||||
interfaces: []
|
||||
supers: [
|
||||
ClsClassImpl: Object (java.lang.Object)
|
||||
]
|
||||
|
||||
FinalClassWithSeveralBaseInterfaces.class:
|
||||
KtClass:
|
||||
line: 6
|
||||
name: FinalClassWithSeveralBaseInterfaces
|
||||
qualifier: my.FinalClassWithSeveralBaseInterfaces
|
||||
light: KtLightClassForDecompiledDeclaration
|
||||
name: FinalClassWithSeveralBaseInterfaces
|
||||
qualifier: my.FinalClassWithSeveralBaseInterfaces
|
||||
superTypes: [
|
||||
PsiType:Object
|
||||
PsiType:BaseInterface1
|
||||
PsiType:BaseInterface2
|
||||
]
|
||||
superClass: ClsClassImpl: Object (java.lang.Object)
|
||||
interfaces: [
|
||||
KtLightClassForDecompiledDeclaration: BaseInterface1 (my.BaseInterface1)
|
||||
KtLightClassForDecompiledDeclaration: BaseInterface2 (my.BaseInterface2)
|
||||
]
|
||||
supers: [
|
||||
ClsClassImpl: Object (java.lang.Object)
|
||||
KtLightClassForDecompiledDeclaration: BaseInterface1 (my.BaseInterface1)
|
||||
KtLightClassForDecompiledDeclaration: BaseInterface2 (my.BaseInterface2)
|
||||
]
|
||||
|
||||
OnlyTransitiveInterface.class:
|
||||
KtClass:
|
||||
line: 6
|
||||
name: OnlyTransitiveInterface
|
||||
qualifier: my.OnlyTransitiveInterface
|
||||
light: KtLightClassForDecompiledDeclaration
|
||||
name: OnlyTransitiveInterface
|
||||
qualifier: my.OnlyTransitiveInterface
|
||||
superTypes: [
|
||||
PsiType:OpenComplexClass
|
||||
]
|
||||
superClass: KtLightClassForDecompiledDeclaration: OpenComplexClass (my.OpenComplexClass)
|
||||
interfaces: []
|
||||
supers: [
|
||||
KtLightClassForDecompiledDeclaration: OpenComplexClass (my.OpenComplexClass)
|
||||
]
|
||||
|
||||
AbstractClassWithComplexInterface.class:
|
||||
KtClass:
|
||||
line: 6
|
||||
name: AbstractClassWithComplexInterface
|
||||
qualifier: my.AbstractClassWithComplexInterface
|
||||
light: KtLightClassForDecompiledDeclaration
|
||||
name: AbstractClassWithComplexInterface
|
||||
qualifier: my.AbstractClassWithComplexInterface
|
||||
superTypes: [
|
||||
PsiType:Object
|
||||
PsiType:ComplexInterface
|
||||
]
|
||||
superClass: ClsClassImpl: Object (java.lang.Object)
|
||||
interfaces: [
|
||||
KtLightClassForDecompiledDeclaration: ComplexInterface (my.ComplexInterface)
|
||||
]
|
||||
supers: [
|
||||
ClsClassImpl: Object (java.lang.Object)
|
||||
KtLightClassForDecompiledDeclaration: ComplexInterface (my.ComplexInterface)
|
||||
]
|
||||
|
||||
FinalClassWithComplexInterfaceAndBaseInterface.class:
|
||||
KtClass:
|
||||
line: 6
|
||||
name: FinalClassWithComplexInterfaceAndBaseInterface
|
||||
qualifier: my.FinalClassWithComplexInterfaceAndBaseInterface
|
||||
light: KtLightClassForDecompiledDeclaration
|
||||
name: FinalClassWithComplexInterfaceAndBaseInterface
|
||||
qualifier: my.FinalClassWithComplexInterfaceAndBaseInterface
|
||||
superTypes: [
|
||||
PsiType:Object
|
||||
PsiType:ComplexInterface
|
||||
PsiType:BaseInterface1
|
||||
]
|
||||
superClass: ClsClassImpl: Object (java.lang.Object)
|
||||
interfaces: [
|
||||
KtLightClassForDecompiledDeclaration: ComplexInterface (my.ComplexInterface)
|
||||
KtLightClassForDecompiledDeclaration: BaseInterface1 (my.BaseInterface1)
|
||||
]
|
||||
supers: [
|
||||
ClsClassImpl: Object (java.lang.Object)
|
||||
KtLightClassForDecompiledDeclaration: ComplexInterface (my.ComplexInterface)
|
||||
KtLightClassForDecompiledDeclaration: BaseInterface1 (my.BaseInterface1)
|
||||
]
|
||||
|
||||
FinalClassWithComplexInterface.class:
|
||||
KtClass:
|
||||
line: 6
|
||||
name: FinalClassWithComplexInterface
|
||||
qualifier: my.FinalClassWithComplexInterface
|
||||
light: KtLightClassForDecompiledDeclaration
|
||||
name: FinalClassWithComplexInterface
|
||||
qualifier: my.FinalClassWithComplexInterface
|
||||
superTypes: [
|
||||
PsiType:Object
|
||||
PsiType:ComplexInterface
|
||||
]
|
||||
superClass: ClsClassImpl: Object (java.lang.Object)
|
||||
interfaces: [
|
||||
KtLightClassForDecompiledDeclaration: ComplexInterface (my.ComplexInterface)
|
||||
]
|
||||
supers: [
|
||||
ClsClassImpl: Object (java.lang.Object)
|
||||
KtLightClassForDecompiledDeclaration: ComplexInterface (my.ComplexInterface)
|
||||
]
|
||||
|
||||
AbstractClassTransitiveBaseInterface.class:
|
||||
KtClass:
|
||||
line: 6
|
||||
name: AbstractClassTransitiveBaseInterface
|
||||
qualifier: my.AbstractClassTransitiveBaseInterface
|
||||
light: KtLightClassForDecompiledDeclaration
|
||||
name: AbstractClassTransitiveBaseInterface
|
||||
qualifier: my.AbstractClassTransitiveBaseInterface
|
||||
superTypes: [
|
||||
PsiType:AbstractClassWithBaseInterface
|
||||
PsiType:BaseInterface1
|
||||
]
|
||||
superClass: KtLightClassForDecompiledDeclaration: AbstractClassWithBaseInterface (my.AbstractClassWithBaseInterface)
|
||||
interfaces: [
|
||||
KtLightClassForDecompiledDeclaration: BaseInterface1 (my.BaseInterface1)
|
||||
]
|
||||
supers: [
|
||||
KtLightClassForDecompiledDeclaration: AbstractClassWithBaseInterface (my.AbstractClassWithBaseInterface)
|
||||
KtLightClassForDecompiledDeclaration: BaseInterface1 (my.BaseInterface1)
|
||||
]
|
||||
|
||||
ComplexInterface.class:
|
||||
KtClass:
|
||||
line: 6
|
||||
name: ComplexInterface
|
||||
qualifier: my.ComplexInterface
|
||||
light: KtLightClassForDecompiledDeclaration
|
||||
name: ComplexInterface
|
||||
qualifier: my.ComplexInterface
|
||||
superTypes: [
|
||||
PsiType:BaseInterface1
|
||||
PsiType:BaseInterface2
|
||||
]
|
||||
superClass: ClsClassImpl: Object (java.lang.Object)
|
||||
interfaces: [
|
||||
KtLightClassForDecompiledDeclaration: BaseInterface1 (my.BaseInterface1)
|
||||
KtLightClassForDecompiledDeclaration: BaseInterface2 (my.BaseInterface2)
|
||||
]
|
||||
supers: [
|
||||
ClsClassImpl: Object (java.lang.Object)
|
||||
KtLightClassForDecompiledDeclaration: BaseInterface1 (my.BaseInterface1)
|
||||
KtLightClassForDecompiledDeclaration: BaseInterface2 (my.BaseInterface2)
|
||||
]
|
||||
|
||||
OpenComplexClass.class:
|
||||
KtClass:
|
||||
line: 6
|
||||
name: OpenComplexClass
|
||||
qualifier: my.OpenComplexClass
|
||||
light: KtLightClassForDecompiledDeclaration
|
||||
name: OpenComplexClass
|
||||
qualifier: my.OpenComplexClass
|
||||
superTypes: [
|
||||
PsiType:AbstractClassTransitiveBaseInterface
|
||||
PsiType:ComplexInterface
|
||||
]
|
||||
superClass: KtLightClassForDecompiledDeclaration: AbstractClassTransitiveBaseInterface (my.AbstractClassTransitiveBaseInterface)
|
||||
interfaces: [
|
||||
KtLightClassForDecompiledDeclaration: ComplexInterface (my.ComplexInterface)
|
||||
]
|
||||
supers: [
|
||||
KtLightClassForDecompiledDeclaration: AbstractClassTransitiveBaseInterface (my.AbstractClassTransitiveBaseInterface)
|
||||
KtLightClassForDecompiledDeclaration: ComplexInterface (my.ComplexInterface)
|
||||
]
|
||||
|
||||
@@ -0,0 +1,252 @@
|
||||
KtClass:
|
||||
line: 3
|
||||
name: BaseInterface1
|
||||
qualifier: my.BaseInterface1
|
||||
light: SymbolLightClassForInterface
|
||||
name: BaseInterface1
|
||||
qualifier: my.BaseInterface1
|
||||
superTypes: [
|
||||
PsiType:Object
|
||||
]
|
||||
superClass: ClsClassImpl: Object (java.lang.Object)
|
||||
interfaces: []
|
||||
supers: [
|
||||
ClsClassImpl: Object (java.lang.Object)
|
||||
]
|
||||
|
||||
KtClass:
|
||||
line: 5
|
||||
name: BaseInterface2
|
||||
qualifier: my.BaseInterface2
|
||||
light: SymbolLightClassForInterface
|
||||
name: BaseInterface2
|
||||
qualifier: my.BaseInterface2
|
||||
superTypes: [
|
||||
PsiType:Object
|
||||
]
|
||||
superClass: ClsClassImpl: Object (java.lang.Object)
|
||||
interfaces: []
|
||||
supers: [
|
||||
ClsClassImpl: Object (java.lang.Object)
|
||||
]
|
||||
|
||||
KtClass:
|
||||
line: 7
|
||||
name: ComplexInterface
|
||||
qualifier: my.ComplexInterface
|
||||
light: SymbolLightClassForInterface
|
||||
name: ComplexInterface
|
||||
qualifier: my.ComplexInterface
|
||||
superTypes: [
|
||||
PsiType:BaseInterface1
|
||||
PsiType:BaseInterface2
|
||||
]
|
||||
superClass: ClsClassImpl: Object (java.lang.Object)
|
||||
interfaces: [
|
||||
SymbolLightClassForInterface: BaseInterface1 (my.BaseInterface1)
|
||||
SymbolLightClassForInterface: BaseInterface2 (my.BaseInterface2)
|
||||
]
|
||||
supers: [
|
||||
ClsClassImpl: Object (java.lang.Object)
|
||||
SymbolLightClassForInterface: BaseInterface1 (my.BaseInterface1)
|
||||
SymbolLightClassForInterface: BaseInterface2 (my.BaseInterface2)
|
||||
]
|
||||
|
||||
KtClass:
|
||||
line: 9
|
||||
name: OpenBaseClass
|
||||
qualifier: my.OpenBaseClass
|
||||
light: SymbolLightClassForClassOrObject
|
||||
name: OpenBaseClass
|
||||
qualifier: my.OpenBaseClass
|
||||
superTypes: [
|
||||
PsiType:Object
|
||||
]
|
||||
superClass: ClsClassImpl: Object (java.lang.Object)
|
||||
interfaces: []
|
||||
supers: [
|
||||
ClsClassImpl: Object (java.lang.Object)
|
||||
]
|
||||
|
||||
KtClass:
|
||||
line: 11
|
||||
name: FinalClassWithBaseInterface
|
||||
qualifier: my.FinalClassWithBaseInterface
|
||||
light: SymbolLightClassForClassOrObject
|
||||
name: FinalClassWithBaseInterface
|
||||
qualifier: my.FinalClassWithBaseInterface
|
||||
superTypes: [
|
||||
PsiType:Object
|
||||
PsiType:BaseInterface1
|
||||
]
|
||||
superClass: ClsClassImpl: Object (java.lang.Object)
|
||||
interfaces: [
|
||||
SymbolLightClassForInterface: BaseInterface1 (my.BaseInterface1)
|
||||
]
|
||||
supers: [
|
||||
ClsClassImpl: Object (java.lang.Object)
|
||||
SymbolLightClassForInterface: BaseInterface1 (my.BaseInterface1)
|
||||
]
|
||||
|
||||
KtClass:
|
||||
line: 13
|
||||
name: FinalClassWithSeveralBaseInterfaces
|
||||
qualifier: my.FinalClassWithSeveralBaseInterfaces
|
||||
light: SymbolLightClassForClassOrObject
|
||||
name: FinalClassWithSeveralBaseInterfaces
|
||||
qualifier: my.FinalClassWithSeveralBaseInterfaces
|
||||
superTypes: [
|
||||
PsiType:Object
|
||||
PsiType:BaseInterface1
|
||||
PsiType:BaseInterface2
|
||||
]
|
||||
superClass: ClsClassImpl: Object (java.lang.Object)
|
||||
interfaces: [
|
||||
SymbolLightClassForInterface: BaseInterface1 (my.BaseInterface1)
|
||||
SymbolLightClassForInterface: BaseInterface2 (my.BaseInterface2)
|
||||
]
|
||||
supers: [
|
||||
ClsClassImpl: Object (java.lang.Object)
|
||||
SymbolLightClassForInterface: BaseInterface1 (my.BaseInterface1)
|
||||
SymbolLightClassForInterface: BaseInterface2 (my.BaseInterface2)
|
||||
]
|
||||
|
||||
KtClass:
|
||||
line: 15
|
||||
name: FinalClassWithComplexInterface
|
||||
qualifier: my.FinalClassWithComplexInterface
|
||||
light: SymbolLightClassForClassOrObject
|
||||
name: FinalClassWithComplexInterface
|
||||
qualifier: my.FinalClassWithComplexInterface
|
||||
superTypes: [
|
||||
PsiType:Object
|
||||
PsiType:ComplexInterface
|
||||
]
|
||||
superClass: ClsClassImpl: Object (java.lang.Object)
|
||||
interfaces: [
|
||||
SymbolLightClassForInterface: ComplexInterface (my.ComplexInterface)
|
||||
]
|
||||
supers: [
|
||||
ClsClassImpl: Object (java.lang.Object)
|
||||
SymbolLightClassForInterface: ComplexInterface (my.ComplexInterface)
|
||||
]
|
||||
|
||||
KtClass:
|
||||
line: 17
|
||||
name: FinalClassWithComplexInterfaceAndBaseInterface
|
||||
qualifier: my.FinalClassWithComplexInterfaceAndBaseInterface
|
||||
light: SymbolLightClassForClassOrObject
|
||||
name: FinalClassWithComplexInterfaceAndBaseInterface
|
||||
qualifier: my.FinalClassWithComplexInterfaceAndBaseInterface
|
||||
superTypes: [
|
||||
PsiType:Object
|
||||
PsiType:ComplexInterface
|
||||
PsiType:BaseInterface1
|
||||
]
|
||||
superClass: ClsClassImpl: Object (java.lang.Object)
|
||||
interfaces: [
|
||||
SymbolLightClassForInterface: ComplexInterface (my.ComplexInterface)
|
||||
SymbolLightClassForInterface: BaseInterface1 (my.BaseInterface1)
|
||||
]
|
||||
supers: [
|
||||
ClsClassImpl: Object (java.lang.Object)
|
||||
SymbolLightClassForInterface: ComplexInterface (my.ComplexInterface)
|
||||
SymbolLightClassForInterface: BaseInterface1 (my.BaseInterface1)
|
||||
]
|
||||
|
||||
KtClass:
|
||||
line: 19
|
||||
name: AbstractClassWithBaseInterface
|
||||
qualifier: my.AbstractClassWithBaseInterface
|
||||
light: SymbolLightClassForClassOrObject
|
||||
name: AbstractClassWithBaseInterface
|
||||
qualifier: my.AbstractClassWithBaseInterface
|
||||
superTypes: [
|
||||
PsiType:Object
|
||||
PsiType:BaseInterface2
|
||||
]
|
||||
superClass: ClsClassImpl: Object (java.lang.Object)
|
||||
interfaces: [
|
||||
SymbolLightClassForInterface: BaseInterface2 (my.BaseInterface2)
|
||||
]
|
||||
supers: [
|
||||
ClsClassImpl: Object (java.lang.Object)
|
||||
SymbolLightClassForInterface: BaseInterface2 (my.BaseInterface2)
|
||||
]
|
||||
|
||||
KtClass:
|
||||
line: 21
|
||||
name: AbstractClassWithComplexInterface
|
||||
qualifier: my.AbstractClassWithComplexInterface
|
||||
light: SymbolLightClassForClassOrObject
|
||||
name: AbstractClassWithComplexInterface
|
||||
qualifier: my.AbstractClassWithComplexInterface
|
||||
superTypes: [
|
||||
PsiType:Object
|
||||
PsiType:ComplexInterface
|
||||
]
|
||||
superClass: ClsClassImpl: Object (java.lang.Object)
|
||||
interfaces: [
|
||||
SymbolLightClassForInterface: ComplexInterface (my.ComplexInterface)
|
||||
]
|
||||
supers: [
|
||||
ClsClassImpl: Object (java.lang.Object)
|
||||
SymbolLightClassForInterface: ComplexInterface (my.ComplexInterface)
|
||||
]
|
||||
|
||||
KtClass:
|
||||
line: 23
|
||||
name: AbstractClassTransitiveBaseInterface
|
||||
qualifier: my.AbstractClassTransitiveBaseInterface
|
||||
light: SymbolLightClassForClassOrObject
|
||||
name: AbstractClassTransitiveBaseInterface
|
||||
qualifier: my.AbstractClassTransitiveBaseInterface
|
||||
superTypes: [
|
||||
PsiType:AbstractClassWithBaseInterface
|
||||
PsiType:BaseInterface1
|
||||
]
|
||||
superClass: SymbolLightClassForClassOrObject: AbstractClassWithBaseInterface (my.AbstractClassWithBaseInterface)
|
||||
interfaces: [
|
||||
SymbolLightClassForInterface: BaseInterface1 (my.BaseInterface1)
|
||||
]
|
||||
supers: [
|
||||
SymbolLightClassForClassOrObject: AbstractClassWithBaseInterface (my.AbstractClassWithBaseInterface)
|
||||
SymbolLightClassForInterface: BaseInterface1 (my.BaseInterface1)
|
||||
]
|
||||
|
||||
KtClass:
|
||||
line: 25
|
||||
name: OpenComplexClass
|
||||
qualifier: my.OpenComplexClass
|
||||
light: SymbolLightClassForClassOrObject
|
||||
name: OpenComplexClass
|
||||
qualifier: my.OpenComplexClass
|
||||
superTypes: [
|
||||
PsiType:AbstractClassTransitiveBaseInterface
|
||||
PsiType:ComplexInterface
|
||||
]
|
||||
superClass: SymbolLightClassForClassOrObject: AbstractClassTransitiveBaseInterface (my.AbstractClassTransitiveBaseInterface)
|
||||
interfaces: [
|
||||
SymbolLightClassForInterface: ComplexInterface (my.ComplexInterface)
|
||||
]
|
||||
supers: [
|
||||
SymbolLightClassForClassOrObject: AbstractClassTransitiveBaseInterface (my.AbstractClassTransitiveBaseInterface)
|
||||
SymbolLightClassForInterface: ComplexInterface (my.ComplexInterface)
|
||||
]
|
||||
|
||||
KtClass:
|
||||
line: 27
|
||||
name: OnlyTransitiveInterface
|
||||
qualifier: my.OnlyTransitiveInterface
|
||||
light: SymbolLightClassForClassOrObject
|
||||
name: OnlyTransitiveInterface
|
||||
qualifier: my.OnlyTransitiveInterface
|
||||
superTypes: [
|
||||
PsiType:OpenComplexClass
|
||||
]
|
||||
superClass: SymbolLightClassForClassOrObject: OpenComplexClass (my.OpenComplexClass)
|
||||
interfaces: []
|
||||
supers: [
|
||||
SymbolLightClassForClassOrObject: OpenComplexClass (my.OpenComplexClass)
|
||||
]
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
package abc
|
||||
|
||||
interface SingleInterface
|
||||
|
||||
interface BaseInterface1
|
||||
interface BaseInterface2
|
||||
|
||||
interface InterfaceWithBase : BaseInterface1, BaseInterface2
|
||||
|
||||
interface InterfaceWithTransitive : InterfaceWithBase
|
||||
@@ -0,0 +1,94 @@
|
||||
SingleInterface.class:
|
||||
KtClass:
|
||||
line: 6
|
||||
name: SingleInterface
|
||||
qualifier: abc.SingleInterface
|
||||
light: KtLightClassForDecompiledDeclaration
|
||||
name: SingleInterface
|
||||
qualifier: abc.SingleInterface
|
||||
superTypes: [
|
||||
PsiType:Object
|
||||
]
|
||||
superClass: ClsClassImpl: Object (java.lang.Object)
|
||||
interfaces: []
|
||||
supers: [
|
||||
ClsClassImpl: Object (java.lang.Object)
|
||||
]
|
||||
|
||||
BaseInterface2.class:
|
||||
KtClass:
|
||||
line: 6
|
||||
name: BaseInterface2
|
||||
qualifier: abc.BaseInterface2
|
||||
light: KtLightClassForDecompiledDeclaration
|
||||
name: BaseInterface2
|
||||
qualifier: abc.BaseInterface2
|
||||
superTypes: [
|
||||
PsiType:Object
|
||||
]
|
||||
superClass: ClsClassImpl: Object (java.lang.Object)
|
||||
interfaces: []
|
||||
supers: [
|
||||
ClsClassImpl: Object (java.lang.Object)
|
||||
]
|
||||
|
||||
InterfaceWithTransitive.class:
|
||||
KtClass:
|
||||
line: 6
|
||||
name: InterfaceWithTransitive
|
||||
qualifier: abc.InterfaceWithTransitive
|
||||
light: KtLightClassForDecompiledDeclaration
|
||||
name: InterfaceWithTransitive
|
||||
qualifier: abc.InterfaceWithTransitive
|
||||
superTypes: [
|
||||
PsiType:InterfaceWithBase
|
||||
]
|
||||
superClass: ClsClassImpl: Object (java.lang.Object)
|
||||
interfaces: [
|
||||
KtLightClassForDecompiledDeclaration: InterfaceWithBase (abc.InterfaceWithBase)
|
||||
]
|
||||
supers: [
|
||||
ClsClassImpl: Object (java.lang.Object)
|
||||
KtLightClassForDecompiledDeclaration: InterfaceWithBase (abc.InterfaceWithBase)
|
||||
]
|
||||
|
||||
InterfaceWithBase.class:
|
||||
KtClass:
|
||||
line: 6
|
||||
name: InterfaceWithBase
|
||||
qualifier: abc.InterfaceWithBase
|
||||
light: KtLightClassForDecompiledDeclaration
|
||||
name: InterfaceWithBase
|
||||
qualifier: abc.InterfaceWithBase
|
||||
superTypes: [
|
||||
PsiType:BaseInterface1
|
||||
PsiType:BaseInterface2
|
||||
]
|
||||
superClass: ClsClassImpl: Object (java.lang.Object)
|
||||
interfaces: [
|
||||
KtLightClassForDecompiledDeclaration: BaseInterface1 (abc.BaseInterface1)
|
||||
KtLightClassForDecompiledDeclaration: BaseInterface2 (abc.BaseInterface2)
|
||||
]
|
||||
supers: [
|
||||
ClsClassImpl: Object (java.lang.Object)
|
||||
KtLightClassForDecompiledDeclaration: BaseInterface1 (abc.BaseInterface1)
|
||||
KtLightClassForDecompiledDeclaration: BaseInterface2 (abc.BaseInterface2)
|
||||
]
|
||||
|
||||
BaseInterface1.class:
|
||||
KtClass:
|
||||
line: 6
|
||||
name: BaseInterface1
|
||||
qualifier: abc.BaseInterface1
|
||||
light: KtLightClassForDecompiledDeclaration
|
||||
name: BaseInterface1
|
||||
qualifier: abc.BaseInterface1
|
||||
superTypes: [
|
||||
PsiType:Object
|
||||
]
|
||||
superClass: ClsClassImpl: Object (java.lang.Object)
|
||||
interfaces: []
|
||||
supers: [
|
||||
ClsClassImpl: Object (java.lang.Object)
|
||||
]
|
||||
|
||||
@@ -0,0 +1,89 @@
|
||||
KtClass:
|
||||
line: 3
|
||||
name: SingleInterface
|
||||
qualifier: abc.SingleInterface
|
||||
light: SymbolLightClassForInterface
|
||||
name: SingleInterface
|
||||
qualifier: abc.SingleInterface
|
||||
superTypes: [
|
||||
PsiType:Object
|
||||
]
|
||||
superClass: ClsClassImpl: Object (java.lang.Object)
|
||||
interfaces: []
|
||||
supers: [
|
||||
ClsClassImpl: Object (java.lang.Object)
|
||||
]
|
||||
|
||||
KtClass:
|
||||
line: 5
|
||||
name: BaseInterface1
|
||||
qualifier: abc.BaseInterface1
|
||||
light: SymbolLightClassForInterface
|
||||
name: BaseInterface1
|
||||
qualifier: abc.BaseInterface1
|
||||
superTypes: [
|
||||
PsiType:Object
|
||||
]
|
||||
superClass: ClsClassImpl: Object (java.lang.Object)
|
||||
interfaces: []
|
||||
supers: [
|
||||
ClsClassImpl: Object (java.lang.Object)
|
||||
]
|
||||
|
||||
KtClass:
|
||||
line: 6
|
||||
name: BaseInterface2
|
||||
qualifier: abc.BaseInterface2
|
||||
light: SymbolLightClassForInterface
|
||||
name: BaseInterface2
|
||||
qualifier: abc.BaseInterface2
|
||||
superTypes: [
|
||||
PsiType:Object
|
||||
]
|
||||
superClass: ClsClassImpl: Object (java.lang.Object)
|
||||
interfaces: []
|
||||
supers: [
|
||||
ClsClassImpl: Object (java.lang.Object)
|
||||
]
|
||||
|
||||
KtClass:
|
||||
line: 8
|
||||
name: InterfaceWithBase
|
||||
qualifier: abc.InterfaceWithBase
|
||||
light: SymbolLightClassForInterface
|
||||
name: InterfaceWithBase
|
||||
qualifier: abc.InterfaceWithBase
|
||||
superTypes: [
|
||||
PsiType:BaseInterface1
|
||||
PsiType:BaseInterface2
|
||||
]
|
||||
superClass: ClsClassImpl: Object (java.lang.Object)
|
||||
interfaces: [
|
||||
SymbolLightClassForInterface: BaseInterface1 (abc.BaseInterface1)
|
||||
SymbolLightClassForInterface: BaseInterface2 (abc.BaseInterface2)
|
||||
]
|
||||
supers: [
|
||||
ClsClassImpl: Object (java.lang.Object)
|
||||
SymbolLightClassForInterface: BaseInterface1 (abc.BaseInterface1)
|
||||
SymbolLightClassForInterface: BaseInterface2 (abc.BaseInterface2)
|
||||
]
|
||||
|
||||
KtClass:
|
||||
line: 10
|
||||
name: InterfaceWithTransitive
|
||||
qualifier: abc.InterfaceWithTransitive
|
||||
light: SymbolLightClassForInterface
|
||||
name: InterfaceWithTransitive
|
||||
qualifier: abc.InterfaceWithTransitive
|
||||
superTypes: [
|
||||
PsiType:InterfaceWithBase
|
||||
]
|
||||
superClass: ClsClassImpl: Object (java.lang.Object)
|
||||
interfaces: [
|
||||
SymbolLightClassForInterface: InterfaceWithBase (abc.InterfaceWithBase)
|
||||
]
|
||||
supers: [
|
||||
ClsClassImpl: Object (java.lang.Object)
|
||||
SymbolLightClassForInterface: InterfaceWithBase (abc.InterfaceWithBase)
|
||||
]
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
two.Object|java.lang.Object|false| -> true
|
||||
two.Object|java.lang.Object|true| -> true
|
||||
two.Object|two.BaseInterface|false| -> false
|
||||
two.Object|two.BaseInterface|true| -> false
|
||||
two.ObjectWithInterface|two.BaseInterface|false| -> true
|
||||
two.ObjectWithInterface|two.BaseInterface|true| -> true
|
||||
two.ObjectWithInterface|java.lang.Object|false| -> true
|
||||
two.ObjectWithInterface|java.lang.Object|true| -> true
|
||||
two.ObjectWithClassAndInterface|java.lang.Object|false| -> false
|
||||
two.ObjectWithClassAndInterface|java.lang.Object|true| -> true
|
||||
two.ObjectWithClassAndInterface|two.NonBaseClass|false| -> true
|
||||
two.ObjectWithClassAndInterface|two.NonBaseClass|true| -> true
|
||||
two.ObjectWithClassAndInterface|two.NonBaseInterface|false| -> true
|
||||
two.ObjectWithClassAndInterface|two.NonBaseInterface|true| -> true
|
||||
two.ObjectWithClassAndJavaInterface|java.lang.Object|false| -> false
|
||||
two.ObjectWithClassAndJavaInterface|java.lang.Object|true| -> true
|
||||
two.ObjectWithClassAndJavaInterface|two.NonBaseClass|false| -> true
|
||||
two.ObjectWithClassAndJavaInterface|two.NonBaseClass|true| -> true
|
||||
two.ObjectWithClassAndJavaInterface|two.NonBaseInterface|false| -> false
|
||||
two.ObjectWithClassAndJavaInterface|two.NonBaseInterface|true| -> false
|
||||
two.ObjectWithClassAndJavaInterface|java.lang.Runnable|false| -> true
|
||||
two.ObjectWithClassAndJavaInterface|java.lang.Runnable|true| -> true
|
||||
@@ -0,0 +1,30 @@
|
||||
package two
|
||||
|
||||
import java.lang.Runnable
|
||||
|
||||
interface BaseInterface
|
||||
interface NonBaseInterface : BaseInterface
|
||||
interface AnotherInterface
|
||||
|
||||
abstract class BaseClass
|
||||
abstract class NonBaseClass : BaseClass()
|
||||
|
||||
object Object
|
||||
|
||||
object ObjectWithInterface : BaseInterface
|
||||
|
||||
object ObjectWithNonBaseInterface : NonBaseInterface
|
||||
|
||||
object ObjectWithClass : BaseClass()
|
||||
|
||||
object ObjectWithClassAndInterface : NonBaseClass(), NonBaseInterface
|
||||
object ObjectWithClassAndJavaInterface : NonBaseClass(), Runnable {
|
||||
override fun run() {}
|
||||
}
|
||||
|
||||
val a = object : BaseClass() {}
|
||||
val b = object : NonBaseClass() {}
|
||||
val c = object : BaseInterface {}
|
||||
val d = object : NonBaseInterface {}
|
||||
val e: NonBaseInterface = object : BaseClass(), NonBaseInterface, AnotherInterface {}
|
||||
val f: AnotherInterface = object : BaseInterface, AnotherInterface {}
|
||||
@@ -0,0 +1,207 @@
|
||||
ObjectWithClassAndInterface.class:
|
||||
KtObjectDeclaration:
|
||||
line: 6
|
||||
name: ObjectWithClassAndInterface
|
||||
qualifier: two.ObjectWithClassAndInterface
|
||||
light: KtLightClassForDecompiledDeclaration
|
||||
name: ObjectWithClassAndInterface
|
||||
qualifier: two.ObjectWithClassAndInterface
|
||||
superTypes: [
|
||||
PsiType:NonBaseClass
|
||||
PsiType:NonBaseInterface
|
||||
]
|
||||
superClass: KtLightClassForDecompiledDeclaration: NonBaseClass (two.NonBaseClass)
|
||||
interfaces: [
|
||||
KtLightClassForDecompiledDeclaration: NonBaseInterface (two.NonBaseInterface)
|
||||
]
|
||||
supers: [
|
||||
KtLightClassForDecompiledDeclaration: NonBaseClass (two.NonBaseClass)
|
||||
KtLightClassForDecompiledDeclaration: NonBaseInterface (two.NonBaseInterface)
|
||||
]
|
||||
|
||||
BaseInterface.class:
|
||||
KtClass:
|
||||
line: 6
|
||||
name: BaseInterface
|
||||
qualifier: two.BaseInterface
|
||||
light: KtLightClassForDecompiledDeclaration
|
||||
name: BaseInterface
|
||||
qualifier: two.BaseInterface
|
||||
superTypes: [
|
||||
PsiType:Object
|
||||
]
|
||||
superClass: ClsClassImpl: Object (java.lang.Object)
|
||||
interfaces: []
|
||||
supers: [
|
||||
ClsClassImpl: Object (java.lang.Object)
|
||||
]
|
||||
|
||||
NonBaseClass.class:
|
||||
KtClass:
|
||||
line: 6
|
||||
name: NonBaseClass
|
||||
qualifier: two.NonBaseClass
|
||||
light: KtLightClassForDecompiledDeclaration
|
||||
name: NonBaseClass
|
||||
qualifier: two.NonBaseClass
|
||||
superTypes: [
|
||||
PsiType:BaseClass
|
||||
]
|
||||
superClass: KtLightClassForDecompiledDeclaration: BaseClass (two.BaseClass)
|
||||
interfaces: []
|
||||
supers: [
|
||||
KtLightClassForDecompiledDeclaration: BaseClass (two.BaseClass)
|
||||
]
|
||||
|
||||
Object.class:
|
||||
KtObjectDeclaration:
|
||||
line: 6
|
||||
name: Object
|
||||
qualifier: two.Object
|
||||
light: KtLightClassForDecompiledDeclaration
|
||||
name: Object
|
||||
qualifier: two.Object
|
||||
superTypes: [
|
||||
PsiType:Object
|
||||
]
|
||||
superClass: ClsClassImpl: Object (java.lang.Object)
|
||||
interfaces: []
|
||||
supers: [
|
||||
ClsClassImpl: Object (java.lang.Object)
|
||||
]
|
||||
|
||||
BaseClass.class:
|
||||
KtClass:
|
||||
line: 6
|
||||
name: BaseClass
|
||||
qualifier: two.BaseClass
|
||||
light: KtLightClassForDecompiledDeclaration
|
||||
name: BaseClass
|
||||
qualifier: two.BaseClass
|
||||
superTypes: [
|
||||
PsiType:Object
|
||||
]
|
||||
superClass: ClsClassImpl: Object (java.lang.Object)
|
||||
interfaces: []
|
||||
supers: [
|
||||
ClsClassImpl: Object (java.lang.Object)
|
||||
]
|
||||
|
||||
ObjectWithClass.class:
|
||||
KtObjectDeclaration:
|
||||
line: 6
|
||||
name: ObjectWithClass
|
||||
qualifier: two.ObjectWithClass
|
||||
light: KtLightClassForDecompiledDeclaration
|
||||
name: ObjectWithClass
|
||||
qualifier: two.ObjectWithClass
|
||||
superTypes: [
|
||||
PsiType:BaseClass
|
||||
]
|
||||
superClass: KtLightClassForDecompiledDeclaration: BaseClass (two.BaseClass)
|
||||
interfaces: []
|
||||
supers: [
|
||||
KtLightClassForDecompiledDeclaration: BaseClass (two.BaseClass)
|
||||
]
|
||||
|
||||
ObjectWithInterface.class:
|
||||
KtObjectDeclaration:
|
||||
line: 6
|
||||
name: ObjectWithInterface
|
||||
qualifier: two.ObjectWithInterface
|
||||
light: KtLightClassForDecompiledDeclaration
|
||||
name: ObjectWithInterface
|
||||
qualifier: two.ObjectWithInterface
|
||||
superTypes: [
|
||||
PsiType:Object
|
||||
PsiType:BaseInterface
|
||||
]
|
||||
superClass: ClsClassImpl: Object (java.lang.Object)
|
||||
interfaces: [
|
||||
KtLightClassForDecompiledDeclaration: BaseInterface (two.BaseInterface)
|
||||
]
|
||||
supers: [
|
||||
ClsClassImpl: Object (java.lang.Object)
|
||||
KtLightClassForDecompiledDeclaration: BaseInterface (two.BaseInterface)
|
||||
]
|
||||
|
||||
ObjectWithClassAndJavaInterface.class:
|
||||
KtObjectDeclaration:
|
||||
line: 6
|
||||
name: ObjectWithClassAndJavaInterface
|
||||
qualifier: two.ObjectWithClassAndJavaInterface
|
||||
light: KtLightClassForDecompiledDeclaration
|
||||
name: ObjectWithClassAndJavaInterface
|
||||
qualifier: two.ObjectWithClassAndJavaInterface
|
||||
superTypes: [
|
||||
PsiType:NonBaseClass
|
||||
PsiType:Runnable
|
||||
]
|
||||
superClass: KtLightClassForDecompiledDeclaration: NonBaseClass (two.NonBaseClass)
|
||||
interfaces: [
|
||||
ClsClassImpl: Runnable (java.lang.Runnable)
|
||||
]
|
||||
supers: [
|
||||
KtLightClassForDecompiledDeclaration: NonBaseClass (two.NonBaseClass)
|
||||
ClsClassImpl: Runnable (java.lang.Runnable)
|
||||
]
|
||||
|
||||
ObjectsKt.class:
|
||||
NonBaseInterface.class:
|
||||
KtClass:
|
||||
line: 6
|
||||
name: NonBaseInterface
|
||||
qualifier: two.NonBaseInterface
|
||||
light: KtLightClassForDecompiledDeclaration
|
||||
name: NonBaseInterface
|
||||
qualifier: two.NonBaseInterface
|
||||
superTypes: [
|
||||
PsiType:BaseInterface
|
||||
]
|
||||
superClass: ClsClassImpl: Object (java.lang.Object)
|
||||
interfaces: [
|
||||
KtLightClassForDecompiledDeclaration: BaseInterface (two.BaseInterface)
|
||||
]
|
||||
supers: [
|
||||
ClsClassImpl: Object (java.lang.Object)
|
||||
KtLightClassForDecompiledDeclaration: BaseInterface (two.BaseInterface)
|
||||
]
|
||||
|
||||
AnotherInterface.class:
|
||||
KtClass:
|
||||
line: 6
|
||||
name: AnotherInterface
|
||||
qualifier: two.AnotherInterface
|
||||
light: KtLightClassForDecompiledDeclaration
|
||||
name: AnotherInterface
|
||||
qualifier: two.AnotherInterface
|
||||
superTypes: [
|
||||
PsiType:Object
|
||||
]
|
||||
superClass: ClsClassImpl: Object (java.lang.Object)
|
||||
interfaces: []
|
||||
supers: [
|
||||
ClsClassImpl: Object (java.lang.Object)
|
||||
]
|
||||
|
||||
ObjectWithNonBaseInterface.class:
|
||||
KtObjectDeclaration:
|
||||
line: 6
|
||||
name: ObjectWithNonBaseInterface
|
||||
qualifier: two.ObjectWithNonBaseInterface
|
||||
light: KtLightClassForDecompiledDeclaration
|
||||
name: ObjectWithNonBaseInterface
|
||||
qualifier: two.ObjectWithNonBaseInterface
|
||||
superTypes: [
|
||||
PsiType:Object
|
||||
PsiType:NonBaseInterface
|
||||
]
|
||||
superClass: ClsClassImpl: Object (java.lang.Object)
|
||||
interfaces: [
|
||||
KtLightClassForDecompiledDeclaration: NonBaseInterface (two.NonBaseInterface)
|
||||
]
|
||||
supers: [
|
||||
ClsClassImpl: Object (java.lang.Object)
|
||||
KtLightClassForDecompiledDeclaration: NonBaseInterface (two.NonBaseInterface)
|
||||
]
|
||||
|
||||
@@ -0,0 +1,303 @@
|
||||
KtClass:
|
||||
line: 5
|
||||
name: BaseInterface
|
||||
qualifier: two.BaseInterface
|
||||
light: SymbolLightClassForInterface
|
||||
name: BaseInterface
|
||||
qualifier: two.BaseInterface
|
||||
superTypes: [
|
||||
PsiType:Object
|
||||
]
|
||||
superClass: ClsClassImpl: Object (java.lang.Object)
|
||||
interfaces: []
|
||||
supers: [
|
||||
ClsClassImpl: Object (java.lang.Object)
|
||||
]
|
||||
|
||||
KtClass:
|
||||
line: 6
|
||||
name: NonBaseInterface
|
||||
qualifier: two.NonBaseInterface
|
||||
light: SymbolLightClassForInterface
|
||||
name: NonBaseInterface
|
||||
qualifier: two.NonBaseInterface
|
||||
superTypes: [
|
||||
PsiType:BaseInterface
|
||||
]
|
||||
superClass: ClsClassImpl: Object (java.lang.Object)
|
||||
interfaces: [
|
||||
SymbolLightClassForInterface: BaseInterface (two.BaseInterface)
|
||||
]
|
||||
supers: [
|
||||
ClsClassImpl: Object (java.lang.Object)
|
||||
SymbolLightClassForInterface: BaseInterface (two.BaseInterface)
|
||||
]
|
||||
|
||||
KtClass:
|
||||
line: 7
|
||||
name: AnotherInterface
|
||||
qualifier: two.AnotherInterface
|
||||
light: SymbolLightClassForInterface
|
||||
name: AnotherInterface
|
||||
qualifier: two.AnotherInterface
|
||||
superTypes: [
|
||||
PsiType:Object
|
||||
]
|
||||
superClass: ClsClassImpl: Object (java.lang.Object)
|
||||
interfaces: []
|
||||
supers: [
|
||||
ClsClassImpl: Object (java.lang.Object)
|
||||
]
|
||||
|
||||
KtClass:
|
||||
line: 9
|
||||
name: BaseClass
|
||||
qualifier: two.BaseClass
|
||||
light: SymbolLightClassForClassOrObject
|
||||
name: BaseClass
|
||||
qualifier: two.BaseClass
|
||||
superTypes: [
|
||||
PsiType:Object
|
||||
]
|
||||
superClass: ClsClassImpl: Object (java.lang.Object)
|
||||
interfaces: []
|
||||
supers: [
|
||||
ClsClassImpl: Object (java.lang.Object)
|
||||
]
|
||||
|
||||
KtClass:
|
||||
line: 10
|
||||
name: NonBaseClass
|
||||
qualifier: two.NonBaseClass
|
||||
light: SymbolLightClassForClassOrObject
|
||||
name: NonBaseClass
|
||||
qualifier: two.NonBaseClass
|
||||
superTypes: [
|
||||
PsiType:BaseClass
|
||||
]
|
||||
superClass: SymbolLightClassForClassOrObject: BaseClass (two.BaseClass)
|
||||
interfaces: []
|
||||
supers: [
|
||||
SymbolLightClassForClassOrObject: BaseClass (two.BaseClass)
|
||||
]
|
||||
|
||||
KtObjectDeclaration:
|
||||
line: 12
|
||||
name: Object
|
||||
qualifier: two.Object
|
||||
light: SymbolLightClassForClassOrObject
|
||||
name: Object
|
||||
qualifier: two.Object
|
||||
superTypes: [
|
||||
PsiType:Object
|
||||
]
|
||||
superClass: ClsClassImpl: Object (java.lang.Object)
|
||||
interfaces: []
|
||||
supers: [
|
||||
ClsClassImpl: Object (java.lang.Object)
|
||||
]
|
||||
|
||||
KtObjectDeclaration:
|
||||
line: 14
|
||||
name: ObjectWithInterface
|
||||
qualifier: two.ObjectWithInterface
|
||||
light: SymbolLightClassForClassOrObject
|
||||
name: ObjectWithInterface
|
||||
qualifier: two.ObjectWithInterface
|
||||
superTypes: [
|
||||
PsiType:Object
|
||||
PsiType:BaseInterface
|
||||
]
|
||||
superClass: ClsClassImpl: Object (java.lang.Object)
|
||||
interfaces: [
|
||||
SymbolLightClassForInterface: BaseInterface (two.BaseInterface)
|
||||
]
|
||||
supers: [
|
||||
ClsClassImpl: Object (java.lang.Object)
|
||||
SymbolLightClassForInterface: BaseInterface (two.BaseInterface)
|
||||
]
|
||||
|
||||
KtObjectDeclaration:
|
||||
line: 16
|
||||
name: ObjectWithNonBaseInterface
|
||||
qualifier: two.ObjectWithNonBaseInterface
|
||||
light: SymbolLightClassForClassOrObject
|
||||
name: ObjectWithNonBaseInterface
|
||||
qualifier: two.ObjectWithNonBaseInterface
|
||||
superTypes: [
|
||||
PsiType:Object
|
||||
PsiType:NonBaseInterface
|
||||
]
|
||||
superClass: ClsClassImpl: Object (java.lang.Object)
|
||||
interfaces: [
|
||||
SymbolLightClassForInterface: NonBaseInterface (two.NonBaseInterface)
|
||||
]
|
||||
supers: [
|
||||
ClsClassImpl: Object (java.lang.Object)
|
||||
SymbolLightClassForInterface: NonBaseInterface (two.NonBaseInterface)
|
||||
]
|
||||
|
||||
KtObjectDeclaration:
|
||||
line: 18
|
||||
name: ObjectWithClass
|
||||
qualifier: two.ObjectWithClass
|
||||
light: SymbolLightClassForClassOrObject
|
||||
name: ObjectWithClass
|
||||
qualifier: two.ObjectWithClass
|
||||
superTypes: [
|
||||
PsiType:BaseClass
|
||||
]
|
||||
superClass: SymbolLightClassForClassOrObject: BaseClass (two.BaseClass)
|
||||
interfaces: []
|
||||
supers: [
|
||||
SymbolLightClassForClassOrObject: BaseClass (two.BaseClass)
|
||||
]
|
||||
|
||||
KtObjectDeclaration:
|
||||
line: 20
|
||||
name: ObjectWithClassAndInterface
|
||||
qualifier: two.ObjectWithClassAndInterface
|
||||
light: SymbolLightClassForClassOrObject
|
||||
name: ObjectWithClassAndInterface
|
||||
qualifier: two.ObjectWithClassAndInterface
|
||||
superTypes: [
|
||||
PsiType:NonBaseClass
|
||||
PsiType:NonBaseInterface
|
||||
]
|
||||
superClass: SymbolLightClassForClassOrObject: NonBaseClass (two.NonBaseClass)
|
||||
interfaces: [
|
||||
SymbolLightClassForInterface: NonBaseInterface (two.NonBaseInterface)
|
||||
]
|
||||
supers: [
|
||||
SymbolLightClassForClassOrObject: NonBaseClass (two.NonBaseClass)
|
||||
SymbolLightClassForInterface: NonBaseInterface (two.NonBaseInterface)
|
||||
]
|
||||
|
||||
KtObjectDeclaration:
|
||||
line: 21
|
||||
name: ObjectWithClassAndJavaInterface
|
||||
qualifier: two.ObjectWithClassAndJavaInterface
|
||||
light: SymbolLightClassForClassOrObject
|
||||
name: ObjectWithClassAndJavaInterface
|
||||
qualifier: two.ObjectWithClassAndJavaInterface
|
||||
superTypes: [
|
||||
PsiType:NonBaseClass
|
||||
PsiType:Runnable
|
||||
]
|
||||
superClass: SymbolLightClassForClassOrObject: NonBaseClass (two.NonBaseClass)
|
||||
interfaces: [
|
||||
ClsClassImpl: Runnable (java.lang.Runnable)
|
||||
]
|
||||
supers: [
|
||||
SymbolLightClassForClassOrObject: NonBaseClass (two.NonBaseClass)
|
||||
ClsClassImpl: Runnable (java.lang.Runnable)
|
||||
]
|
||||
|
||||
KtObjectDeclaration:
|
||||
line: 25
|
||||
name: null
|
||||
qualifier: null
|
||||
light: SymbolLightClassForAnonymousObject
|
||||
name: null
|
||||
qualifier: null
|
||||
superTypes: [
|
||||
PsiType:BaseClass
|
||||
]
|
||||
superClass: SymbolLightClassForClassOrObject: BaseClass (two.BaseClass)
|
||||
interfaces: []
|
||||
supers: [
|
||||
SymbolLightClassForClassOrObject: BaseClass (two.BaseClass)
|
||||
]
|
||||
|
||||
KtObjectDeclaration:
|
||||
line: 26
|
||||
name: null
|
||||
qualifier: null
|
||||
light: SymbolLightClassForAnonymousObject
|
||||
name: null
|
||||
qualifier: null
|
||||
superTypes: [
|
||||
PsiType:NonBaseClass
|
||||
]
|
||||
superClass: SymbolLightClassForClassOrObject: NonBaseClass (two.NonBaseClass)
|
||||
interfaces: []
|
||||
supers: [
|
||||
SymbolLightClassForClassOrObject: NonBaseClass (two.NonBaseClass)
|
||||
]
|
||||
|
||||
KtObjectDeclaration:
|
||||
line: 27
|
||||
name: null
|
||||
qualifier: null
|
||||
light: SymbolLightClassForAnonymousObject
|
||||
name: null
|
||||
qualifier: null
|
||||
superTypes: [
|
||||
PsiType:Object
|
||||
PsiType:BaseInterface
|
||||
]
|
||||
superClass: ClsClassImpl: Object (java.lang.Object)
|
||||
interfaces: [
|
||||
SymbolLightClassForInterface: BaseInterface (two.BaseInterface)
|
||||
]
|
||||
supers: [
|
||||
ClsClassImpl: Object (java.lang.Object)
|
||||
SymbolLightClassForInterface: BaseInterface (two.BaseInterface)
|
||||
]
|
||||
|
||||
KtObjectDeclaration:
|
||||
line: 28
|
||||
name: null
|
||||
qualifier: null
|
||||
light: SymbolLightClassForAnonymousObject
|
||||
name: null
|
||||
qualifier: null
|
||||
superTypes: [
|
||||
PsiType:Object
|
||||
PsiType:NonBaseInterface
|
||||
]
|
||||
superClass: ClsClassImpl: Object (java.lang.Object)
|
||||
interfaces: [
|
||||
SymbolLightClassForInterface: NonBaseInterface (two.NonBaseInterface)
|
||||
]
|
||||
supers: [
|
||||
ClsClassImpl: Object (java.lang.Object)
|
||||
SymbolLightClassForInterface: NonBaseInterface (two.NonBaseInterface)
|
||||
]
|
||||
|
||||
KtObjectDeclaration:
|
||||
line: 29
|
||||
name: null
|
||||
qualifier: null
|
||||
light: SymbolLightClassForAnonymousObject
|
||||
name: null
|
||||
qualifier: null
|
||||
superTypes: [
|
||||
PsiType:BaseClass
|
||||
]
|
||||
superClass: SymbolLightClassForClassOrObject: BaseClass (two.BaseClass)
|
||||
interfaces: []
|
||||
supers: [
|
||||
SymbolLightClassForClassOrObject: BaseClass (two.BaseClass)
|
||||
]
|
||||
|
||||
KtObjectDeclaration:
|
||||
line: 30
|
||||
name: null
|
||||
qualifier: null
|
||||
light: SymbolLightClassForAnonymousObject
|
||||
name: null
|
||||
qualifier: null
|
||||
superTypes: [
|
||||
PsiType:Object
|
||||
PsiType:BaseInterface
|
||||
]
|
||||
superClass: ClsClassImpl: Object (java.lang.Object)
|
||||
interfaces: [
|
||||
SymbolLightClassForInterface: BaseInterface (two.BaseInterface)
|
||||
]
|
||||
supers: [
|
||||
ClsClassImpl: Object (java.lang.Object)
|
||||
SymbolLightClassForInterface: BaseInterface (two.BaseInterface)
|
||||
]
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
one.two.MyInterface.DefaultImpls|java.lang.Object|false| -> false
|
||||
one.two.MyInterface.DefaultImpls|java.lang.Object|true| -> false
|
||||
@@ -0,0 +1,9 @@
|
||||
// FQ_NAME: one.two.MyInterface.DefaultImpls
|
||||
|
||||
package one.two
|
||||
|
||||
interface MyInterface {
|
||||
fun functionWithDefaultImplementation() {
|
||||
|
||||
}
|
||||
}
|
||||
+11
@@ -0,0 +1,11 @@
|
||||
KtLightClassForDecompiledDeclaration
|
||||
name: DefaultImpls
|
||||
qualifier: one.two.MyInterface.DefaultImpls
|
||||
superTypes: [
|
||||
PsiType:Object
|
||||
]
|
||||
superClass: ClsClassImpl: Object (java.lang.Object)
|
||||
interfaces: []
|
||||
supers: [
|
||||
ClsClassImpl: Object (java.lang.Object)
|
||||
]
|
||||
@@ -0,0 +1,11 @@
|
||||
SymbolLightClassForInterfaceDefaultImpls
|
||||
name: DefaultImpls
|
||||
qualifier: one.two.MyInterface.DefaultImpls
|
||||
superTypes: [
|
||||
PsiType:Object
|
||||
]
|
||||
superClass: ClsClassImpl: Object (java.lang.Object)
|
||||
interfaces: []
|
||||
supers: [
|
||||
ClsClassImpl: Object (java.lang.Object)
|
||||
]
|
||||
+44
@@ -0,0 +1,44 @@
|
||||
/*
|
||||
* Copyright 2010-2022 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.light.classes.symbol.base
|
||||
|
||||
import org.jetbrains.kotlin.analysis.test.framework.test.configurators.AnalysisApiTestConfigurator
|
||||
import org.jetbrains.kotlin.analysis.utils.printer.prettyPrint
|
||||
import org.jetbrains.kotlin.asJava.LightClassTestCommon
|
||||
import org.jetbrains.kotlin.psi.KtFile
|
||||
import org.jetbrains.kotlin.test.builders.TestConfigurationBuilder
|
||||
import org.jetbrains.kotlin.test.directives.model.SimpleDirectivesContainer
|
||||
import org.jetbrains.kotlin.test.directives.model.singleValue
|
||||
import org.jetbrains.kotlin.test.model.TestModule
|
||||
import org.jetbrains.kotlin.test.services.TestServices
|
||||
import org.jetbrains.kotlin.test.services.assertions
|
||||
|
||||
abstract class AbstractSymbolLightClassesStructureByFqNameTest(
|
||||
configurator: AnalysisApiTestConfigurator,
|
||||
testPrefix: String,
|
||||
stopIfCompilationErrorDirectivePresent: Boolean,
|
||||
) : AbstractSymbolLightClassesStructureTest(configurator, testPrefix, stopIfCompilationErrorDirectivePresent) {
|
||||
override fun configureTest(builder: TestConfigurationBuilder) {
|
||||
super.configureTest(builder)
|
||||
builder.useDirectives(Directives)
|
||||
}
|
||||
|
||||
override fun doTestByFileStructure(ktFiles: List<KtFile>, module: TestModule, testServices: TestServices) {
|
||||
val result = prettyPrint {
|
||||
val fqName = module.directives.singleValue(Directives.FQ_NAME)
|
||||
val psiClass = findLightClass(fqName, ktFiles.first().project)
|
||||
psiClass?.let { handleClass(it) } ?: append(LightClassTestCommon.NOT_GENERATED_DIRECTIVE)
|
||||
}
|
||||
|
||||
testServices.assertions.assertEqualsToTestDataFileSibling(result, testPrefix = testPrefix)
|
||||
|
||||
doTestInheritors(ktFiles, testServices)
|
||||
}
|
||||
|
||||
private object Directives : SimpleDirectivesContainer() {
|
||||
val FQ_NAME by stringDirective(description = "Light class to render")
|
||||
}
|
||||
}
|
||||
+166
@@ -0,0 +1,166 @@
|
||||
/*
|
||||
* Copyright 2010-2022 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.light.classes.symbol.base
|
||||
|
||||
import com.intellij.openapi.project.Project
|
||||
import com.intellij.psi.JavaPsiFacade
|
||||
import com.intellij.psi.PsiClass
|
||||
import com.intellij.psi.search.GlobalSearchScope
|
||||
import org.jetbrains.kotlin.analysis.test.framework.test.configurators.AnalysisApiTestConfigurator
|
||||
import org.jetbrains.kotlin.analysis.utils.printer.PrettyPrinter
|
||||
import org.jetbrains.kotlin.analysis.utils.printer.prettyPrint
|
||||
import org.jetbrains.kotlin.asJava.toLightClass
|
||||
import org.jetbrains.kotlin.psi.KtClassOrObject
|
||||
import org.jetbrains.kotlin.psi.KtFile
|
||||
import org.jetbrains.kotlin.psi.psiUtil.forEachDescendantOfType
|
||||
import org.jetbrains.kotlin.psi.psiUtil.startOffset
|
||||
import org.jetbrains.kotlin.test.model.TestModule
|
||||
import org.jetbrains.kotlin.test.services.TestServices
|
||||
import org.jetbrains.kotlin.test.services.assertions
|
||||
import java.nio.file.Path
|
||||
import kotlin.io.path.forEachLine
|
||||
import kotlin.io.path.notExists
|
||||
|
||||
private const val INHERITORS_EXTENSION = "inh.txt"
|
||||
|
||||
abstract class AbstractSymbolLightClassesStructureTest(
|
||||
configurator: AnalysisApiTestConfigurator,
|
||||
protected val testPrefix: String,
|
||||
override val stopIfCompilationErrorDirectivePresent: Boolean,
|
||||
) : AbstractSymbolLightClassesTestBase(configurator) {
|
||||
override val currentExtension: String get() = throw UnsupportedOperationException()
|
||||
|
||||
override fun doTestByFileStructure(ktFiles: List<KtFile>, module: TestModule, testServices: TestServices) {
|
||||
val result = prettyPrint {
|
||||
for (ktFile in ktFiles) {
|
||||
if (ktFiles.size > 1) {
|
||||
appendLine("${ktFile.name}:")
|
||||
withIndent {
|
||||
handleFile(ktFile)
|
||||
}
|
||||
} else {
|
||||
handleFile(ktFile)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
testServices.assertions.assertEqualsToTestDataFileSibling(result, testPrefix = testPrefix)
|
||||
|
||||
doTestInheritors(ktFiles, testServices)
|
||||
}
|
||||
|
||||
protected fun doTestInheritors(ktFiles: List<KtFile>, testServices: TestServices) {
|
||||
val testData = getTestDataFileSiblingPath(extension = INHERITORS_EXTENSION, testPrefix = testPrefix)
|
||||
if (testData.notExists()) return
|
||||
val project = ktFiles.first().project
|
||||
|
||||
val queries = parseInheritorsFile(testData)
|
||||
val result = buildString {
|
||||
for (query in queries) {
|
||||
append(query.fqNameToCheck)
|
||||
append('|')
|
||||
append(query.baseFqName)
|
||||
append('|')
|
||||
append(query.deep.toString())
|
||||
append("| -> ")
|
||||
appendLine(query.isInheritor(project).toString())
|
||||
}
|
||||
}
|
||||
|
||||
testServices.assertions.assertEqualsToTestDataFileSibling(
|
||||
actual = result,
|
||||
testPrefix = testPrefix,
|
||||
extension = INHERITORS_EXTENSION,
|
||||
)
|
||||
}
|
||||
|
||||
private fun InheritorStructure.isInheritor(project: Project): Boolean {
|
||||
val lightClass = findLightClass(fqNameToCheck, project) ?: error("Can't find light class by '$fqNameToCheck' qualifier")
|
||||
val baseClass = JavaPsiFacade.getInstance(project).findClass(baseFqName, GlobalSearchScope.allScope(project))
|
||||
?: error("Can't find class by '$baseFqName' qualifier")
|
||||
|
||||
return lightClass.isInheritor(/* baseClass = */ baseClass, /* checkDeep = */ deep)
|
||||
}
|
||||
|
||||
private fun parseInheritorsFile(path: Path): Collection<InheritorStructure> = buildList {
|
||||
path.forEachLine { line: String ->
|
||||
if (line.isBlank()) return@forEachLine
|
||||
|
||||
val arguments = line.split('|')
|
||||
val fqNameToCheck = arguments.getOrNull(0) ?: wrongInheritorStructure(line)
|
||||
val baseFqName = arguments.getOrNull(1) ?: wrongInheritorStructure(line)
|
||||
val deep = arguments.getOrNull(2)?.toBoolean() ?: wrongInheritorStructure(line)
|
||||
add(InheritorStructure(fqNameToCheck = fqNameToCheck, baseFqName = baseFqName, deep = deep))
|
||||
}
|
||||
}.toSet()
|
||||
|
||||
private fun wrongInheritorStructure(line: String): Nothing = error("Can't parse '$line' line correctly")
|
||||
|
||||
private fun PrettyPrinter.handleFile(ktFile: KtFile) {
|
||||
val text = ktFile.text
|
||||
ktFile.forEachDescendantOfType<KtClassOrObject> { classOrObject ->
|
||||
handleClassDeclaration(classOrObject, text)
|
||||
appendLine()
|
||||
}
|
||||
}
|
||||
|
||||
private fun PrettyPrinter.handleClassDeclaration(declaration: KtClassOrObject, fileText: String) {
|
||||
appendLine("${declaration::class.simpleName}:")
|
||||
withIndent {
|
||||
val lineNumber = fileText.subSequence(0, declaration.startOffset).count { it == '\n' } + 1
|
||||
appendLine("line: $lineNumber")
|
||||
appendLine("name: ${declaration.name}")
|
||||
appendLine("qualifier: ${declaration.fqName}")
|
||||
append("light: ")
|
||||
val lightClass = declaration.toLightClass()
|
||||
if (lightClass != null) {
|
||||
handleClass(lightClass)
|
||||
} else {
|
||||
appendLine("null")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
protected fun PrettyPrinter.handleClass(psiClass: PsiClass) {
|
||||
appendLine(psiClass::class.simpleName)
|
||||
withIndent {
|
||||
appendLine("name: ${psiClass.name}")
|
||||
appendLine("qualifier: ${psiClass.qualifiedName}")
|
||||
appendCollection("superTypes", psiClass.superTypes.asList()) { it.toString() }
|
||||
appendLine("superClass: ${psiClass.superClass?.render()}")
|
||||
appendCollection("interfaces", psiClass.interfaces.asList()) { it.render() }
|
||||
appendCollection("supers", psiClass.supers.asList()) { it.render() }
|
||||
}
|
||||
}
|
||||
|
||||
private fun PsiClass.render(): String = "${this::class.simpleName}: $name ($qualifiedName)"
|
||||
|
||||
private inline fun <T> PrettyPrinter.appendCollection(
|
||||
name: String,
|
||||
collection: Collection<T>,
|
||||
crossinline renderer: (T) -> CharSequence,
|
||||
) {
|
||||
append("$name: ")
|
||||
if (collection.isEmpty()) {
|
||||
appendLine("[]")
|
||||
return
|
||||
}
|
||||
|
||||
withIndentInSquareBrackets {
|
||||
printCollection(collection, separator = "\n") {
|
||||
append(renderer(it))
|
||||
}
|
||||
}
|
||||
|
||||
appendLine()
|
||||
}
|
||||
|
||||
override fun getRenderResult(ktFile: KtFile, testDataFile: Path, module: TestModule, project: Project): String {
|
||||
throw UnsupportedOperationException()
|
||||
}
|
||||
}
|
||||
|
||||
private data class InheritorStructure(val fqNameToCheck: String, val baseFqName: String, val deep: Boolean)
|
||||
+15
@@ -0,0 +1,15 @@
|
||||
/*
|
||||
* Copyright 2010-2022 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.light.classes.symbol.decompiled
|
||||
|
||||
import org.jetbrains.kotlin.light.classes.symbol.base.AbstractSymbolLightClassesStructureByFqNameTest
|
||||
import org.jetbrains.kotlin.light.classes.symbol.decompiled.test.configurators.AnalysisApiSymbolLightClassesDecompiledTestConfigurator
|
||||
|
||||
abstract class AbstractSymbolLightClassesStructureByFqNameForLibraryTest : AbstractSymbolLightClassesStructureByFqNameTest(
|
||||
configurator = AnalysisApiSymbolLightClassesDecompiledTestConfigurator,
|
||||
testPrefix = "lib",
|
||||
stopIfCompilationErrorDirectivePresent = true,
|
||||
)
|
||||
+15
@@ -0,0 +1,15 @@
|
||||
/*
|
||||
* Copyright 2010-2022 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.light.classes.symbol.decompiled
|
||||
|
||||
import org.jetbrains.kotlin.light.classes.symbol.base.AbstractSymbolLightClassesStructureTest
|
||||
import org.jetbrains.kotlin.light.classes.symbol.decompiled.test.configurators.AnalysisApiSymbolLightClassesDecompiledTestConfigurator
|
||||
|
||||
abstract class AbstractSymbolLightClassesStructureForLibraryTest : AbstractSymbolLightClassesStructureTest(
|
||||
configurator = AnalysisApiSymbolLightClassesDecompiledTestConfigurator,
|
||||
testPrefix = "lib",
|
||||
stopIfCompilationErrorDirectivePresent = true,
|
||||
)
|
||||
+32
@@ -0,0 +1,32 @@
|
||||
/*
|
||||
* Copyright 2010-2022 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.light.classes.symbol.decompiled;
|
||||
|
||||
import com.intellij.testFramework.TestDataPath;
|
||||
import org.jetbrains.kotlin.test.util.KtTestUtil;
|
||||
import org.jetbrains.kotlin.test.TestMetadata;
|
||||
import org.junit.jupiter.api.Nested;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
/** This class is generated by {@link org.jetbrains.kotlin.generators.tests.analysis.api.GenerateAnalysisApiTestsKt}. DO NOT MODIFY MANUALLY */
|
||||
@SuppressWarnings("all")
|
||||
@TestMetadata("analysis/symbol-light-classes/testData/structureByFqName")
|
||||
@TestDataPath("$PROJECT_ROOT")
|
||||
public class SymbolLightClassesStructureByFqNameForLibraryTestGenerated extends AbstractSymbolLightClassesStructureByFqNameForLibraryTest {
|
||||
@Test
|
||||
public void testAllFilesPresentInStructureByFqName() throws Exception {
|
||||
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/symbol-light-classes/testData/structureByFqName"), Pattern.compile("^(.+)\\.(kt)$"), null, true);
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("DefaultImpls.kt")
|
||||
public void testDefaultImpls() throws Exception {
|
||||
runTest("analysis/symbol-light-classes/testData/structureByFqName/DefaultImpls.kt");
|
||||
}
|
||||
}
|
||||
+62
@@ -0,0 +1,62 @@
|
||||
/*
|
||||
* Copyright 2010-2022 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.light.classes.symbol.decompiled;
|
||||
|
||||
import com.intellij.testFramework.TestDataPath;
|
||||
import org.jetbrains.kotlin.test.util.KtTestUtil;
|
||||
import org.jetbrains.kotlin.test.TestMetadata;
|
||||
import org.junit.jupiter.api.Nested;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
/** This class is generated by {@link org.jetbrains.kotlin.generators.tests.analysis.api.GenerateAnalysisApiTestsKt}. DO NOT MODIFY MANUALLY */
|
||||
@SuppressWarnings("all")
|
||||
@TestMetadata("analysis/symbol-light-classes/testData/structure")
|
||||
@TestDataPath("$PROJECT_ROOT")
|
||||
public class SymbolLightClassesStructureForLibraryTestGenerated extends AbstractSymbolLightClassesStructureForLibraryTest {
|
||||
@Test
|
||||
public void testAllFilesPresentInStructure() throws Exception {
|
||||
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/symbol-light-classes/testData/structure"), Pattern.compile("^(.+)\\.(kt)$"), null, true);
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("Annotations.kt")
|
||||
public void testAnnotations() throws Exception {
|
||||
runTest("analysis/symbol-light-classes/testData/structure/Annotations.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("Classes.kt")
|
||||
public void testClasses() throws Exception {
|
||||
runTest("analysis/symbol-light-classes/testData/structure/Classes.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("EnumEntries.kt")
|
||||
public void testEnumEntries() throws Exception {
|
||||
runTest("analysis/symbol-light-classes/testData/structure/EnumEntries.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("InterfaceAndClasses.kt")
|
||||
public void testInterfaceAndClasses() throws Exception {
|
||||
runTest("analysis/symbol-light-classes/testData/structure/InterfaceAndClasses.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("Interfaces.kt")
|
||||
public void testInterfaces() throws Exception {
|
||||
runTest("analysis/symbol-light-classes/testData/structure/Interfaces.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("Objects.kt")
|
||||
public void testObjects() throws Exception {
|
||||
runTest("analysis/symbol-light-classes/testData/structure/Objects.kt");
|
||||
}
|
||||
}
|
||||
+15
@@ -0,0 +1,15 @@
|
||||
/*
|
||||
* Copyright 2010-2022 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.light.classes.symbol.source
|
||||
|
||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.test.configurators.AnalysisApiFirSourceTestConfigurator
|
||||
import org.jetbrains.kotlin.light.classes.symbol.base.AbstractSymbolLightClassesStructureByFqNameTest
|
||||
|
||||
abstract class AbstractSymbolLightClassesStructureByFqNameForSourceTest : AbstractSymbolLightClassesStructureByFqNameTest(
|
||||
configurator = AnalysisApiFirSourceTestConfigurator(analyseInDependentSession = false),
|
||||
testPrefix = "fir",
|
||||
stopIfCompilationErrorDirectivePresent = false,
|
||||
)
|
||||
+15
@@ -0,0 +1,15 @@
|
||||
/*
|
||||
* Copyright 2010-2022 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.light.classes.symbol.source
|
||||
|
||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.test.configurators.AnalysisApiFirSourceTestConfigurator
|
||||
import org.jetbrains.kotlin.light.classes.symbol.base.AbstractSymbolLightClassesStructureTest
|
||||
|
||||
abstract class AbstractSymbolLightClassesStructureForSourceTest : AbstractSymbolLightClassesStructureTest(
|
||||
configurator = AnalysisApiFirSourceTestConfigurator(analyseInDependentSession = false),
|
||||
testPrefix = "fir",
|
||||
stopIfCompilationErrorDirectivePresent = false,
|
||||
)
|
||||
+32
@@ -0,0 +1,32 @@
|
||||
/*
|
||||
* Copyright 2010-2022 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.light.classes.symbol.source;
|
||||
|
||||
import com.intellij.testFramework.TestDataPath;
|
||||
import org.jetbrains.kotlin.test.util.KtTestUtil;
|
||||
import org.jetbrains.kotlin.test.TestMetadata;
|
||||
import org.junit.jupiter.api.Nested;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
/** This class is generated by {@link org.jetbrains.kotlin.generators.tests.analysis.api.GenerateAnalysisApiTestsKt}. DO NOT MODIFY MANUALLY */
|
||||
@SuppressWarnings("all")
|
||||
@TestMetadata("analysis/symbol-light-classes/testData/structureByFqName")
|
||||
@TestDataPath("$PROJECT_ROOT")
|
||||
public class SymbolLightClassesStructureByFqNameForSourceTestGenerated extends AbstractSymbolLightClassesStructureByFqNameForSourceTest {
|
||||
@Test
|
||||
public void testAllFilesPresentInStructureByFqName() throws Exception {
|
||||
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/symbol-light-classes/testData/structureByFqName"), Pattern.compile("^(.+)\\.(kt)$"), null, true);
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("DefaultImpls.kt")
|
||||
public void testDefaultImpls() throws Exception {
|
||||
runTest("analysis/symbol-light-classes/testData/structureByFqName/DefaultImpls.kt");
|
||||
}
|
||||
}
|
||||
+62
@@ -0,0 +1,62 @@
|
||||
/*
|
||||
* Copyright 2010-2022 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.light.classes.symbol.source;
|
||||
|
||||
import com.intellij.testFramework.TestDataPath;
|
||||
import org.jetbrains.kotlin.test.util.KtTestUtil;
|
||||
import org.jetbrains.kotlin.test.TestMetadata;
|
||||
import org.junit.jupiter.api.Nested;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
/** This class is generated by {@link org.jetbrains.kotlin.generators.tests.analysis.api.GenerateAnalysisApiTestsKt}. DO NOT MODIFY MANUALLY */
|
||||
@SuppressWarnings("all")
|
||||
@TestMetadata("analysis/symbol-light-classes/testData/structure")
|
||||
@TestDataPath("$PROJECT_ROOT")
|
||||
public class SymbolLightClassesStructureForSourceTestGenerated extends AbstractSymbolLightClassesStructureForSourceTest {
|
||||
@Test
|
||||
public void testAllFilesPresentInStructure() throws Exception {
|
||||
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/symbol-light-classes/testData/structure"), Pattern.compile("^(.+)\\.(kt)$"), null, true);
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("Annotations.kt")
|
||||
public void testAnnotations() throws Exception {
|
||||
runTest("analysis/symbol-light-classes/testData/structure/Annotations.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("Classes.kt")
|
||||
public void testClasses() throws Exception {
|
||||
runTest("analysis/symbol-light-classes/testData/structure/Classes.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("EnumEntries.kt")
|
||||
public void testEnumEntries() throws Exception {
|
||||
runTest("analysis/symbol-light-classes/testData/structure/EnumEntries.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("InterfaceAndClasses.kt")
|
||||
public void testInterfaceAndClasses() throws Exception {
|
||||
runTest("analysis/symbol-light-classes/testData/structure/InterfaceAndClasses.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("Interfaces.kt")
|
||||
public void testInterfaces() throws Exception {
|
||||
runTest("analysis/symbol-light-classes/testData/structure/Interfaces.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("Objects.kt")
|
||||
public void testObjects() throws Exception {
|
||||
runTest("analysis/symbol-light-classes/testData/structure/Objects.kt");
|
||||
}
|
||||
}
|
||||
+29
-10
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2010-2021 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||
* Copyright 2010-2022 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.
|
||||
*/
|
||||
|
||||
@@ -7,14 +7,8 @@ package org.jetbrains.kotlin.generators.tests.analysis.api
|
||||
|
||||
import org.jetbrains.kotlin.generators.TestGroupSuite
|
||||
import org.jetbrains.kotlin.generators.util.TestGeneratorUtil
|
||||
import org.jetbrains.kotlin.light.classes.symbol.decompiled.AbstractSymbolLightClassesParentingForLibraryTest
|
||||
import org.jetbrains.kotlin.light.classes.symbol.decompiled.AbstractSymbolLightClassesFacadeForLibraryTest
|
||||
import org.jetbrains.kotlin.light.classes.symbol.decompiled.AbstractSymbolLightClassesForLibraryTest
|
||||
import org.jetbrains.kotlin.light.classes.symbol.decompiled.AbstractSymbolLightClassesLoadingForLibraryTest
|
||||
import org.jetbrains.kotlin.light.classes.symbol.source.AbstractSymbolLightClassesParentingForSourceTest
|
||||
import org.jetbrains.kotlin.light.classes.symbol.source.AbstractSymbolLightClassesFacadeForSourceTest
|
||||
import org.jetbrains.kotlin.light.classes.symbol.source.AbstractSymbolLightClassesForSourceTest
|
||||
import org.jetbrains.kotlin.light.classes.symbol.source.AbstractSymbolLightClassesLoadingForSourceTest
|
||||
import org.jetbrains.kotlin.light.classes.symbol.decompiled.*
|
||||
import org.jetbrains.kotlin.light.classes.symbol.source.*
|
||||
|
||||
internal fun TestGroupSuite.generateSymbolLightClassesTests() {
|
||||
testGroup(
|
||||
@@ -73,4 +67,29 @@ internal fun TestGroupSuite.generateSymbolLightClassesTests() {
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
testGroup(
|
||||
"analysis/symbol-light-classes/tests",
|
||||
"analysis/symbol-light-classes/testData",
|
||||
) {
|
||||
run {
|
||||
testClass<AbstractSymbolLightClassesStructureForSourceTest> {
|
||||
model("structure", pattern = TestGeneratorUtil.KT)
|
||||
}
|
||||
|
||||
testClass<AbstractSymbolLightClassesStructureForLibraryTest> {
|
||||
model("structure", pattern = TestGeneratorUtil.KT)
|
||||
}
|
||||
}
|
||||
|
||||
run {
|
||||
testClass<AbstractSymbolLightClassesStructureByFqNameForSourceTest> {
|
||||
model("structureByFqName", pattern = TestGeneratorUtil.KT)
|
||||
}
|
||||
|
||||
testClass<AbstractSymbolLightClassesStructureByFqNameForLibraryTest> {
|
||||
model("structureByFqName", pattern = TestGeneratorUtil.KT)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user