FIR IDE: Add IDE tests for sample compiler plugin

This commit is contained in:
Roman Golyshev
2022-02-22 03:00:55 +03:00
parent fed08aaff5
commit 8bcdc70adc
32 changed files with 790 additions and 0 deletions
@@ -823,4 +823,26 @@ public class Fe10ResolveCallTestGenerated extends AbstractResolveCallTest {
runTest("analysis/analysis-api/testData/components/callResolver/resolveCall/assignments/insidePlusAssignTarget.kt");
}
}
@Nested
@TestMetadata("analysis/analysis-api/testData/components/callResolver/resolveCall/withTestCompilerPluginEnabled")
@TestDataPath("$PROJECT_ROOT")
public class WithTestCompilerPluginEnabled {
@Test
public void testAllFilesPresentInWithTestCompilerPluginEnabled() throws Exception {
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/analysis-api/testData/components/callResolver/resolveCall/withTestCompilerPluginEnabled"), Pattern.compile("^(.+)\\.kt$"), null, true);
}
@Test
@TestMetadata("customSerlializable.kt")
public void testCustomSerlializable() throws Exception {
runTest("analysis/analysis-api/testData/components/callResolver/resolveCall/withTestCompilerPluginEnabled/customSerlializable.kt");
}
@Test
@TestMetadata("dummyFunction.kt")
public void testDummyFunction() throws Exception {
runTest("analysis/analysis-api/testData/components/callResolver/resolveCall/withTestCompilerPluginEnabled/dummyFunction.kt");
}
}
}
@@ -87,4 +87,20 @@ public class Fe10SymbolByFqNameTestGenerated extends AbstractSymbolByFqNameTest
public void testNestedClass() throws Exception {
runTest("analysis/analysis-api/testData/symbols/symbolByFqName/nestedClass.kt");
}
@Nested
@TestMetadata("analysis/analysis-api/testData/symbols/symbolByFqName/withTestCompilerPluginEnabled")
@TestDataPath("$PROJECT_ROOT")
public class WithTestCompilerPluginEnabled {
@Test
public void testAllFilesPresentInWithTestCompilerPluginEnabled() throws Exception {
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/analysis-api/testData/symbols/symbolByFqName/withTestCompilerPluginEnabled"), Pattern.compile("^(.+)\\.kt$"), null, true);
}
@Test
@TestMetadata("myInterfaceSupertype.kt")
public void testMyInterfaceSupertype() throws Exception {
runTest("analysis/analysis-api/testData/symbols/symbolByFqName/withTestCompilerPluginEnabled/myInterfaceSupertype.kt");
}
}
}
@@ -63,4 +63,20 @@ public class Fe10SymbolByReferenceTestGenerated extends AbstractSymbolByReferenc
public void testSamConstructor() throws Exception {
runTest("analysis/analysis-api/testData/symbols/symbolByReference/samConstructor.kt");
}
@Nested
@TestMetadata("analysis/analysis-api/testData/symbols/symbolByReference/withTestCompilerPluginEnabled")
@TestDataPath("$PROJECT_ROOT")
public class WithTestCompilerPluginEnabled {
@Test
public void testAllFilesPresentInWithTestCompilerPluginEnabled() throws Exception {
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/analysis-api/testData/symbols/symbolByReference/withTestCompilerPluginEnabled"), Pattern.compile("^(.+)\\.kt$"), null, true);
}
@Test
@TestMetadata("generatedCompanionWorksAsValue.kt")
public void testGeneratedCompanionWorksAsValue() throws Exception {
runTest("analysis/analysis-api/testData/symbols/symbolByReference/withTestCompilerPluginEnabled/generatedCompanionWorksAsValue.kt");
}
}
}
@@ -823,4 +823,26 @@ public class FirResolveCallTestGenerated extends AbstractResolveCallTest {
runTest("analysis/analysis-api/testData/components/callResolver/resolveCall/assignments/insidePlusAssignTarget.kt");
}
}
@Nested
@TestMetadata("analysis/analysis-api/testData/components/callResolver/resolveCall/withTestCompilerPluginEnabled")
@TestDataPath("$PROJECT_ROOT")
public class WithTestCompilerPluginEnabled {
@Test
public void testAllFilesPresentInWithTestCompilerPluginEnabled() throws Exception {
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/analysis-api/testData/components/callResolver/resolveCall/withTestCompilerPluginEnabled"), Pattern.compile("^(.+)\\.kt$"), null, true);
}
@Test
@TestMetadata("customSerlializable.kt")
public void testCustomSerlializable() throws Exception {
runTest("analysis/analysis-api/testData/components/callResolver/resolveCall/withTestCompilerPluginEnabled/customSerlializable.kt");
}
@Test
@TestMetadata("dummyFunction.kt")
public void testDummyFunction() throws Exception {
runTest("analysis/analysis-api/testData/components/callResolver/resolveCall/withTestCompilerPluginEnabled/dummyFunction.kt");
}
}
}
@@ -57,4 +57,32 @@ public class FirMemberScopeByFqNameTestGenerated extends AbstractMemberScopeByFq
public void testMutableList() throws Exception {
runTest("analysis/analysis-api/testData/scopes/memberScopeByFqName/MutableList.kt");
}
@Nested
@TestMetadata("analysis/analysis-api/testData/scopes/memberScopeByFqName/withTestCompilerPluginEnabled")
@TestDataPath("$PROJECT_ROOT")
public class WithTestCompilerPluginEnabled {
@Test
public void testAllFilesPresentInWithTestCompilerPluginEnabled() throws Exception {
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/analysis-api/testData/scopes/memberScopeByFqName/withTestCompilerPluginEnabled"), Pattern.compile("^(.+)\\.kt$"), null, true);
}
@Test
@TestMetadata("customSerlializable.kt")
public void testCustomSerlializable() throws Exception {
runTest("analysis/analysis-api/testData/scopes/memberScopeByFqName/withTestCompilerPluginEnabled/customSerlializable.kt");
}
@Test
@TestMetadata("generatedCompanionWithFoo.kt")
public void testGeneratedCompanionWithFoo() throws Exception {
runTest("analysis/analysis-api/testData/scopes/memberScopeByFqName/withTestCompilerPluginEnabled/generatedCompanionWithFoo.kt");
}
@Test
@TestMetadata("nestedClassAndMaterializeMember.kt")
public void testNestedClassAndMaterializeMember() throws Exception {
runTest("analysis/analysis-api/testData/scopes/memberScopeByFqName/withTestCompilerPluginEnabled/nestedClassAndMaterializeMember.kt");
}
}
}
@@ -87,4 +87,20 @@ public class FirSymbolByFqNameTestGenerated extends AbstractSymbolByFqNameTest {
public void testNestedClass() throws Exception {
runTest("analysis/analysis-api/testData/symbols/symbolByFqName/nestedClass.kt");
}
@Nested
@TestMetadata("analysis/analysis-api/testData/symbols/symbolByFqName/withTestCompilerPluginEnabled")
@TestDataPath("$PROJECT_ROOT")
public class WithTestCompilerPluginEnabled {
@Test
public void testAllFilesPresentInWithTestCompilerPluginEnabled() throws Exception {
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/analysis-api/testData/symbols/symbolByFqName/withTestCompilerPluginEnabled"), Pattern.compile("^(.+)\\.kt$"), null, true);
}
@Test
@TestMetadata("myInterfaceSupertype.kt")
public void testMyInterfaceSupertype() throws Exception {
runTest("analysis/analysis-api/testData/symbols/symbolByFqName/withTestCompilerPluginEnabled/myInterfaceSupertype.kt");
}
}
}
@@ -63,4 +63,20 @@ public class FirSymbolByReferenceTestGenerated extends AbstractSymbolByReference
public void testSamConstructor() throws Exception {
runTest("analysis/analysis-api/testData/symbols/symbolByReference/samConstructor.kt");
}
@Nested
@TestMetadata("analysis/analysis-api/testData/symbols/symbolByReference/withTestCompilerPluginEnabled")
@TestDataPath("$PROJECT_ROOT")
public class WithTestCompilerPluginEnabled {
@Test
public void testAllFilesPresentInWithTestCompilerPluginEnabled() throws Exception {
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/analysis-api/testData/symbols/symbolByReference/withTestCompilerPluginEnabled"), Pattern.compile("^(.+)\\.kt$"), null, true);
}
@Test
@TestMetadata("generatedCompanionWorksAsValue.kt")
public void testGeneratedCompanionWorksAsValue() throws Exception {
runTest("analysis/analysis-api/testData/symbols/symbolByReference/withTestCompilerPluginEnabled/generatedCompanionWorksAsValue.kt");
}
}
}
@@ -0,0 +1,3 @@
KtErrorCallInfo:
candidateCalls = []
diagnostic = ERROR<UNRESOLVED_REFERENCE: Unresolved reference: serializeFirstTarget>
@@ -0,0 +1,15 @@
// WITH_FIR_TEST_COMPILER_PLUGIN
package test
@org.jetbrains.kotlin.fir.plugin.MySerializable
class FirstTarget
@org.jetbrains.kotlin.fir.plugin.MySerializable
class SecondTarget
@org.jetbrains.kotlin.fir.plugin.CoreSerializer
class Serializer
fun test(serializer: Serializer, target: FirstTarget) {
serializer.<expr>serializeFirstTarget</expr>(target)
}
@@ -0,0 +1,26 @@
KtSuccessCallInfo:
call = KtSimpleFunctionCall:
isImplicitInvoke = false
partiallyAppliedSymbol = KtPartiallyAppliedSymbol:
dispatchReceiver = KtExplicitReceiverValue:
expression = serializer
isSafeNavigation = false
extensionReceiver = null
signature = KtFunctionLikeSignature:
receiverType = null
returnType = kotlin.Unit
symbol = test/Serializer.serializeFirstTarget(<dispatch receiver>: test.Serializer, x: test.FirstTarget): kotlin.Unit
valueParameters = [
KtVariableLikeSignature:
name = x
receiverType = null
returnType = test.FirstTarget
symbol = x: test.FirstTarget
]
argumentMapping = {
target -> (KtVariableLikeSignature:
name = x
receiverType = null
returnType = test.FirstTarget
symbol = x: test.FirstTarget)
}
@@ -0,0 +1,3 @@
KtErrorCallInfo:
candidateCalls = []
diagnostic = ERROR<UNRESOLVED_REFERENCE: Unresolved reference: dummyTest>
@@ -0,0 +1,9 @@
// WITH_FIR_TEST_COMPILER_PLUGIN
package test
@org.jetbrains.kotlin.fir.plugin.DummyFunction
class Test
fun test() {
<expr>dummyTest</expr>(Test())
}
@@ -0,0 +1,24 @@
KtSuccessCallInfo:
call = KtSimpleFunctionCall:
isImplicitInvoke = false
partiallyAppliedSymbol = KtPartiallyAppliedSymbol:
dispatchReceiver = null
extensionReceiver = null
signature = KtFunctionLikeSignature:
receiverType = null
returnType = kotlin.String
symbol = test/dummyTest(value: test.Test): kotlin.String
valueParameters = [
KtVariableLikeSignature:
name = value
receiverType = null
returnType = test.Test
symbol = value: test.Test
]
argumentMapping = {
Test() -> (KtVariableLikeSignature:
name = value
receiverType = null
returnType = test.Test
symbol = value: test.Test)
}
@@ -0,0 +1,13 @@
// WITH_FIR_TEST_COMPILER_PLUGIN
package test
@org.jetbrains.kotlin.fir.plugin.MySerializable
class FirstTarget
@org.jetbrains.kotlin.fir.plugin.MySerializable
class SecondTarget
@org.jetbrains.kotlin.fir.plugin.CoreSerializer
class Serializer
// class: test/Serializer
@@ -0,0 +1,11 @@
fun serializeFirstTarget(x: test.FirstTarget)
fun serializeSecondTarget(x: test.SecondTarget)
open operator fun equals(other: kotlin.Any?): kotlin.Boolean
open fun hashCode(): kotlin.Int
open fun toString(): kotlin.String
constructor()
@@ -0,0 +1,146 @@
KtFunctionSymbol:
annotationsList: []
callableIdIfNonLocal: test/Serializer.serializeFirstTarget
hasStableParameterNames: true
isBuiltinFunctionInvoke: false
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: false
isOverride: false
isStatic: false
isSuspend: false
modality: FINAL
name: serializeFirstTarget
origin: PLUGIN
receiverType: null
returnType: kotlin/Unit
symbolKind: CLASS_MEMBER
typeParameters: []
valueParameters: [
KtValueParameterSymbol(x)
]
visibility: Public
getDispatchReceiver(): test/Serializer
deprecationStatus: null
KtFunctionSymbol:
annotationsList: []
callableIdIfNonLocal: test/Serializer.serializeSecondTarget
hasStableParameterNames: true
isBuiltinFunctionInvoke: false
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: false
isOverride: false
isStatic: false
isSuspend: false
modality: FINAL
name: serializeSecondTarget
origin: PLUGIN
receiverType: null
returnType: kotlin/Unit
symbolKind: CLASS_MEMBER
typeParameters: []
valueParameters: [
KtValueParameterSymbol(x)
]
visibility: Public
getDispatchReceiver(): test/Serializer
deprecationStatus: null
KtFunctionSymbol:
annotationsList: []
callableIdIfNonLocal: kotlin/Any.equals
hasStableParameterNames: true
isBuiltinFunctionInvoke: false
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: true
isOverride: false
isStatic: false
isSuspend: false
modality: OPEN
name: equals
origin: LIBRARY
receiverType: null
returnType: kotlin/Boolean
symbolKind: CLASS_MEMBER
typeParameters: []
valueParameters: [
KtValueParameterSymbol(other)
]
visibility: Public
getDispatchReceiver(): kotlin/Any
deprecationStatus: null
KtFunctionSymbol:
annotationsList: []
callableIdIfNonLocal: kotlin/Any.hashCode
hasStableParameterNames: true
isBuiltinFunctionInvoke: false
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: false
isOverride: false
isStatic: false
isSuspend: false
modality: OPEN
name: hashCode
origin: LIBRARY
receiverType: null
returnType: kotlin/Int
symbolKind: CLASS_MEMBER
typeParameters: []
valueParameters: []
visibility: Public
getDispatchReceiver(): kotlin/Any
deprecationStatus: null
KtFunctionSymbol:
annotationsList: []
callableIdIfNonLocal: kotlin/Any.toString
hasStableParameterNames: true
isBuiltinFunctionInvoke: false
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: false
isOverride: false
isStatic: false
isSuspend: false
modality: OPEN
name: toString
origin: LIBRARY
receiverType: null
returnType: kotlin/String
symbolKind: CLASS_MEMBER
typeParameters: []
valueParameters: []
visibility: Public
getDispatchReceiver(): kotlin/Any
deprecationStatus: null
KtConstructorSymbol:
annotationsList: []
callableIdIfNonLocal: null
containingClassIdIfNonLocal: test/Serializer
hasStableParameterNames: true
isExtension: false
isPrimary: true
origin: SOURCE_MEMBER_GENERATED
receiverType: null
returnType: test/Serializer
symbolKind: CLASS_MEMBER
typeParameters: []
valueParameters: []
visibility: Public
deprecationStatus: null
@@ -0,0 +1,7 @@
// WITH_FIR_TEST_COMPILER_PLUGIN
package test
@org.jetbrains.kotlin.fir.plugin.CompanionWithFoo
class WithGeneratedCompanion
// class: test/WithGeneratedCompanion.Companion
@@ -0,0 +1,9 @@
fun foo(): kotlin.Int
open operator fun equals(other: kotlin.Any?): kotlin.Boolean
open fun hashCode(): kotlin.Int
open fun toString(): kotlin.String
constructor()
@@ -0,0 +1,117 @@
KtFunctionSymbol:
annotationsList: []
callableIdIfNonLocal: test/WithGeneratedCompanion.Companion.foo
hasStableParameterNames: true
isBuiltinFunctionInvoke: false
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: false
isOverride: false
isStatic: false
isSuspend: false
modality: FINAL
name: foo
origin: PLUGIN
receiverType: null
returnType: kotlin/Int
symbolKind: CLASS_MEMBER
typeParameters: []
valueParameters: []
visibility: Public
getDispatchReceiver(): test/WithGeneratedCompanion.Companion
deprecationStatus: null
KtFunctionSymbol:
annotationsList: []
callableIdIfNonLocal: kotlin/Any.equals
hasStableParameterNames: true
isBuiltinFunctionInvoke: false
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: true
isOverride: false
isStatic: false
isSuspend: false
modality: OPEN
name: equals
origin: LIBRARY
receiverType: null
returnType: kotlin/Boolean
symbolKind: CLASS_MEMBER
typeParameters: []
valueParameters: [
KtValueParameterSymbol(other)
]
visibility: Public
getDispatchReceiver(): kotlin/Any
deprecationStatus: null
KtFunctionSymbol:
annotationsList: []
callableIdIfNonLocal: kotlin/Any.hashCode
hasStableParameterNames: true
isBuiltinFunctionInvoke: false
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: false
isOverride: false
isStatic: false
isSuspend: false
modality: OPEN
name: hashCode
origin: LIBRARY
receiverType: null
returnType: kotlin/Int
symbolKind: CLASS_MEMBER
typeParameters: []
valueParameters: []
visibility: Public
getDispatchReceiver(): kotlin/Any
deprecationStatus: null
KtFunctionSymbol:
annotationsList: []
callableIdIfNonLocal: kotlin/Any.toString
hasStableParameterNames: true
isBuiltinFunctionInvoke: false
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: false
isOverride: false
isStatic: false
isSuspend: false
modality: OPEN
name: toString
origin: LIBRARY
receiverType: null
returnType: kotlin/String
symbolKind: CLASS_MEMBER
typeParameters: []
valueParameters: []
visibility: Public
getDispatchReceiver(): kotlin/Any
deprecationStatus: null
KtConstructorSymbol:
annotationsList: []
callableIdIfNonLocal: null
containingClassIdIfNonLocal: test/WithGeneratedCompanion.Companion
hasStableParameterNames: true
isExtension: false
isPrimary: true
origin: PLUGIN
receiverType: null
returnType: test/WithGeneratedCompanion.Companion
symbolKind: CLASS_MEMBER
typeParameters: []
valueParameters: []
visibility: Public
deprecationStatus: null
@@ -0,0 +1,7 @@
// WITH_FIR_TEST_COMPILER_PLUGIN
package test
@org.jetbrains.kotlin.fir.plugin.NestedClassAndMaterializeMember
class MyClass
// class: test/MyClass
@@ -0,0 +1,11 @@
fun materialize(): test.MyClass
open operator fun equals(other: kotlin.Any?): kotlin.Boolean
open fun hashCode(): kotlin.Int
open fun toString(): kotlin.String
class Nested
constructor()
@@ -0,0 +1,138 @@
KtFunctionSymbol:
annotationsList: []
callableIdIfNonLocal: test/MyClass.materialize
hasStableParameterNames: true
isBuiltinFunctionInvoke: false
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: false
isOverride: false
isStatic: false
isSuspend: false
modality: FINAL
name: materialize
origin: PLUGIN
receiverType: null
returnType: test/MyClass
symbolKind: CLASS_MEMBER
typeParameters: []
valueParameters: []
visibility: Public
getDispatchReceiver(): test/MyClass
deprecationStatus: null
KtFunctionSymbol:
annotationsList: []
callableIdIfNonLocal: kotlin/Any.equals
hasStableParameterNames: true
isBuiltinFunctionInvoke: false
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: true
isOverride: false
isStatic: false
isSuspend: false
modality: OPEN
name: equals
origin: LIBRARY
receiverType: null
returnType: kotlin/Boolean
symbolKind: CLASS_MEMBER
typeParameters: []
valueParameters: [
KtValueParameterSymbol(other)
]
visibility: Public
getDispatchReceiver(): kotlin/Any
deprecationStatus: null
KtFunctionSymbol:
annotationsList: []
callableIdIfNonLocal: kotlin/Any.hashCode
hasStableParameterNames: true
isBuiltinFunctionInvoke: false
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: false
isOverride: false
isStatic: false
isSuspend: false
modality: OPEN
name: hashCode
origin: LIBRARY
receiverType: null
returnType: kotlin/Int
symbolKind: CLASS_MEMBER
typeParameters: []
valueParameters: []
visibility: Public
getDispatchReceiver(): kotlin/Any
deprecationStatus: null
KtFunctionSymbol:
annotationsList: []
callableIdIfNonLocal: kotlin/Any.toString
hasStableParameterNames: true
isBuiltinFunctionInvoke: false
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: false
isOverride: false
isStatic: false
isSuspend: false
modality: OPEN
name: toString
origin: LIBRARY
receiverType: null
returnType: kotlin/String
symbolKind: CLASS_MEMBER
typeParameters: []
valueParameters: []
visibility: Public
getDispatchReceiver(): kotlin/Any
deprecationStatus: null
KtNamedClassOrObjectSymbol:
annotationsList: []
classIdIfNonLocal: test/MyClass.Nested
classKind: CLASS
companionObject: null
isData: false
isExternal: false
isFun: false
isInline: false
isInner: false
modality: FINAL
name: Nested
origin: PLUGIN
superTypes: [
kotlin/Any
]
symbolKind: CLASS_MEMBER
typeParameters: []
visibility: Public
deprecationStatus: null
KtConstructorSymbol:
annotationsList: []
callableIdIfNonLocal: null
containingClassIdIfNonLocal: test/MyClass
hasStableParameterNames: true
isExtension: false
isPrimary: true
origin: SOURCE_MEMBER_GENERATED
receiverType: null
returnType: test/MyClass
symbolKind: CLASS_MEMBER
typeParameters: []
valueParameters: []
visibility: Public
deprecationStatus: null
@@ -0,0 +1,23 @@
KtNamedClassOrObjectSymbol:
annotationsList: [
<ERROR CLASS>()
psi: KtAnnotationEntry
]
classIdIfNonLocal: foo/MyClass
classKind: CLASS
companionObject: null
isData: false
isExternal: false
isFun: false
isInline: false
isInner: false
modality: FINAL
name: MyClass
origin: LIBRARY
superTypes: [
kotlin/Any
]
symbolKind: TOP_LEVEL
typeParameters: []
visibility: Public
deprecationStatus: null
@@ -0,0 +1,9 @@
// WITH_FIR_TEST_COMPILER_PLUGIN
package foo
interface MyInterface
@org.jetbrains.kotlin.fir.plugin.MyInterfaceSupertype
class MyClass
// class: foo/MyClass
@@ -0,0 +1,2 @@
@org.jetbrains.kotlin.fir.plugin.MyInterfaceSupertype
class MyClass : kotlin.Any, foo.MyInterface
@@ -0,0 +1,24 @@
KtNamedClassOrObjectSymbol:
annotationsList: [
org/jetbrains/kotlin/fir/plugin/MyInterfaceSupertype()
psi: KtAnnotationEntry
]
classIdIfNonLocal: foo/MyClass
classKind: CLASS
companionObject: null
isData: false
isExternal: false
isFun: false
isInline: false
isInner: false
modality: FINAL
name: MyClass
origin: SOURCE
superTypes: [
kotlin/Any
foo/MyInterface
]
symbolKind: TOP_LEVEL
typeParameters: []
visibility: Public
deprecationStatus: null
@@ -0,0 +1,23 @@
KtNamedClassOrObjectSymbol:
annotationsList: [
<ERROR CLASS>()
psi: KtAnnotationEntry
]
classIdIfNonLocal: test/WithGeneratedCompanion
classKind: CLASS
companionObject: null
isData: false
isExternal: false
isFun: false
isInline: false
isInner: false
modality: FINAL
name: WithGeneratedCompanion
origin: LIBRARY
superTypes: [
kotlin/Any
]
symbolKind: TOP_LEVEL
typeParameters: []
visibility: Public
deprecationStatus: null
@@ -0,0 +1,9 @@
// WITH_FIR_TEST_COMPILER_PLUGIN
package test
@org.jetbrains.kotlin.fir.plugin.CompanionWithFoo
class WithGeneratedCompanion
fun test() {
val companionObject = WithGenerated<caret>Companion
}
@@ -0,0 +1,20 @@
KtNamedClassOrObjectSymbol:
annotationsList: []
classIdIfNonLocal: test/WithGeneratedCompanion.Companion
classKind: COMPANION_OBJECT
companionObject: null
isData: false
isExternal: false
isFun: false
isInline: false
isInner: false
modality: FINAL
name: Companion
origin: PLUGIN
superTypes: [
kotlin/Any
]
symbolKind: CLASS_MEMBER
typeParameters: []
visibility: Public
deprecationStatus: null