[Analysis API] support Java compilation in tests

Previously we just skipped Java sources.
The order of classes in light classes test data is changed due to
differences in implementations of `compileLibraryToJar` and `runJvmCompiler`

^KT-62892
This commit is contained in:
Dmitrii Gridin
2024-01-03 14:23:48 +01:00
committed by Space Team
parent a9f85d75f4
commit 6c7d1babf0
14 changed files with 448 additions and 322 deletions
@@ -15,23 +15,6 @@ FinalClass.class:
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
@@ -49,6 +32,23 @@ ChildOfOpen.class:
KtLightClassForDecompiledDeclaration: OpenClassFromAbstractClass (cba.OpenClassFromAbstractClass)
]
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)
]
OpenClassFromAbstractClass.class:
KtClass:
line: 6
@@ -1,20 +1,3 @@
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:
KtClass:
line: 6
@@ -48,6 +31,23 @@ EnumClassWithInterface.class:
qualifier: one.two.EnumClassWithInterface.NewSecondEntryWithBody
light: null
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)
]
EnumEntries.class:
KtClass:
line: 6
@@ -1,60 +1,39 @@
OpenBaseClass.class:
FinalClassWithComplexInterface.class:
KtClass:
line: 6
name: OpenBaseClass
qualifier: my.OpenBaseClass
name: FinalClassWithComplexInterface
qualifier: my.FinalClassWithComplexInterface
light: KtLightClassForDecompiledDeclaration
name: OpenBaseClass
qualifier: my.OpenBaseClass
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)
]
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: [
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)
KtLightClassForDecompiledDeclaration: OpenComplexClass (my.OpenComplexClass)
]
BaseInterface1.class:
@@ -115,21 +94,111 @@ FinalClassWithSeveralBaseInterfaces.class:
KtLightClassForDecompiledDeclaration: BaseInterface2 (my.BaseInterface2)
]
OnlyTransitiveInterface.class:
ComplexInterface.class:
KtClass:
line: 6
name: OnlyTransitiveInterface
qualifier: my.OnlyTransitiveInterface
name: ComplexInterface
qualifier: my.ComplexInterface
light: KtLightClassForDecompiledDeclaration
name: OnlyTransitiveInterface
qualifier: my.OnlyTransitiveInterface
name: ComplexInterface
qualifier: my.ComplexInterface
superTypes: [
PsiType:OpenComplexClass
PsiType:BaseInterface1
PsiType:BaseInterface2
]
superClass: ClsClassImpl: Object (java.lang.Object)
interfaces: [
KtLightClassForDecompiledDeclaration: BaseInterface1 (my.BaseInterface1)
KtLightClassForDecompiledDeclaration: BaseInterface2 (my.BaseInterface2)
]
superClass: KtLightClassForDecompiledDeclaration: OpenComplexClass (my.OpenComplexClass)
interfaces: []
supers: [
KtLightClassForDecompiledDeclaration: OpenComplexClass (my.OpenComplexClass)
ClsClassImpl: Object (java.lang.Object)
KtLightClassForDecompiledDeclaration: BaseInterface1 (my.BaseInterface1)
KtLightClassForDecompiledDeclaration: BaseInterface2 (my.BaseInterface2)
]
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)
]
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)
]
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)
]
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)
]
AbstractClassWithComplexInterface.class:
@@ -177,89 +246,20 @@ FinalClassWithComplexInterfaceAndBaseInterface.class:
KtLightClassForDecompiledDeclaration: BaseInterface1 (my.BaseInterface1)
]
FinalClassWithComplexInterface.class:
OpenBaseClass.class:
KtClass:
line: 6
name: FinalClassWithComplexInterface
qualifier: my.FinalClassWithComplexInterface
name: OpenBaseClass
qualifier: my.OpenBaseClass
light: KtLightClassForDecompiledDeclaration
name: FinalClassWithComplexInterface
qualifier: my.FinalClassWithComplexInterface
name: OpenBaseClass
qualifier: my.OpenBaseClass
superTypes: [
PsiType:Object
PsiType:ComplexInterface
]
superClass: ClsClassImpl: Object (java.lang.Object)
interfaces: [
KtLightClassForDecompiledDeclaration: ComplexInterface (my.ComplexInterface)
]
interfaces: []
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)
]
@@ -15,6 +15,23 @@ SingleInterface.class:
ClsClassImpl: Object (java.lang.Object)
]
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)
]
BaseInterface2.class:
KtClass:
line: 6
@@ -32,26 +49,6 @@ BaseInterface2.class:
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
@@ -75,20 +72,23 @@ InterfaceWithBase.class:
KtLightClassForDecompiledDeclaration: BaseInterface2 (abc.BaseInterface2)
]
BaseInterface1.class:
InterfaceWithTransitive.class:
KtClass:
line: 6
name: BaseInterface1
qualifier: abc.BaseInterface1
name: InterfaceWithTransitive
qualifier: abc.InterfaceWithTransitive
light: KtLightClassForDecompiledDeclaration
name: BaseInterface1
qualifier: abc.BaseInterface1
name: InterfaceWithTransitive
qualifier: abc.InterfaceWithTransitive
superTypes: [
PsiType:Object
PsiType:InterfaceWithBase
]
superClass: ClsClassImpl: Object (java.lang.Object)
interfaces: []
interfaces: [
KtLightClassForDecompiledDeclaration: InterfaceWithBase (abc.InterfaceWithBase)
]
supers: [
ClsClassImpl: Object (java.lang.Object)
KtLightClassForDecompiledDeclaration: InterfaceWithBase (abc.InterfaceWithBase)
]
@@ -1,3 +1,80 @@
ObjectsKt.class:
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)
]
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)
]
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)
]
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)
]
ObjectWithClassAndInterface.class:
KtObjectDeclaration:
line: 6
@@ -19,14 +96,14 @@ ObjectWithClassAndInterface.class:
KtLightClassForDecompiledDeclaration: NonBaseInterface (two.NonBaseInterface)
]
BaseInterface.class:
AnotherInterface.class:
KtClass:
line: 6
name: BaseInterface
qualifier: two.BaseInterface
name: AnotherInterface
qualifier: two.AnotherInterface
light: KtLightClassForDecompiledDeclaration
name: BaseInterface
qualifier: two.BaseInterface
name: AnotherInterface
qualifier: two.AnotherInterface
superTypes: [
PsiType:Object
]
@@ -36,38 +113,24 @@ BaseInterface.class:
ClsClassImpl: Object (java.lang.Object)
]
NonBaseClass.class:
NonBaseInterface.class:
KtClass:
line: 6
name: NonBaseClass
qualifier: two.NonBaseClass
name: NonBaseInterface
qualifier: two.NonBaseInterface
light: KtLightClassForDecompiledDeclaration
name: NonBaseClass
qualifier: two.NonBaseClass
name: NonBaseInterface
qualifier: two.NonBaseInterface
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
PsiType:BaseInterface
]
superClass: ClsClassImpl: Object (java.lang.Object)
interfaces: []
interfaces: [
KtLightClassForDecompiledDeclaration: BaseInterface (two.BaseInterface)
]
supers: [
ClsClassImpl: Object (java.lang.Object)
KtLightClassForDecompiledDeclaration: BaseInterface (two.BaseInterface)
]
BaseClass.class:
@@ -104,27 +167,6 @@ ObjectWithClass.class:
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
@@ -146,35 +188,14 @@ ObjectWithClassAndJavaInterface.class:
ClsClassImpl: Runnable (java.lang.Runnable)
]
ObjectsKt.class:
NonBaseInterface.class:
BaseInterface.class:
KtClass:
line: 6
name: NonBaseInterface
qualifier: two.NonBaseInterface
name: BaseInterface
qualifier: two.BaseInterface
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
name: BaseInterface
qualifier: two.BaseInterface
superTypes: [
PsiType:Object
]
@@ -184,24 +205,3 @@ AnotherInterface.class:
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)
]