diff --git a/analysis/symbol-light-classes/testData/structure/Classes.lib.txt b/analysis/symbol-light-classes/testData/structure/Classes.lib.txt index b185673003e..f5df6abe192 100644 --- a/analysis/symbol-light-classes/testData/structure/Classes.lib.txt +++ b/analysis/symbol-light-classes/testData/structure/Classes.lib.txt @@ -1,11 +1,11 @@ -FinalClass.class: +AbstractClass.class: KtClass: line: 6 - name: FinalClass - qualifier: cba.FinalClass + name: AbstractClass + qualifier: cba.AbstractClass light: KtLightClassForDecompiledDeclaration - name: FinalClass - qualifier: cba.FinalClass + name: AbstractClass + qualifier: cba.AbstractClass superTypes: [ PsiType:Object ] @@ -32,14 +32,14 @@ ChildOfOpen.class: KtLightClassForDecompiledDeclaration: OpenClassFromAbstractClass (cba.OpenClassFromAbstractClass) ] -AbstractClass.class: +FinalClass.class: KtClass: line: 6 - name: AbstractClass - qualifier: cba.AbstractClass + name: FinalClass + qualifier: cba.FinalClass light: KtLightClassForDecompiledDeclaration - name: AbstractClass - qualifier: cba.AbstractClass + name: FinalClass + qualifier: cba.FinalClass superTypes: [ PsiType:Object ] diff --git a/analysis/symbol-light-classes/testData/structure/Classes.txt b/analysis/symbol-light-classes/testData/structure/Classes.txt index f180dec585a..245fbe44d37 100644 --- a/analysis/symbol-light-classes/testData/structure/Classes.txt +++ b/analysis/symbol-light-classes/testData/structure/Classes.txt @@ -1,10 +1,10 @@ KtClass: - line: 3 - name: FinalClass - qualifier: cba.FinalClass + line: 5 + name: AbstractClass + qualifier: cba.AbstractClass light: SymbolLightClassForClassOrObject - name: FinalClass - qualifier: cba.FinalClass + name: AbstractClass + qualifier: cba.AbstractClass superTypes: [ PsiType:Object ] @@ -15,12 +15,28 @@ KtClass: ] KtClass: - line: 5 - name: AbstractClass - qualifier: cba.AbstractClass + line: 9 + name: ChildOfOpen + qualifier: cba.ChildOfOpen light: SymbolLightClassForClassOrObject - name: AbstractClass - qualifier: cba.AbstractClass + name: ChildOfOpen + qualifier: cba.ChildOfOpen + superTypes: [ + PsiType:OpenClassFromAbstractClass + ] + superClass: SymbolLightClassForClassOrObject: OpenClassFromAbstractClass (cba.OpenClassFromAbstractClass) + interfaces: [] + supers: [ + SymbolLightClassForClassOrObject: OpenClassFromAbstractClass (cba.OpenClassFromAbstractClass) + ] + +KtClass: + line: 3 + name: FinalClass + qualifier: cba.FinalClass + light: SymbolLightClassForClassOrObject + name: FinalClass + qualifier: cba.FinalClass superTypes: [ PsiType:Object ] @@ -46,19 +62,3 @@ KtClass: 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) - ] - diff --git a/analysis/symbol-light-classes/testData/structure/EnumEntries.lib.txt b/analysis/symbol-light-classes/testData/structure/EnumEntries.lib.txt index e1b9c59fafd..41b38269122 100644 --- a/analysis/symbol-light-classes/testData/structure/EnumEntries.lib.txt +++ b/analysis/symbol-light-classes/testData/structure/EnumEntries.lib.txt @@ -1,3 +1,20 @@ +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 @@ -31,23 +48,6 @@ 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 diff --git a/analysis/symbol-light-classes/testData/structure/EnumEntries.txt b/analysis/symbol-light-classes/testData/structure/EnumEntries.txt index c454aaed0e5..b0f3f9c86bc 100644 --- a/analysis/symbol-light-classes/testData/structure/EnumEntries.txt +++ b/analysis/symbol-light-classes/testData/structure/EnumEntries.txt @@ -14,44 +14,6 @@ KtClass: ClsClassImpl: Object (java.lang.Object) ] -KtClass: - line: 5 - name: EnumEntries - qualifier: one.two.EnumEntries - light: SymbolLightClassForClassOrObject - name: EnumEntries - qualifier: one.two.EnumEntries - superTypes: [ - PsiType:Enum - ] - superClass: ClsClassImpl: Enum (java.lang.Enum) - interfaces: [] - supers: [ - ClsClassImpl: Enum (java.lang.Enum) - ] - -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: 14 name: EnumClassWithInterface @@ -94,3 +56,41 @@ KtEnumEntry: SymbolLightClassForClassOrObject: EnumClassWithInterface (one.two.EnumClassWithInterface) ] +KtClass: + line: 5 + name: EnumEntries + qualifier: one.two.EnumEntries + light: SymbolLightClassForClassOrObject + name: EnumEntries + qualifier: one.two.EnumEntries + superTypes: [ + PsiType:Enum + ] + superClass: ClsClassImpl: Enum (java.lang.Enum) + interfaces: [] + supers: [ + ClsClassImpl: Enum (java.lang.Enum) + ] + +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) + ] + diff --git a/analysis/symbol-light-classes/testData/structure/InterfaceAndClasses.lib.txt b/analysis/symbol-light-classes/testData/structure/InterfaceAndClasses.lib.txt index 6b7e0233d7d..1b2a99d9332 100644 --- a/analysis/symbol-light-classes/testData/structure/InterfaceAndClasses.lib.txt +++ b/analysis/symbol-light-classes/testData/structure/InterfaceAndClasses.lib.txt @@ -1,11 +1,53 @@ -FinalClassWithComplexInterface.class: +AbstractClassTransitiveBaseInterface.class: KtClass: line: 6 - name: FinalClassWithComplexInterface - qualifier: my.FinalClassWithComplexInterface + name: AbstractClassTransitiveBaseInterface + qualifier: my.AbstractClassTransitiveBaseInterface light: KtLightClassForDecompiledDeclaration - name: FinalClassWithComplexInterface - qualifier: my.FinalClassWithComplexInterface + 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) + ] + +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) + ] + +AbstractClassWithComplexInterface.class: + KtClass: + line: 6 + name: AbstractClassWithComplexInterface + qualifier: my.AbstractClassWithComplexInterface + light: KtLightClassForDecompiledDeclaration + name: AbstractClassWithComplexInterface + qualifier: my.AbstractClassWithComplexInterface superTypes: [ PsiType:Object PsiType:ComplexInterface @@ -19,23 +61,6 @@ FinalClassWithComplexInterface.class: 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: [ - KtLightClassForDecompiledDeclaration: OpenComplexClass (my.OpenComplexClass) - ] - BaseInterface1.class: KtClass: line: 6 @@ -70,30 +95,6 @@ BaseInterface2.class: 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) - ] - ComplexInterface.class: KtClass: line: 6 @@ -117,48 +118,6 @@ ComplexInterface.class: 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 @@ -180,35 +139,14 @@ FinalClassWithBaseInterface.class: KtLightClassForDecompiledDeclaration: BaseInterface1 (my.BaseInterface1) ] -OpenComplexClass.class: +FinalClassWithComplexInterface.class: KtClass: line: 6 - name: OpenComplexClass - qualifier: my.OpenComplexClass + name: FinalClassWithComplexInterface + qualifier: my.FinalClassWithComplexInterface 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: - KtClass: - line: 6 - name: AbstractClassWithComplexInterface - qualifier: my.AbstractClassWithComplexInterface - light: KtLightClassForDecompiledDeclaration - name: AbstractClassWithComplexInterface - qualifier: my.AbstractClassWithComplexInterface + name: FinalClassWithComplexInterface + qualifier: my.FinalClassWithComplexInterface superTypes: [ PsiType:Object PsiType:ComplexInterface @@ -246,6 +184,47 @@ FinalClassWithComplexInterfaceAndBaseInterface.class: KtLightClassForDecompiledDeclaration: BaseInterface1 (my.BaseInterface1) ] +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) + ] + OpenBaseClass.class: KtClass: line: 6 @@ -263,3 +242,24 @@ OpenBaseClass.class: ClsClassImpl: Object (java.lang.Object) ] +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) + ] + diff --git a/analysis/symbol-light-classes/testData/structure/InterfaceAndClasses.txt b/analysis/symbol-light-classes/testData/structure/InterfaceAndClasses.txt index 0a5f5fa2ac5..6536004557c 100644 --- a/analysis/symbol-light-classes/testData/structure/InterfaceAndClasses.txt +++ b/analysis/symbol-light-classes/testData/structure/InterfaceAndClasses.txt @@ -1,3 +1,63 @@ +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: 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: 3 name: BaseInterface1 @@ -52,22 +112,6 @@ KtClass: 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 @@ -88,29 +132,6 @@ KtClass: 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 @@ -155,63 +176,58 @@ KtClass: ] KtClass: - line: 19 - name: AbstractClassWithBaseInterface - qualifier: my.AbstractClassWithBaseInterface + line: 13 + name: FinalClassWithSeveralBaseInterfaces + qualifier: my.FinalClassWithSeveralBaseInterfaces light: SymbolLightClassForClassOrObject - name: AbstractClassWithBaseInterface - qualifier: my.AbstractClassWithBaseInterface + 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: 21 - name: AbstractClassWithComplexInterface - qualifier: my.AbstractClassWithComplexInterface + line: 27 + name: OnlyTransitiveInterface + qualifier: my.OnlyTransitiveInterface light: SymbolLightClassForClassOrObject - name: AbstractClassWithComplexInterface - qualifier: my.AbstractClassWithComplexInterface + name: OnlyTransitiveInterface + qualifier: my.OnlyTransitiveInterface + superTypes: [ + PsiType:OpenComplexClass + ] + superClass: SymbolLightClassForClassOrObject: OpenComplexClass (my.OpenComplexClass) + interfaces: [] + supers: [ + SymbolLightClassForClassOrObject: OpenComplexClass (my.OpenComplexClass) + ] + +KtClass: + line: 9 + name: OpenBaseClass + qualifier: my.OpenBaseClass + light: SymbolLightClassForClassOrObject + name: OpenBaseClass + qualifier: my.OpenBaseClass superTypes: [ PsiType:Object - PsiType:ComplexInterface ] superClass: ClsClassImpl: Object (java.lang.Object) - interfaces: [ - SymbolLightClassForInterface: ComplexInterface (my.ComplexInterface) - ] + interfaces: [] 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: @@ -234,19 +250,3 @@ KtClass: 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) - ] - diff --git a/analysis/symbol-light-classes/testData/structure/Interfaces.lib.txt b/analysis/symbol-light-classes/testData/structure/Interfaces.lib.txt index 67c745454c9..8ef52db8874 100644 --- a/analysis/symbol-light-classes/testData/structure/Interfaces.lib.txt +++ b/analysis/symbol-light-classes/testData/structure/Interfaces.lib.txt @@ -1,20 +1,3 @@ -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) - ] - BaseInterface1.class: KtClass: line: 6 @@ -92,3 +75,20 @@ InterfaceWithTransitive.class: KtLightClassForDecompiledDeclaration: InterfaceWithBase (abc.InterfaceWithBase) ] +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) + ] + diff --git a/analysis/symbol-light-classes/testData/structure/Interfaces.txt b/analysis/symbol-light-classes/testData/structure/Interfaces.txt index 8b57add5cc6..97f8c7e170b 100644 --- a/analysis/symbol-light-classes/testData/structure/Interfaces.txt +++ b/analysis/symbol-light-classes/testData/structure/Interfaces.txt @@ -1,19 +1,3 @@ -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 @@ -87,3 +71,19 @@ KtClass: SymbolLightClassForInterface: InterfaceWithBase (abc.InterfaceWithBase) ] +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) + ] + diff --git a/analysis/symbol-light-classes/testData/structure/NestedClasses.lib.txt b/analysis/symbol-light-classes/testData/structure/NestedClasses.lib.txt index 2c0e3aabecc..8799db9c6ee 100644 --- a/analysis/symbol-light-classes/testData/structure/NestedClasses.lib.txt +++ b/analysis/symbol-light-classes/testData/structure/NestedClasses.lib.txt @@ -1,52 +1,3 @@ -B.class: - KtClass: - line: 4 - name: B - qualifier: B - light: KtLightClassForDecompiledDeclaration - name: B - qualifier: B - superTypes: [ - PsiType:A - ] - superClass: KtLightClassForDecompiledDeclaration: A (A) - interfaces: [] - supers: [ - KtLightClassForDecompiledDeclaration: A (A) - ] - - KtClass: - line: 5 - name: NestedInB - qualifier: B.NestedInB - light: KtLightClassForDecompiledDeclaration - name: NestedInB - qualifier: B.NestedInB - superTypes: [ - PsiType:NestedInNestedInA - ] - superClass: KtLightClassForDecompiledDeclaration: NestedInNestedInA (A.NestedInA.NestedInNestedInA) - interfaces: [] - supers: [ - KtLightClassForDecompiledDeclaration: NestedInNestedInA (A.NestedInA.NestedInNestedInA) - ] - - KtClass: - line: 8 - name: InnerInB - qualifier: B.InnerInB - light: KtLightClassForDecompiledDeclaration - name: InnerInB - qualifier: B.InnerInB - superTypes: [ - PsiType:Object - ] - superClass: ClsClassImpl: Object (java.lang.Object) - interfaces: [] - supers: [ - ClsClassImpl: Object (java.lang.Object) - ] - A.class: KtClass: line: 4 @@ -143,3 +94,53 @@ A.class: supers: [ ClsClassImpl: Object (java.lang.Object) ] + +B.class: + KtClass: + line: 4 + name: B + qualifier: B + light: KtLightClassForDecompiledDeclaration + name: B + qualifier: B + superTypes: [ + PsiType:A + ] + superClass: KtLightClassForDecompiledDeclaration: A (A) + interfaces: [] + supers: [ + KtLightClassForDecompiledDeclaration: A (A) + ] + + KtClass: + line: 5 + name: NestedInB + qualifier: B.NestedInB + light: KtLightClassForDecompiledDeclaration + name: NestedInB + qualifier: B.NestedInB + superTypes: [ + PsiType:NestedInNestedInA + ] + superClass: KtLightClassForDecompiledDeclaration: NestedInNestedInA (A.NestedInA.NestedInNestedInA) + interfaces: [] + supers: [ + KtLightClassForDecompiledDeclaration: NestedInNestedInA (A.NestedInA.NestedInNestedInA) + ] + + KtClass: + line: 8 + name: InnerInB + qualifier: B.InnerInB + light: KtLightClassForDecompiledDeclaration + name: InnerInB + qualifier: B.InnerInB + superTypes: [ + PsiType:Object + ] + superClass: ClsClassImpl: Object (java.lang.Object) + interfaces: [] + supers: [ + ClsClassImpl: Object (java.lang.Object) + ] + diff --git a/analysis/symbol-light-classes/testData/structure/NestedClasses.txt b/analysis/symbol-light-classes/testData/structure/NestedClasses.txt index aee459c3ab7..c14bf65c387 100644 --- a/analysis/symbol-light-classes/testData/structure/NestedClasses.txt +++ b/analysis/symbol-light-classes/testData/structure/NestedClasses.txt @@ -14,54 +14,6 @@ KtClass: ClsClassImpl: Object (java.lang.Object) ] -KtClass: - line: 2 - name: NestedInA - qualifier: A.NestedInA - light: SymbolLightClassForClassOrObject - name: NestedInA - qualifier: A.NestedInA - superTypes: [ - PsiType:Object - ] - superClass: ClsClassImpl: Object (java.lang.Object) - interfaces: [] - supers: [ - ClsClassImpl: Object (java.lang.Object) - ] - -KtClass: - line: 3 - name: NestedInNestedInA - qualifier: A.NestedInA.NestedInNestedInA - light: SymbolLightClassForClassOrObject - name: NestedInNestedInA - qualifier: A.NestedInA.NestedInNestedInA - superTypes: [ - PsiType:Object - ] - superClass: ClsClassImpl: Object (java.lang.Object) - interfaces: [] - supers: [ - ClsClassImpl: Object (java.lang.Object) - ] - -KtClass: - line: 5 - name: InnerInNestedInA - qualifier: A.NestedInA.InnerInNestedInA - light: SymbolLightClassForClassOrObject - name: InnerInNestedInA - qualifier: A.NestedInA.InnerInNestedInA - superTypes: [ - PsiType:Object - ] - superClass: ClsClassImpl: Object (java.lang.Object) - interfaces: [] - supers: [ - ClsClassImpl: Object (java.lang.Object) - ] - KtClass: line: 8 name: InnerInA @@ -94,6 +46,54 @@ KtClass: ClsClassImpl: Object (java.lang.Object) ] +KtClass: + line: 2 + name: NestedInA + qualifier: A.NestedInA + light: SymbolLightClassForClassOrObject + name: NestedInA + qualifier: A.NestedInA + superTypes: [ + PsiType:Object + ] + superClass: ClsClassImpl: Object (java.lang.Object) + interfaces: [] + supers: [ + ClsClassImpl: Object (java.lang.Object) + ] + +KtClass: + line: 5 + name: InnerInNestedInA + qualifier: A.NestedInA.InnerInNestedInA + light: SymbolLightClassForClassOrObject + name: InnerInNestedInA + qualifier: A.NestedInA.InnerInNestedInA + superTypes: [ + PsiType:Object + ] + superClass: ClsClassImpl: Object (java.lang.Object) + interfaces: [] + supers: [ + ClsClassImpl: Object (java.lang.Object) + ] + +KtClass: + line: 3 + name: NestedInNestedInA + qualifier: A.NestedInA.NestedInNestedInA + light: SymbolLightClassForClassOrObject + name: NestedInNestedInA + qualifier: A.NestedInA.NestedInNestedInA + superTypes: [ + PsiType:Object + ] + superClass: ClsClassImpl: Object (java.lang.Object) + interfaces: [] + supers: [ + ClsClassImpl: Object (java.lang.Object) + ] + KtClass: line: 13 name: B @@ -110,22 +110,6 @@ KtClass: SymbolLightClassForClassOrObject: A (A) ] -KtClass: - line: 14 - name: NestedInB - qualifier: B.NestedInB - light: SymbolLightClassForClassOrObject - name: NestedInB - qualifier: B.NestedInB - superTypes: [ - PsiType:NestedInNestedInA - ] - superClass: SymbolLightClassForClassOrObject: NestedInNestedInA (A.NestedInA.NestedInNestedInA) - interfaces: [] - supers: [ - SymbolLightClassForClassOrObject: NestedInNestedInA (A.NestedInA.NestedInNestedInA) - ] - KtClass: line: 16 name: InnerInB @@ -142,3 +126,19 @@ KtClass: ClsClassImpl: Object (java.lang.Object) ] +KtClass: + line: 14 + name: NestedInB + qualifier: B.NestedInB + light: SymbolLightClassForClassOrObject + name: NestedInB + qualifier: B.NestedInB + superTypes: [ + PsiType:NestedInNestedInA + ] + superClass: SymbolLightClassForClassOrObject: NestedInNestedInA (A.NestedInA.NestedInNestedInA) + interfaces: [] + supers: [ + SymbolLightClassForClassOrObject: NestedInNestedInA (A.NestedInA.NestedInNestedInA) + ] + diff --git a/analysis/symbol-light-classes/testData/structure/Objects.lib.txt b/analysis/symbol-light-classes/testData/structure/Objects.lib.txt index 27cc67eca35..5fa5d06e538 100644 --- a/analysis/symbol-light-classes/testData/structure/Objects.lib.txt +++ b/analysis/symbol-light-classes/testData/structure/Objects.lib.txt @@ -1,23 +1,52 @@ -ObjectsKt.class: -ObjectWithInterface.class: - KtObjectDeclaration: +AnotherInterface.class: + KtClass: line: 6 - name: ObjectWithInterface - qualifier: two.ObjectWithInterface + name: AnotherInterface + qualifier: two.AnotherInterface light: KtLightClassForDecompiledDeclaration - name: ObjectWithInterface - qualifier: two.ObjectWithInterface + name: AnotherInterface + qualifier: two.AnotherInterface superTypes: [ PsiType:Object - PsiType:BaseInterface ] superClass: ClsClassImpl: Object (java.lang.Object) - interfaces: [ - KtLightClassForDecompiledDeclaration: BaseInterface (two.BaseInterface) - ] + 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) + ] + +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) - KtLightClassForDecompiledDeclaration: BaseInterface (two.BaseInterface) ] NonBaseClass.class: @@ -37,82 +66,6 @@ NonBaseClass.class: 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 - 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) - ] - -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) - ] - NonBaseInterface.class: KtClass: line: 6 @@ -133,14 +86,14 @@ NonBaseInterface.class: KtLightClassForDecompiledDeclaration: BaseInterface (two.BaseInterface) ] -BaseClass.class: - KtClass: +Object.class: + KtObjectDeclaration: line: 6 - name: BaseClass - qualifier: two.BaseClass + name: Object + qualifier: two.Object light: KtLightClassForDecompiledDeclaration - name: BaseClass - qualifier: two.BaseClass + name: Object + qualifier: two.Object superTypes: [ PsiType:Object ] @@ -167,6 +120,27 @@ ObjectWithClass.class: KtLightClassForDecompiledDeclaration: BaseClass (two.BaseClass) ] +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) + ] + ObjectWithClassAndJavaInterface.class: KtObjectDeclaration: line: 6 @@ -188,20 +162,46 @@ ObjectWithClassAndJavaInterface.class: ClsClassImpl: Runnable (java.lang.Runnable) ] -BaseInterface.class: - KtClass: +ObjectWithInterface.class: + KtObjectDeclaration: line: 6 - name: BaseInterface - qualifier: two.BaseInterface + name: ObjectWithInterface + qualifier: two.ObjectWithInterface light: KtLightClassForDecompiledDeclaration - name: BaseInterface - qualifier: two.BaseInterface + name: ObjectWithInterface + qualifier: two.ObjectWithInterface 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) ] +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) + ] + +ObjectsKt.class: diff --git a/analysis/symbol-light-classes/testData/structure/Objects.txt b/analysis/symbol-light-classes/testData/structure/Objects.txt index fd94914abb6..4b3845e1f95 100644 --- a/analysis/symbol-light-classes/testData/structure/Objects.txt +++ b/analysis/symbol-light-classes/testData/structure/Objects.txt @@ -1,198 +1,3 @@ -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 @@ -301,3 +106,198 @@ KtObjectDeclaration: 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: 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: 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) + ] + +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) + ] + +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: 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: 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) + ] + diff --git a/analysis/symbol-light-classes/tests/org/jetbrains/kotlin/light/classes/symbol/base/AbstractSymbolLightClassesStructureTest.kt b/analysis/symbol-light-classes/tests/org/jetbrains/kotlin/light/classes/symbol/base/AbstractSymbolLightClassesStructureTest.kt index a36b64db829..a4a84b7aa85 100644 --- a/analysis/symbol-light-classes/tests/org/jetbrains/kotlin/light/classes/symbol/base/AbstractSymbolLightClassesStructureTest.kt +++ b/analysis/symbol-light-classes/tests/org/jetbrains/kotlin/light/classes/symbol/base/AbstractSymbolLightClassesStructureTest.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2023 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2024 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. */ @@ -20,7 +20,7 @@ abstract class AbstractSymbolLightClassesStructureTest( override fun doTestByFileStructure(ktFiles: List, module: TestModule, testServices: TestServices) { val result = prettyPrint { - for (ktFile in ktFiles) { + for (ktFile in ktFiles.sortedBy(KtFile::getName)) { if (ktFiles.size > 1) { appendLine("${ktFile.name}:") withIndent { diff --git a/analysis/symbol-light-classes/tests/org/jetbrains/kotlin/light/classes/symbol/base/AbstractSymbolLightClassesStructureTestBase.kt b/analysis/symbol-light-classes/tests/org/jetbrains/kotlin/light/classes/symbol/base/AbstractSymbolLightClassesStructureTestBase.kt index 978a910e46f..a4846501bde 100644 --- a/analysis/symbol-light-classes/tests/org/jetbrains/kotlin/light/classes/symbol/base/AbstractSymbolLightClassesStructureTestBase.kt +++ b/analysis/symbol-light-classes/tests/org/jetbrains/kotlin/light/classes/symbol/base/AbstractSymbolLightClassesStructureTestBase.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2023 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2024 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. */ @@ -15,7 +15,7 @@ import org.jetbrains.kotlin.asJava.toLightClass import org.jetbrains.kotlin.psi.KtClassOrObject import org.jetbrains.kotlin.psi.KtEnumEntry import org.jetbrains.kotlin.psi.KtFile -import org.jetbrains.kotlin.psi.psiUtil.forEachDescendantOfTypeInPreorder +import org.jetbrains.kotlin.psi.psiUtil.collectDescendantsOfType import org.jetbrains.kotlin.psi.psiUtil.startOffset import org.jetbrains.kotlin.test.model.TestModule import org.jetbrains.kotlin.test.services.TestServices @@ -109,10 +109,12 @@ open class AbstractSymbolLightClassesStructureTestBase( val classOrObject = ktFile.declarations.singleOrNull() as? KtClassOrObject ?: return handleCompiledClassDeclaration(classOrObject, text) } else { - ktFile.forEachDescendantOfTypeInPreorder { classOrObject -> - handleClassDeclaration(classOrObject, text) - appendLine() - } + ktFile.collectDescendantsOfType() + .sortedBy { it.fqName?.asString() ?: it.name.toString() } + .forEach { classOrObject -> + handleClassDeclaration(classOrObject, text) + appendLine() + } } }