diff --git a/analysis/analysis-api-fe10/tests-gen/org/jetbrains/kotlin/analysis/api/fe10/test/cases/generated/cases/symbols/Fe10IdeNormalAnalysisSourceModuleSymbolByReferenceTestGenerated.java b/analysis/analysis-api-fe10/tests-gen/org/jetbrains/kotlin/analysis/api/fe10/test/cases/generated/cases/symbols/Fe10IdeNormalAnalysisSourceModuleSymbolByReferenceTestGenerated.java index 1a75364cff2..ce5c64d8b11 100644 --- a/analysis/analysis-api-fe10/tests-gen/org/jetbrains/kotlin/analysis/api/fe10/test/cases/generated/cases/symbols/Fe10IdeNormalAnalysisSourceModuleSymbolByReferenceTestGenerated.java +++ b/analysis/analysis-api-fe10/tests-gen/org/jetbrains/kotlin/analysis/api/fe10/test/cases/generated/cases/symbols/Fe10IdeNormalAnalysisSourceModuleSymbolByReferenceTestGenerated.java @@ -196,6 +196,12 @@ public class Fe10IdeNormalAnalysisSourceModuleSymbolByReferenceTestGenerated ext runTest("analysis/analysis-api/testData/symbols/symbolByReference/setterValueParameter.kt"); } + @Test + @TestMetadata("syntheticProperty.kt") + public void testSyntheticProperty() throws Exception { + runTest("analysis/analysis-api/testData/symbols/symbolByReference/syntheticProperty.kt"); + } + @Test @TestMetadata("typeAnnotationOnBackingField.kt") public void testTypeAnnotationOnBackingField() throws Exception { diff --git a/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/symbols/FirIdeNormalAnalysisSourceModuleSymbolByReferenceTestGenerated.java b/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/symbols/FirIdeNormalAnalysisSourceModuleSymbolByReferenceTestGenerated.java index 7647964d734..04321780754 100644 --- a/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/symbols/FirIdeNormalAnalysisSourceModuleSymbolByReferenceTestGenerated.java +++ b/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/symbols/FirIdeNormalAnalysisSourceModuleSymbolByReferenceTestGenerated.java @@ -196,6 +196,12 @@ public class FirIdeNormalAnalysisSourceModuleSymbolByReferenceTestGenerated exte runTest("analysis/analysis-api/testData/symbols/symbolByReference/setterValueParameter.kt"); } + @Test + @TestMetadata("syntheticProperty.kt") + public void testSyntheticProperty() throws Exception { + runTest("analysis/analysis-api/testData/symbols/symbolByReference/syntheticProperty.kt"); + } + @Test @TestMetadata("typeAnnotationOnBackingField.kt") public void testTypeAnnotationOnBackingField() throws Exception { diff --git a/analysis/analysis-api-standalone/tests-gen/org/jetbrains/kotlin/analysis/api/standalone/fir/test/cases/generated/cases/symbols/FirStandaloneNormalAnalysisSourceModuleSymbolByReferenceTestGenerated.java b/analysis/analysis-api-standalone/tests-gen/org/jetbrains/kotlin/analysis/api/standalone/fir/test/cases/generated/cases/symbols/FirStandaloneNormalAnalysisSourceModuleSymbolByReferenceTestGenerated.java index e024f2a0772..d7091690a14 100644 --- a/analysis/analysis-api-standalone/tests-gen/org/jetbrains/kotlin/analysis/api/standalone/fir/test/cases/generated/cases/symbols/FirStandaloneNormalAnalysisSourceModuleSymbolByReferenceTestGenerated.java +++ b/analysis/analysis-api-standalone/tests-gen/org/jetbrains/kotlin/analysis/api/standalone/fir/test/cases/generated/cases/symbols/FirStandaloneNormalAnalysisSourceModuleSymbolByReferenceTestGenerated.java @@ -196,6 +196,12 @@ public class FirStandaloneNormalAnalysisSourceModuleSymbolByReferenceTestGenerat runTest("analysis/analysis-api/testData/symbols/symbolByReference/setterValueParameter.kt"); } + @Test + @TestMetadata("syntheticProperty.kt") + public void testSyntheticProperty() throws Exception { + runTest("analysis/analysis-api/testData/symbols/symbolByReference/syntheticProperty.kt"); + } + @Test @TestMetadata("typeAnnotationOnBackingField.kt") public void testTypeAnnotationOnBackingField() throws Exception { diff --git a/analysis/analysis-api/testData/symbols/symbolByReference/syntheticProperty.descriptors.pretty.txt b/analysis/analysis-api/testData/symbols/symbolByReference/syntheticProperty.descriptors.pretty.txt new file mode 100644 index 00000000000..93a15371578 --- /dev/null +++ b/analysis/analysis-api/testData/symbols/symbolByReference/syntheticProperty.descriptors.pretty.txt @@ -0,0 +1,3 @@ +var Derived.something: kotlin.String + get() + set(value: kotlin.String) \ No newline at end of file diff --git a/analysis/analysis-api/testData/symbols/symbolByReference/syntheticProperty.descriptors.txt b/analysis/analysis-api/testData/symbols/symbolByReference/syntheticProperty.descriptors.txt new file mode 100644 index 00000000000..2886ea6ff57 --- /dev/null +++ b/analysis/analysis-api/testData/symbols/symbolByReference/syntheticProperty.descriptors.txt @@ -0,0 +1,160 @@ +KtSyntheticJavaPropertySymbol: + annotationsList: [] + backingFieldSymbol: null + callableIdIfNonLocal: /Derived.something + contextReceivers: [] + getter: KtPropertyGetterSymbol: + annotationsList: [] + callableIdIfNonLocal: /Derived.getSomething + contextReceivers: [] + hasBody: false + hasStableParameterNames: true + isDefault: false + isExtension: false + isInline: false + isOverride: false + modality: FINAL + origin: SOURCE_MEMBER_GENERATED + receiverParameter: KtReceiverParameterSymbol: + annotationsList: [] + origin: SOURCE + owningCallableSymbol: KtSyntheticJavaPropertySymbol(/Derived.something) + type: KtUsualClassType: + annotationsList: [] + ownTypeArguments: [] + type: Derived + getContainingModule: Could not render due to kotlin.NotImplementedError: An operation is not implemented: org.jetbrains.kotlin.analysis.api.descriptors.symbols.descriptorBased.KtFe10ReceiverParameterSymbol + + deprecationStatus: null + returnType: KtUsualClassType: + annotationsList: [] + ownTypeArguments: [] + type: kotlin/String + symbolKind: ACCESSOR + typeParameters: [] + valueParameters: [] + visibility: Public + getContainingModule: Could not render due to kotlin.NotImplementedError: An operation is not implemented: org.jetbrains.kotlin.analysis.api.descriptors.symbols.descriptorBased.KtFe10DescPropertyGetterSymbol + + deprecationStatus: null + hasBackingField: true + hasGetter: true + hasSetter: true + initializer: null + isDelegatedProperty: false + isExtension: true + isFromPrimaryConstructor: false + isOverride: false + isStatic: false + isVal: false + javaGetterSymbol: KtFunctionSymbol(/Derived.getSomething) + javaSetterSymbol: KtFunctionSymbol(/Derived.setSomething) + modality: FINAL + name: something + origin: JAVA_SYNTHETIC_PROPERTY + receiverParameter: KtReceiverParameterSymbol: + annotationsList: [] + origin: SOURCE + owningCallableSymbol: KtSyntheticJavaPropertySymbol(/Derived.something) + type: KtUsualClassType: + annotationsList: [] + ownTypeArguments: [] + type: Derived + getContainingModule: Could not render due to kotlin.NotImplementedError: An operation is not implemented: org.jetbrains.kotlin.analysis.api.descriptors.symbols.descriptorBased.KtFe10ReceiverParameterSymbol + + deprecationStatus: null + returnType: KtUsualClassType: + annotationsList: [] + ownTypeArguments: [] + type: kotlin/String + setter: KtPropertySetterSymbol: + annotationsList: [] + callableIdIfNonLocal: /Derived.setSomething + contextReceivers: [] + hasBody: false + hasStableParameterNames: true + isDefault: false + isExtension: false + isInline: false + isOverride: false + modality: FINAL + origin: SOURCE_MEMBER_GENERATED + parameter: KtValueParameterSymbol: + annotationsList: [] + callableIdIfNonLocal: null + contextReceivers: [] + generatedPrimaryConstructorProperty: null + hasDefaultValue: false + isCrossinline: false + isExtension: false + isImplicitLambdaParameter: false + isNoinline: false + isVararg: false + name: value + origin: SOURCE + receiverParameter: null + returnType: KtUsualClassType: + annotationsList: [] + ownTypeArguments: [] + type: kotlin/String + symbolKind: LOCAL + typeParameters: [] + getContainingModule: Could not render due to kotlin.NotImplementedError: An operation is not implemented: org.jetbrains.kotlin.analysis.api.descriptors.symbols.descriptorBased.KtFe10DescValueParameterSymbol + + deprecationStatus: null + receiverParameter: KtReceiverParameterSymbol: + annotationsList: [] + origin: SOURCE + owningCallableSymbol: KtSyntheticJavaPropertySymbol(/Derived.something) + type: KtUsualClassType: + annotationsList: [] + ownTypeArguments: [] + type: Derived + getContainingModule: Could not render due to kotlin.NotImplementedError: An operation is not implemented: org.jetbrains.kotlin.analysis.api.descriptors.symbols.descriptorBased.KtFe10ReceiverParameterSymbol + + deprecationStatus: null + returnType: KtUsualClassType: + annotationsList: [] + ownTypeArguments: [] + type: kotlin/Unit + symbolKind: ACCESSOR + typeParameters: [] + valueParameters: [ + KtValueParameterSymbol: + annotationsList: [] + callableIdIfNonLocal: null + contextReceivers: [] + generatedPrimaryConstructorProperty: null + hasDefaultValue: false + isCrossinline: false + isExtension: false + isImplicitLambdaParameter: false + isNoinline: false + isVararg: false + name: value + origin: SOURCE + receiverParameter: null + returnType: KtUsualClassType: + annotationsList: [] + ownTypeArguments: [] + type: kotlin/String + symbolKind: LOCAL + typeParameters: [] + getContainingModule: Could not render due to kotlin.NotImplementedError: An operation is not implemented: org.jetbrains.kotlin.analysis.api.descriptors.symbols.descriptorBased.KtFe10DescValueParameterSymbol + + deprecationStatus: null + ] + visibility: Public + getContainingModule: Could not render due to kotlin.NotImplementedError: An operation is not implemented: org.jetbrains.kotlin.analysis.api.descriptors.symbols.descriptorBased.KtFe10DescPropertySetterSymbol + + deprecationStatus: null + symbolKind: CLASS_MEMBER + typeParameters: [] + visibility: Public + getContainingModule: Could not render due to kotlin.NotImplementedError: An operation is not implemented: org.jetbrains.kotlin.analysis.api.descriptors.symbols.descriptorBased.KtFe10DescSyntheticJavaPropertySymbol + + deprecationStatus: null + getterDeprecationStatus: null + javaGetterName: getSomething + javaSetterName: setSomething + setterDeprecationStatus: null \ No newline at end of file diff --git a/analysis/analysis-api/testData/symbols/symbolByReference/syntheticProperty.kt b/analysis/analysis-api/testData/symbols/symbolByReference/syntheticProperty.kt new file mode 100644 index 00000000000..6c8c05fe91b --- /dev/null +++ b/analysis/analysis-api/testData/symbols/symbolByReference/syntheticProperty.kt @@ -0,0 +1,23 @@ +// DO_NOT_CHECK_SYMBOL_RESTORE_K1 +// FILE: Derived.kt +fun usage() { + Derived().something +} + +class Derived : Base() { + override fun getSomething(): String = "42" + override fun setSomething(s: String) { + + } +} + +// FILE: Base.java +public class Base { + public String getSomething() { + return ""; + } + + public void setSomething(String s) { + + } +} diff --git a/analysis/analysis-api/testData/symbols/symbolByReference/syntheticProperty.pretty.txt b/analysis/analysis-api/testData/symbols/symbolByReference/syntheticProperty.pretty.txt new file mode 100644 index 00000000000..3a18c83a8fd --- /dev/null +++ b/analysis/analysis-api/testData/symbols/symbolByReference/syntheticProperty.pretty.txt @@ -0,0 +1,3 @@ +override var something: kotlin.String + get() + set(s: kotlin.String) diff --git a/analysis/analysis-api/testData/symbols/symbolByReference/syntheticProperty.txt b/analysis/analysis-api/testData/symbols/symbolByReference/syntheticProperty.txt new file mode 100644 index 00000000000..78d10d667c2 --- /dev/null +++ b/analysis/analysis-api/testData/symbols/symbolByReference/syntheticProperty.txt @@ -0,0 +1,137 @@ +KtSyntheticJavaPropertySymbol: + annotationsList: [] + backingFieldSymbol: null + callableIdIfNonLocal: /Derived.something + contextReceivers: [] + getter: KtPropertyGetterSymbol: + annotationsList: [] + callableIdIfNonLocal: /Derived.getSomething + contextReceivers: [] + hasBody: true + hasStableParameterNames: true + isDefault: false + isExtension: false + isInline: false + isOverride: true + modality: OPEN + origin: JAVA_SYNTHETIC_PROPERTY + receiverParameter: null + returnType: KtUsualClassType: + annotationsList: [] + ownTypeArguments: [] + type: kotlin/String + symbolKind: ACCESSOR + typeParameters: [] + valueParameters: [] + visibility: Public + getDispatchReceiver(): KtUsualClassType: + annotationsList: [] + ownTypeArguments: [] + type: Derived + getContainingModule: KtSourceModule "Sources of main" + deprecationStatus: null + hasBackingField: true + hasGetter: true + hasSetter: true + initializer: null + isDelegatedProperty: false + isExtension: false + isFromPrimaryConstructor: false + isOverride: true + isStatic: false + isVal: false + javaGetterSymbol: KtFunctionSymbol(/Derived.getSomething) + javaSetterSymbol: KtFunctionSymbol(/Derived.setSomething) + modality: OPEN + name: something + origin: JAVA_SYNTHETIC_PROPERTY + receiverParameter: null + returnType: KtUsualClassType: + annotationsList: [] + ownTypeArguments: [] + type: kotlin/String + setter: KtPropertySetterSymbol: + annotationsList: [] + callableIdIfNonLocal: /Derived.setSomething + contextReceivers: [] + hasBody: true + hasStableParameterNames: true + isDefault: false + isExtension: false + isInline: false + isOverride: true + modality: OPEN + origin: JAVA_SYNTHETIC_PROPERTY + parameter: KtValueParameterSymbol: + annotationsList: [] + callableIdIfNonLocal: null + contextReceivers: [] + generatedPrimaryConstructorProperty: null + hasDefaultValue: false + isCrossinline: false + isExtension: false + isImplicitLambdaParameter: false + isNoinline: false + isVararg: false + name: s + origin: SOURCE + receiverParameter: null + returnType: KtUsualClassType: + annotationsList: [] + ownTypeArguments: [] + type: kotlin/String + symbolKind: LOCAL + typeParameters: [] + getContainingModule: KtSourceModule "Sources of main" + deprecationStatus: null + receiverParameter: null + returnType: KtUsualClassType: + annotationsList: [] + ownTypeArguments: [] + type: kotlin/Unit + symbolKind: ACCESSOR + typeParameters: [] + valueParameters: [ + KtValueParameterSymbol: + annotationsList: [] + callableIdIfNonLocal: null + contextReceivers: [] + generatedPrimaryConstructorProperty: null + hasDefaultValue: false + isCrossinline: false + isExtension: false + isImplicitLambdaParameter: false + isNoinline: false + isVararg: false + name: s + origin: SOURCE + receiverParameter: null + returnType: KtUsualClassType: + annotationsList: [] + ownTypeArguments: [] + type: kotlin/String + symbolKind: LOCAL + typeParameters: [] + getContainingModule: KtSourceModule "Sources of main" + deprecationStatus: null + ] + visibility: Public + getDispatchReceiver(): KtUsualClassType: + annotationsList: [] + ownTypeArguments: [] + type: Derived + getContainingModule: KtSourceModule "Sources of main" + deprecationStatus: null + symbolKind: CLASS_MEMBER + typeParameters: [] + visibility: Public + getDispatchReceiver(): KtUsualClassType: + annotationsList: [] + ownTypeArguments: [] + type: Derived + getContainingModule: KtSourceModule "Sources of main" + deprecationStatus: null + getterDeprecationStatus: null + javaGetterName: getSomething + javaSetterName: setSomething + setterDeprecationStatus: null diff --git a/analysis/low-level-api-fir/testData/lazyResolve/syntheticProperties/explicitReturnType.kt b/analysis/low-level-api-fir/testData/lazyResolve/syntheticProperties/explicitReturnType.kt new file mode 100644 index 00000000000..396c7248109 --- /dev/null +++ b/analysis/low-level-api-fir/testData/lazyResolve/syntheticProperties/explicitReturnType.kt @@ -0,0 +1,13 @@ +// SKIP_WHEN_OUT_OF_CONTENT_ROOT +// MEMBER_NAME_FILTER: something +// FILE: Derived.kt +class Derived : Base() { + override fun getSomething(): String = "42" +} + +// FILE: Base.java +public class Base { + public String getSomething() { + return ""; + } +} \ No newline at end of file diff --git a/analysis/low-level-api-fir/testData/lazyResolve/syntheticProperties/explicitReturnType.txt b/analysis/low-level-api-fir/testData/lazyResolve/syntheticProperties/explicitReturnType.txt new file mode 100644 index 00000000000..9670af8eea9 --- /dev/null +++ b/analysis/low-level-api-fir/testData/lazyResolve/syntheticProperties/explicitReturnType.txt @@ -0,0 +1,194 @@ +RAW_FIR: +TARGET: public open override [ResolvedTo(STATUS)] val something: R|kotlin/String| + public [] get(): R|kotlin/String| { LAZY_BLOCK } + +FILE: [ResolvedTo(IMPORTS)] Derived.kt + public final [ResolvedTo(STATUS)] class Derived : R|Base| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Derived] constructor(): R|Derived| { + LAZY_super + } + + public open override [ResolvedTo(STATUS)] fun getSomething(): R|kotlin/String| { LAZY_BLOCK } + + } + +IMPORTS: +TARGET: public open override [ResolvedTo(STATUS)] val something: R|kotlin/String| + public [] get(): R|kotlin/String| { LAZY_BLOCK } + +FILE: [ResolvedTo(IMPORTS)] Derived.kt + public final [ResolvedTo(STATUS)] class Derived : R|Base| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Derived] constructor(): R|Derived| { + LAZY_super + } + + public open override [ResolvedTo(STATUS)] fun getSomething(): R|kotlin/String| { LAZY_BLOCK } + + } + +COMPILER_REQUIRED_ANNOTATIONS: +TARGET: public open override [ResolvedTo(STATUS)] val something: R|kotlin/String| + public [] get(): R|kotlin/String| { LAZY_BLOCK } + +FILE: [ResolvedTo(IMPORTS)] Derived.kt + public final [ResolvedTo(STATUS)] class Derived : R|Base| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Derived] constructor(): R|Derived| { + LAZY_super + } + + public open override [ResolvedTo(STATUS)] fun getSomething(): R|kotlin/String| { LAZY_BLOCK } + + } + +COMPANION_GENERATION: +TARGET: public open override [ResolvedTo(STATUS)] val something: R|kotlin/String| + public [] get(): R|kotlin/String| { LAZY_BLOCK } + +FILE: [ResolvedTo(IMPORTS)] Derived.kt + public final [ResolvedTo(STATUS)] class Derived : R|Base| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Derived] constructor(): R|Derived| { + LAZY_super + } + + public open override [ResolvedTo(STATUS)] fun getSomething(): R|kotlin/String| { LAZY_BLOCK } + + } + +SUPER_TYPES: +TARGET: public open override [ResolvedTo(STATUS)] val something: R|kotlin/String| + public [] get(): R|kotlin/String| { LAZY_BLOCK } + +FILE: [ResolvedTo(IMPORTS)] Derived.kt + public final [ResolvedTo(STATUS)] class Derived : R|Base| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Derived] constructor(): R|Derived| { + LAZY_super + } + + public open override [ResolvedTo(STATUS)] fun getSomething(): R|kotlin/String| { LAZY_BLOCK } + + } + +TYPES: +TARGET: public open override [ResolvedTo(STATUS)] val something: R|kotlin/String| + public [] get(): R|kotlin/String| { LAZY_BLOCK } + +FILE: [ResolvedTo(IMPORTS)] Derived.kt + public final [ResolvedTo(STATUS)] class Derived : R|Base| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Derived] constructor(): R|Derived| { + LAZY_super + } + + public open override [ResolvedTo(STATUS)] fun getSomething(): R|kotlin/String| { LAZY_BLOCK } + + } + +STATUS: +TARGET: public open override [ResolvedTo(STATUS)] val something: R|kotlin/String| + public [] get(): R|kotlin/String| { LAZY_BLOCK } + +FILE: [ResolvedTo(IMPORTS)] Derived.kt + public final [ResolvedTo(STATUS)] class Derived : R|Base| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Derived] constructor(): R|Derived| { + LAZY_super + } + + public open override [ResolvedTo(STATUS)] fun getSomething(): R|kotlin/String| { LAZY_BLOCK } + + } + +EXPECT_ACTUAL_MATCHING: +TARGET: public open override [ResolvedTo(STATUS)] val something: R|kotlin/String| + public [] get(): R|kotlin/String| { LAZY_BLOCK } + +FILE: [ResolvedTo(IMPORTS)] Derived.kt + public final [ResolvedTo(STATUS)] class Derived : R|Base| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Derived] constructor(): R|Derived| { + LAZY_super + } + + public open override [ResolvedTo(STATUS)] fun getSomething(): R|kotlin/String| { LAZY_BLOCK } + + } + +ARGUMENTS_OF_ANNOTATIONS: +TARGET: public open override [ResolvedTo(STATUS)] val something: R|kotlin/String| + public [] get(): R|kotlin/String| { LAZY_BLOCK } + +FILE: [ResolvedTo(IMPORTS)] Derived.kt + public final [ResolvedTo(STATUS)] class Derived : R|Base| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Derived] constructor(): R|Derived| { + LAZY_super + } + + public open override [ResolvedTo(STATUS)] fun getSomething(): R|kotlin/String| { LAZY_BLOCK } + + } + +CONTRACTS: +TARGET: public open override [ResolvedTo(STATUS)] val something: R|kotlin/String| + public [] get(): R|kotlin/String| { LAZY_BLOCK } + +FILE: [ResolvedTo(IMPORTS)] Derived.kt + public final [ResolvedTo(STATUS)] class Derived : R|Base| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Derived] constructor(): R|Derived| { + LAZY_super + } + + public open override [ResolvedTo(STATUS)] fun getSomething(): R|kotlin/String| { LAZY_BLOCK } + + } + +IMPLICIT_TYPES_BODY_RESOLVE: +TARGET: public open override [ResolvedTo(STATUS)] val something: R|kotlin/String| + public [] get(): R|kotlin/String| { LAZY_BLOCK } + +FILE: [ResolvedTo(IMPORTS)] Derived.kt + public final [ResolvedTo(STATUS)] class Derived : R|Base| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Derived] constructor(): R|Derived| { + LAZY_super + } + + public open override [ResolvedTo(STATUS)] fun getSomething(): R|kotlin/String| { LAZY_BLOCK } + + } + +ANNOTATIONS_ARGUMENTS_MAPPING: +TARGET: public open override [ResolvedTo(STATUS)] val something: R|kotlin/String| + public [] get(): R|kotlin/String| { LAZY_BLOCK } + +FILE: [ResolvedTo(IMPORTS)] Derived.kt + public final [ResolvedTo(STATUS)] class Derived : R|Base| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Derived] constructor(): R|Derived| { + LAZY_super + } + + public open override [ResolvedTo(STATUS)] fun getSomething(): R|kotlin/String| { LAZY_BLOCK } + + } + +BODY_RESOLVE: +TARGET: public open override [ResolvedTo(STATUS)] val something: R|kotlin/String| + public [] get(): R|kotlin/String| { LAZY_BLOCK } + +FILE: [ResolvedTo(IMPORTS)] Derived.kt + public final [ResolvedTo(STATUS)] class Derived : R|Base| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Derived] constructor(): R|Derived| { + LAZY_super + } + + public open override [ResolvedTo(STATUS)] fun getSomething(): R|kotlin/String| { LAZY_BLOCK } + + } + +FILE RAW TO BODY: +FILE: [ResolvedTo(BODY_RESOLVE)] Derived.kt + public final [ResolvedTo(BODY_RESOLVE)] class Derived : R|Base| { + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=Derived] constructor(): R|Derived| { + super() + } + + public open override [ResolvedTo(BODY_RESOLVE)] fun getSomething(): R|kotlin/String| { + ^getSomething String(42) + } + + } diff --git a/analysis/low-level-api-fir/testData/lazyResolve/syntheticProperties/explicitReturnTypeAndAnnotations.kt b/analysis/low-level-api-fir/testData/lazyResolve/syntheticProperties/explicitReturnTypeAndAnnotations.kt new file mode 100644 index 00000000000..bb52a2715cd --- /dev/null +++ b/analysis/low-level-api-fir/testData/lazyResolve/syntheticProperties/explicitReturnTypeAndAnnotations.kt @@ -0,0 +1,20 @@ +// SKIP_WHEN_OUT_OF_CONTENT_ROOT +// MEMBER_NAME_FILTER: something +// FILE: Derived.kt +class Derived : Base() { + @Anno("number: ${prop}") + override fun getSomething(): @Anno("type: ${prop}") String { + return "str".also(::println) + } +} + +@Target(AnnotationTarget.FUNCTION, AnnotationTarget.TYPE) +annotation class Anno(val s: String) +val prop = 2.let { it + 1 } + +// FILE: Base.java +public class Base { + public String getSomething() { + return ""; + } +} \ No newline at end of file diff --git a/analysis/low-level-api-fir/testData/lazyResolve/syntheticProperties/explicitReturnTypeAndAnnotations.txt b/analysis/low-level-api-fir/testData/lazyResolve/syntheticProperties/explicitReturnTypeAndAnnotations.txt new file mode 100644 index 00000000000..db900e0b262 --- /dev/null +++ b/analysis/low-level-api-fir/testData/lazyResolve/syntheticProperties/explicitReturnTypeAndAnnotations.txt @@ -0,0 +1,351 @@ +RAW_FIR: +TARGET: public open override [ResolvedTo(STATUS)] val something: R|@R|Anno|((String(type: ), prop#)) kotlin/String| + @R|Anno|[Types](LAZY_EXPRESSION) public [] get(): R|@R|Anno|((String(type: ), prop#)) kotlin/String| { LAZY_BLOCK } + +FILE: [ResolvedTo(IMPORTS)] Derived.kt + public final [ResolvedTo(STATUS)] class Derived : R|Base| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Derived] constructor(): R|Derived| { + LAZY_super + } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun getSomething(): R|@R|Anno|((String(type: ), prop#)) kotlin/String| { LAZY_BLOCK } + + } + @R|kotlin/annotation/Target|[CompilerRequiredAnnotations](Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.FUNCTION|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.TYPE|) public? final? [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] annotation class Anno : R|kotlin/Annotation| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=/Anno.s] s: String): R|Anno| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val s: String = R|/s| + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] get(): String + + } + public? final? [ResolvedTo(RAW_FIR)] val prop: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + +IMPORTS: +TARGET: public open override [ResolvedTo(STATUS)] val something: R|@R|Anno|((String(type: ), prop#)) kotlin/String| + @R|Anno|[Types](LAZY_EXPRESSION) public [] get(): R|@R|Anno|((String(type: ), prop#)) kotlin/String| { LAZY_BLOCK } + +FILE: [ResolvedTo(IMPORTS)] Derived.kt + public final [ResolvedTo(STATUS)] class Derived : R|Base| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Derived] constructor(): R|Derived| { + LAZY_super + } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun getSomething(): R|@R|Anno|((String(type: ), prop#)) kotlin/String| { LAZY_BLOCK } + + } + @R|kotlin/annotation/Target|[CompilerRequiredAnnotations](Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.FUNCTION|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.TYPE|) public? final? [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] annotation class Anno : R|kotlin/Annotation| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=/Anno.s] s: String): R|Anno| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val s: String = R|/s| + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] get(): String + + } + public? final? [ResolvedTo(RAW_FIR)] val prop: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + +COMPILER_REQUIRED_ANNOTATIONS: +TARGET: public open override [ResolvedTo(STATUS)] val something: R|@R|Anno|((String(type: ), prop#)) kotlin/String| + @R|Anno|[Types](LAZY_EXPRESSION) public [] get(): R|@R|Anno|((String(type: ), prop#)) kotlin/String| { LAZY_BLOCK } + +FILE: [ResolvedTo(IMPORTS)] Derived.kt + public final [ResolvedTo(STATUS)] class Derived : R|Base| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Derived] constructor(): R|Derived| { + LAZY_super + } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun getSomething(): R|@R|Anno|((String(type: ), prop#)) kotlin/String| { LAZY_BLOCK } + + } + @R|kotlin/annotation/Target|[CompilerRequiredAnnotations](Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.FUNCTION|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.TYPE|) public? final? [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] annotation class Anno : R|kotlin/Annotation| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=/Anno.s] s: String): R|Anno| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val s: String = R|/s| + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] get(): String + + } + public? final? [ResolvedTo(RAW_FIR)] val prop: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + +COMPANION_GENERATION: +TARGET: public open override [ResolvedTo(STATUS)] val something: R|@R|Anno|((String(type: ), prop#)) kotlin/String| + @R|Anno|[Types](LAZY_EXPRESSION) public [] get(): R|@R|Anno|((String(type: ), prop#)) kotlin/String| { LAZY_BLOCK } + +FILE: [ResolvedTo(IMPORTS)] Derived.kt + public final [ResolvedTo(STATUS)] class Derived : R|Base| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Derived] constructor(): R|Derived| { + LAZY_super + } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun getSomething(): R|@R|Anno|((String(type: ), prop#)) kotlin/String| { LAZY_BLOCK } + + } + @R|kotlin/annotation/Target|[CompilerRequiredAnnotations](Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.FUNCTION|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.TYPE|) public? final? [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] annotation class Anno : R|kotlin/Annotation| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=/Anno.s] s: String): R|Anno| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val s: String = R|/s| + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] get(): String + + } + public? final? [ResolvedTo(RAW_FIR)] val prop: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + +SUPER_TYPES: +TARGET: public open override [ResolvedTo(STATUS)] val something: R|@R|Anno|((String(type: ), prop#)) kotlin/String| + @R|Anno|[Types](LAZY_EXPRESSION) public [] get(): R|@R|Anno|((String(type: ), prop#)) kotlin/String| { LAZY_BLOCK } + +FILE: [ResolvedTo(IMPORTS)] Derived.kt + public final [ResolvedTo(STATUS)] class Derived : R|Base| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Derived] constructor(): R|Derived| { + LAZY_super + } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun getSomething(): R|@R|Anno|((String(type: ), prop#)) kotlin/String| { LAZY_BLOCK } + + } + @R|kotlin/annotation/Target|[CompilerRequiredAnnotations](Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.FUNCTION|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.TYPE|) public? final? [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] annotation class Anno : R|kotlin/Annotation| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=/Anno.s] s: String): R|Anno| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val s: String = R|/s| + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] get(): String + + } + public? final? [ResolvedTo(RAW_FIR)] val prop: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + +TYPES: +TARGET: public open override [ResolvedTo(STATUS)] val something: R|@R|Anno|((String(type: ), prop#)) kotlin/String| + @R|Anno|[Types](LAZY_EXPRESSION) public [] get(): R|@R|Anno|((String(type: ), prop#)) kotlin/String| { LAZY_BLOCK } + +FILE: [ResolvedTo(IMPORTS)] Derived.kt + public final [ResolvedTo(STATUS)] class Derived : R|Base| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Derived] constructor(): R|Derived| { + LAZY_super + } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun getSomething(): R|@R|Anno|((String(type: ), prop#)) kotlin/String| { LAZY_BLOCK } + + } + @R|kotlin/annotation/Target|[CompilerRequiredAnnotations](Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.FUNCTION|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.TYPE|) public? final? [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] annotation class Anno : R|kotlin/Annotation| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=/Anno.s] s: String): R|Anno| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val s: String = R|/s| + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] get(): String + + } + public? final? [ResolvedTo(RAW_FIR)] val prop: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + +STATUS: +TARGET: public open override [ResolvedTo(STATUS)] val something: R|@R|Anno|((String(type: ), prop#)) kotlin/String| + @R|Anno|[Types](LAZY_EXPRESSION) public [] get(): R|@R|Anno|((String(type: ), prop#)) kotlin/String| { LAZY_BLOCK } + +FILE: [ResolvedTo(IMPORTS)] Derived.kt + public final [ResolvedTo(STATUS)] class Derived : R|Base| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Derived] constructor(): R|Derived| { + LAZY_super + } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun getSomething(): R|@R|Anno|((String(type: ), prop#)) kotlin/String| { LAZY_BLOCK } + + } + @R|kotlin/annotation/Target|[CompilerRequiredAnnotations](Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.FUNCTION|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.TYPE|) public? final? [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] annotation class Anno : R|kotlin/Annotation| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=/Anno.s] s: String): R|Anno| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val s: String = R|/s| + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] get(): String + + } + public? final? [ResolvedTo(RAW_FIR)] val prop: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + +EXPECT_ACTUAL_MATCHING: +TARGET: public open override [ResolvedTo(STATUS)] val something: R|@R|Anno|((String(type: ), prop#)) kotlin/String| + @R|Anno|[Types](LAZY_EXPRESSION) public [] get(): R|@R|Anno|((String(type: ), prop#)) kotlin/String| { LAZY_BLOCK } + +FILE: [ResolvedTo(IMPORTS)] Derived.kt + public final [ResolvedTo(STATUS)] class Derived : R|Base| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Derived] constructor(): R|Derived| { + LAZY_super + } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun getSomething(): R|@R|Anno|((String(type: ), prop#)) kotlin/String| { LAZY_BLOCK } + + } + @R|kotlin/annotation/Target|[CompilerRequiredAnnotations](Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.FUNCTION|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.TYPE|) public? final? [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] annotation class Anno : R|kotlin/Annotation| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=/Anno.s] s: String): R|Anno| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val s: String = R|/s| + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] get(): String + + } + public? final? [ResolvedTo(RAW_FIR)] val prop: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + +ARGUMENTS_OF_ANNOTATIONS: +TARGET: public open override [ResolvedTo(STATUS)] val something: R|@R|Anno|((String(type: ), prop#)) kotlin/String| + @R|Anno|[Types](LAZY_EXPRESSION) public [] get(): R|@R|Anno|((String(type: ), prop#)) kotlin/String| { LAZY_BLOCK } + +FILE: [ResolvedTo(IMPORTS)] Derived.kt + public final [ResolvedTo(STATUS)] class Derived : R|Base| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Derived] constructor(): R|Derived| { + LAZY_super + } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun getSomething(): R|@R|Anno|((String(type: ), prop#)) kotlin/String| { LAZY_BLOCK } + + } + @R|kotlin/annotation/Target|[CompilerRequiredAnnotations](Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.FUNCTION|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.TYPE|) public? final? [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] annotation class Anno : R|kotlin/Annotation| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=/Anno.s] s: String): R|Anno| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val s: String = R|/s| + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] get(): String + + } + public? final? [ResolvedTo(RAW_FIR)] val prop: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + +CONTRACTS: +TARGET: public open override [ResolvedTo(STATUS)] val something: R|@R|Anno|((String(type: ), prop#)) kotlin/String| + @R|Anno|[Types](LAZY_EXPRESSION) public [] get(): R|@R|Anno|((String(type: ), prop#)) kotlin/String| { LAZY_BLOCK } + +FILE: [ResolvedTo(IMPORTS)] Derived.kt + public final [ResolvedTo(STATUS)] class Derived : R|Base| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Derived] constructor(): R|Derived| { + LAZY_super + } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun getSomething(): R|@R|Anno|((String(type: ), prop#)) kotlin/String| { LAZY_BLOCK } + + } + @R|kotlin/annotation/Target|[CompilerRequiredAnnotations](Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.FUNCTION|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.TYPE|) public? final? [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] annotation class Anno : R|kotlin/Annotation| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=/Anno.s] s: String): R|Anno| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val s: String = R|/s| + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] get(): String + + } + public? final? [ResolvedTo(RAW_FIR)] val prop: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + +IMPLICIT_TYPES_BODY_RESOLVE: +TARGET: public open override [ResolvedTo(STATUS)] val something: R|@R|Anno|((String(type: ), prop#)) kotlin/String| + @R|Anno|[Types](LAZY_EXPRESSION) public [] get(): R|@R|Anno|((String(type: ), prop#)) kotlin/String| { LAZY_BLOCK } + +FILE: [ResolvedTo(IMPORTS)] Derived.kt + public final [ResolvedTo(STATUS)] class Derived : R|Base| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Derived] constructor(): R|Derived| { + LAZY_super + } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun getSomething(): R|@R|Anno|((String(type: ), prop#)) kotlin/String| { LAZY_BLOCK } + + } + @R|kotlin/annotation/Target|[CompilerRequiredAnnotations](Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.FUNCTION|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.TYPE|) public? final? [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] annotation class Anno : R|kotlin/Annotation| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=/Anno.s] s: String): R|Anno| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val s: String = R|/s| + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] get(): String + + } + public? final? [ResolvedTo(RAW_FIR)] val prop: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + +ANNOTATIONS_ARGUMENTS_MAPPING: +TARGET: public open override [ResolvedTo(STATUS)] val something: R|@R|Anno|((String(type: ), prop#)) kotlin/String| + @R|Anno|[Types](LAZY_EXPRESSION) public [] get(): R|@R|Anno|((String(type: ), prop#)) kotlin/String| { LAZY_BLOCK } + +FILE: [ResolvedTo(IMPORTS)] Derived.kt + public final [ResolvedTo(STATUS)] class Derived : R|Base| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Derived] constructor(): R|Derived| { + LAZY_super + } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun getSomething(): R|@R|Anno|((String(type: ), prop#)) kotlin/String| { LAZY_BLOCK } + + } + @R|kotlin/annotation/Target|[CompilerRequiredAnnotations](Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.FUNCTION|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.TYPE|) public? final? [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] annotation class Anno : R|kotlin/Annotation| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=/Anno.s] s: String): R|Anno| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val s: String = R|/s| + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] get(): String + + } + public? final? [ResolvedTo(RAW_FIR)] val prop: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + +BODY_RESOLVE: +TARGET: public open override [ResolvedTo(STATUS)] val something: R|@R|Anno|((String(type: ), prop#)) kotlin/String| + @R|Anno|[Types](LAZY_EXPRESSION) public [] get(): R|@R|Anno|((String(type: ), prop#)) kotlin/String| { LAZY_BLOCK } + +FILE: [ResolvedTo(IMPORTS)] Derived.kt + public final [ResolvedTo(STATUS)] class Derived : R|Base| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Derived] constructor(): R|Derived| { + LAZY_super + } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun getSomething(): R|@R|Anno|((String(type: ), prop#)) kotlin/String| { LAZY_BLOCK } + + } + @R|kotlin/annotation/Target|[CompilerRequiredAnnotations](Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.FUNCTION|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.TYPE|) public? final? [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] annotation class Anno : R|kotlin/Annotation| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=/Anno.s] s: String): R|Anno| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val s: String = R|/s| + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] get(): String + + } + public? final? [ResolvedTo(RAW_FIR)] val prop: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + +FILE RAW TO BODY: +FILE: [ResolvedTo(BODY_RESOLVE)] Derived.kt + public final [ResolvedTo(BODY_RESOLVE)] class Derived : R|Base| { + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=Derived] constructor(): R|Derived| { + super() + } + + @R|Anno|[Types](s = (String(number: ), R|/prop|)) public open override [ResolvedTo(BODY_RESOLVE)] fun getSomething(): R|@R|Anno|(s = (String(type: ), R|/prop|)) kotlin/String| { + ^getSomething String(str).R|kotlin/also|(String(type: ), R|/prop|)) kotlin/String|>(::R|kotlin/io/println|) + } + + } + @R|kotlin/annotation/Target|[Types](allowedTargets = vararg(Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.FUNCTION|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.TYPE|)) public final [ResolvedTo(BODY_RESOLVE)] annotation class Anno : R|kotlin/Annotation| { + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=Anno] constructor([ResolvedTo(BODY_RESOLVE)] [CorrespondingProperty=/Anno.s] s: R|kotlin/String|): R|Anno| { + super() + } + + public final [ResolvedTo(BODY_RESOLVE)] [IsFromPrimaryConstructor=true] val s: R|kotlin/String| = R|/s| + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=Anno] get(): R|kotlin/String| + + } + public final [ResolvedTo(BODY_RESOLVE)] val prop: R|kotlin/Int| = Int(2).R|kotlin/let|( = [ResolvedTo(BODY_RESOLVE)] [MatchingParameterFunctionTypeKey=kotlin/Function1] let@fun ([ResolvedTo(BODY_RESOLVE)] it: R|kotlin/Int|): R|kotlin/Int| { + ^ R|/it|.R|kotlin/Int.plus|(Int(1)) + } + ) + public [ResolvedTo(BODY_RESOLVE)] get(): R|kotlin/Int| diff --git a/analysis/low-level-api-fir/testData/lazyResolve/syntheticProperties/implicitReturnType.kt b/analysis/low-level-api-fir/testData/lazyResolve/syntheticProperties/implicitReturnType.kt new file mode 100644 index 00000000000..6e31cbdf025 --- /dev/null +++ b/analysis/low-level-api-fir/testData/lazyResolve/syntheticProperties/implicitReturnType.kt @@ -0,0 +1,13 @@ +// SKIP_WHEN_OUT_OF_CONTENT_ROOT +// MEMBER_NAME_FILTER: something +// FILE: Derived.kt +class Derived : Base() { + override fun getSomething() = "42" +} + +// FILE: Base.java +public class Base { + public String getSomething() { + return ""; + } +} \ No newline at end of file diff --git a/analysis/low-level-api-fir/testData/lazyResolve/syntheticProperties/implicitReturnType.txt b/analysis/low-level-api-fir/testData/lazyResolve/syntheticProperties/implicitReturnType.txt new file mode 100644 index 00000000000..057cd47979f --- /dev/null +++ b/analysis/low-level-api-fir/testData/lazyResolve/syntheticProperties/implicitReturnType.txt @@ -0,0 +1,194 @@ +RAW_FIR: +TARGET: public open override [ResolvedTo(STATUS)] val something: + public [] get(): { LAZY_BLOCK } + +FILE: [ResolvedTo(IMPORTS)] Derived.kt + public final [ResolvedTo(STATUS)] class Derived : R|Base| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Derived] constructor(): R|Derived| { + LAZY_super + } + + public open override [ResolvedTo(STATUS)] fun getSomething(): { LAZY_BLOCK } + + } + +IMPORTS: +TARGET: public open override [ResolvedTo(STATUS)] val something: + public [] get(): { LAZY_BLOCK } + +FILE: [ResolvedTo(IMPORTS)] Derived.kt + public final [ResolvedTo(STATUS)] class Derived : R|Base| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Derived] constructor(): R|Derived| { + LAZY_super + } + + public open override [ResolvedTo(STATUS)] fun getSomething(): { LAZY_BLOCK } + + } + +COMPILER_REQUIRED_ANNOTATIONS: +TARGET: public open override [ResolvedTo(STATUS)] val something: + public [] get(): { LAZY_BLOCK } + +FILE: [ResolvedTo(IMPORTS)] Derived.kt + public final [ResolvedTo(STATUS)] class Derived : R|Base| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Derived] constructor(): R|Derived| { + LAZY_super + } + + public open override [ResolvedTo(STATUS)] fun getSomething(): { LAZY_BLOCK } + + } + +COMPANION_GENERATION: +TARGET: public open override [ResolvedTo(STATUS)] val something: + public [] get(): { LAZY_BLOCK } + +FILE: [ResolvedTo(IMPORTS)] Derived.kt + public final [ResolvedTo(STATUS)] class Derived : R|Base| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Derived] constructor(): R|Derived| { + LAZY_super + } + + public open override [ResolvedTo(STATUS)] fun getSomething(): { LAZY_BLOCK } + + } + +SUPER_TYPES: +TARGET: public open override [ResolvedTo(STATUS)] val something: + public [] get(): { LAZY_BLOCK } + +FILE: [ResolvedTo(IMPORTS)] Derived.kt + public final [ResolvedTo(STATUS)] class Derived : R|Base| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Derived] constructor(): R|Derived| { + LAZY_super + } + + public open override [ResolvedTo(STATUS)] fun getSomething(): { LAZY_BLOCK } + + } + +TYPES: +TARGET: public open override [ResolvedTo(STATUS)] val something: + public [] get(): { LAZY_BLOCK } + +FILE: [ResolvedTo(IMPORTS)] Derived.kt + public final [ResolvedTo(STATUS)] class Derived : R|Base| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Derived] constructor(): R|Derived| { + LAZY_super + } + + public open override [ResolvedTo(STATUS)] fun getSomething(): { LAZY_BLOCK } + + } + +STATUS: +TARGET: public open override [ResolvedTo(STATUS)] val something: + public [] get(): { LAZY_BLOCK } + +FILE: [ResolvedTo(IMPORTS)] Derived.kt + public final [ResolvedTo(STATUS)] class Derived : R|Base| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Derived] constructor(): R|Derived| { + LAZY_super + } + + public open override [ResolvedTo(STATUS)] fun getSomething(): { LAZY_BLOCK } + + } + +EXPECT_ACTUAL_MATCHING: +TARGET: public open override [ResolvedTo(STATUS)] val something: + public [] get(): { LAZY_BLOCK } + +FILE: [ResolvedTo(IMPORTS)] Derived.kt + public final [ResolvedTo(STATUS)] class Derived : R|Base| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Derived] constructor(): R|Derived| { + LAZY_super + } + + public open override [ResolvedTo(STATUS)] fun getSomething(): { LAZY_BLOCK } + + } + +ARGUMENTS_OF_ANNOTATIONS: +TARGET: public open override [ResolvedTo(STATUS)] val something: + public [] get(): { LAZY_BLOCK } + +FILE: [ResolvedTo(IMPORTS)] Derived.kt + public final [ResolvedTo(STATUS)] class Derived : R|Base| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Derived] constructor(): R|Derived| { + LAZY_super + } + + public open override [ResolvedTo(STATUS)] fun getSomething(): { LAZY_BLOCK } + + } + +CONTRACTS: +TARGET: public open override [ResolvedTo(STATUS)] val something: + public [] get(): { LAZY_BLOCK } + +FILE: [ResolvedTo(IMPORTS)] Derived.kt + public final [ResolvedTo(STATUS)] class Derived : R|Base| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Derived] constructor(): R|Derived| { + LAZY_super + } + + public open override [ResolvedTo(STATUS)] fun getSomething(): { LAZY_BLOCK } + + } + +IMPLICIT_TYPES_BODY_RESOLVE: +TARGET: public open override [ResolvedTo(STATUS)] val something: + public [] get(): { LAZY_BLOCK } + +FILE: [ResolvedTo(IMPORTS)] Derived.kt + public final [ResolvedTo(STATUS)] class Derived : R|Base| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Derived] constructor(): R|Derived| { + LAZY_super + } + + public open override [ResolvedTo(STATUS)] fun getSomething(): { LAZY_BLOCK } + + } + +ANNOTATIONS_ARGUMENTS_MAPPING: +TARGET: public open override [ResolvedTo(STATUS)] val something: + public [] get(): { LAZY_BLOCK } + +FILE: [ResolvedTo(IMPORTS)] Derived.kt + public final [ResolvedTo(STATUS)] class Derived : R|Base| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Derived] constructor(): R|Derived| { + LAZY_super + } + + public open override [ResolvedTo(STATUS)] fun getSomething(): { LAZY_BLOCK } + + } + +BODY_RESOLVE: +TARGET: public open override [ResolvedTo(STATUS)] val something: + public [] get(): { LAZY_BLOCK } + +FILE: [ResolvedTo(IMPORTS)] Derived.kt + public final [ResolvedTo(STATUS)] class Derived : R|Base| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Derived] constructor(): R|Derived| { + LAZY_super + } + + public open override [ResolvedTo(STATUS)] fun getSomething(): { LAZY_BLOCK } + + } + +FILE RAW TO BODY: +FILE: [ResolvedTo(BODY_RESOLVE)] Derived.kt + public final [ResolvedTo(BODY_RESOLVE)] class Derived : R|Base| { + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=Derived] constructor(): R|Derived| { + super() + } + + public open override [ResolvedTo(BODY_RESOLVE)] fun getSomething(): R|kotlin/String| { + ^getSomething String(42) + } + + } diff --git a/analysis/low-level-api-fir/testData/lazyResolve/syntheticProperties/implicitReturnTypeAndAnnotations.kt b/analysis/low-level-api-fir/testData/lazyResolve/syntheticProperties/implicitReturnTypeAndAnnotations.kt new file mode 100644 index 00000000000..b7bbc42c4ad --- /dev/null +++ b/analysis/low-level-api-fir/testData/lazyResolve/syntheticProperties/implicitReturnTypeAndAnnotations.kt @@ -0,0 +1,19 @@ +// SKIP_WHEN_OUT_OF_CONTENT_ROOT +// MEMBER_NAME_FILTER: something +// FILE: Derived.kt +class Derived : Base() { + @Anno("number: ${prop}") + override fun getSomething() = "body: ${propertyFromBody}" +} + +@Target(AnnotationTarget.FUNCTION, AnnotationTarget.TYPE) +annotation class Anno(val s: String) +val prop = 2.let { it + 1 } +val propertyFromBody = "str" + 1.toString() + +// FILE: Base.java +public class Base { + public String getSomething() { + return ""; + } +} \ No newline at end of file diff --git a/analysis/low-level-api-fir/testData/lazyResolve/syntheticProperties/implicitReturnTypeAndAnnotations.txt b/analysis/low-level-api-fir/testData/lazyResolve/syntheticProperties/implicitReturnTypeAndAnnotations.txt new file mode 100644 index 00000000000..6f4bcb74f28 --- /dev/null +++ b/analysis/low-level-api-fir/testData/lazyResolve/syntheticProperties/implicitReturnTypeAndAnnotations.txt @@ -0,0 +1,379 @@ +RAW_FIR: +TARGET: public open override [ResolvedTo(STATUS)] val something: + @R|Anno|[Types](LAZY_EXPRESSION) public [] get(): { LAZY_BLOCK } + +FILE: [ResolvedTo(IMPORTS)] Derived.kt + public final [ResolvedTo(STATUS)] class Derived : R|Base| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Derived] constructor(): R|Derived| { + LAZY_super + } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun getSomething(): { LAZY_BLOCK } + + } + @R|kotlin/annotation/Target|[CompilerRequiredAnnotations](Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.FUNCTION|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.TYPE|) public? final? [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] annotation class Anno : R|kotlin/Annotation| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=/Anno.s] s: String): R|Anno| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val s: String = R|/s| + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] get(): String + + } + public? final? [ResolvedTo(RAW_FIR)] val prop: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val propertyFromBody: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + +IMPORTS: +TARGET: public open override [ResolvedTo(STATUS)] val something: + @R|Anno|[Types](LAZY_EXPRESSION) public [] get(): { LAZY_BLOCK } + +FILE: [ResolvedTo(IMPORTS)] Derived.kt + public final [ResolvedTo(STATUS)] class Derived : R|Base| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Derived] constructor(): R|Derived| { + LAZY_super + } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun getSomething(): { LAZY_BLOCK } + + } + @R|kotlin/annotation/Target|[CompilerRequiredAnnotations](Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.FUNCTION|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.TYPE|) public? final? [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] annotation class Anno : R|kotlin/Annotation| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=/Anno.s] s: String): R|Anno| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val s: String = R|/s| + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] get(): String + + } + public? final? [ResolvedTo(RAW_FIR)] val prop: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val propertyFromBody: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + +COMPILER_REQUIRED_ANNOTATIONS: +TARGET: public open override [ResolvedTo(STATUS)] val something: + @R|Anno|[Types](LAZY_EXPRESSION) public [] get(): { LAZY_BLOCK } + +FILE: [ResolvedTo(IMPORTS)] Derived.kt + public final [ResolvedTo(STATUS)] class Derived : R|Base| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Derived] constructor(): R|Derived| { + LAZY_super + } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun getSomething(): { LAZY_BLOCK } + + } + @R|kotlin/annotation/Target|[CompilerRequiredAnnotations](Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.FUNCTION|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.TYPE|) public? final? [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] annotation class Anno : R|kotlin/Annotation| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=/Anno.s] s: String): R|Anno| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val s: String = R|/s| + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] get(): String + + } + public? final? [ResolvedTo(RAW_FIR)] val prop: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val propertyFromBody: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + +COMPANION_GENERATION: +TARGET: public open override [ResolvedTo(STATUS)] val something: + @R|Anno|[Types](LAZY_EXPRESSION) public [] get(): { LAZY_BLOCK } + +FILE: [ResolvedTo(IMPORTS)] Derived.kt + public final [ResolvedTo(STATUS)] class Derived : R|Base| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Derived] constructor(): R|Derived| { + LAZY_super + } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun getSomething(): { LAZY_BLOCK } + + } + @R|kotlin/annotation/Target|[CompilerRequiredAnnotations](Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.FUNCTION|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.TYPE|) public? final? [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] annotation class Anno : R|kotlin/Annotation| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=/Anno.s] s: String): R|Anno| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val s: String = R|/s| + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] get(): String + + } + public? final? [ResolvedTo(RAW_FIR)] val prop: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val propertyFromBody: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + +SUPER_TYPES: +TARGET: public open override [ResolvedTo(STATUS)] val something: + @R|Anno|[Types](LAZY_EXPRESSION) public [] get(): { LAZY_BLOCK } + +FILE: [ResolvedTo(IMPORTS)] Derived.kt + public final [ResolvedTo(STATUS)] class Derived : R|Base| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Derived] constructor(): R|Derived| { + LAZY_super + } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun getSomething(): { LAZY_BLOCK } + + } + @R|kotlin/annotation/Target|[CompilerRequiredAnnotations](Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.FUNCTION|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.TYPE|) public? final? [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] annotation class Anno : R|kotlin/Annotation| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=/Anno.s] s: String): R|Anno| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val s: String = R|/s| + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] get(): String + + } + public? final? [ResolvedTo(RAW_FIR)] val prop: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val propertyFromBody: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + +TYPES: +TARGET: public open override [ResolvedTo(STATUS)] val something: + @R|Anno|[Types](LAZY_EXPRESSION) public [] get(): { LAZY_BLOCK } + +FILE: [ResolvedTo(IMPORTS)] Derived.kt + public final [ResolvedTo(STATUS)] class Derived : R|Base| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Derived] constructor(): R|Derived| { + LAZY_super + } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun getSomething(): { LAZY_BLOCK } + + } + @R|kotlin/annotation/Target|[CompilerRequiredAnnotations](Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.FUNCTION|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.TYPE|) public? final? [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] annotation class Anno : R|kotlin/Annotation| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=/Anno.s] s: String): R|Anno| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val s: String = R|/s| + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] get(): String + + } + public? final? [ResolvedTo(RAW_FIR)] val prop: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val propertyFromBody: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + +STATUS: +TARGET: public open override [ResolvedTo(STATUS)] val something: + @R|Anno|[Types](LAZY_EXPRESSION) public [] get(): { LAZY_BLOCK } + +FILE: [ResolvedTo(IMPORTS)] Derived.kt + public final [ResolvedTo(STATUS)] class Derived : R|Base| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Derived] constructor(): R|Derived| { + LAZY_super + } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun getSomething(): { LAZY_BLOCK } + + } + @R|kotlin/annotation/Target|[CompilerRequiredAnnotations](Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.FUNCTION|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.TYPE|) public? final? [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] annotation class Anno : R|kotlin/Annotation| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=/Anno.s] s: String): R|Anno| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val s: String = R|/s| + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] get(): String + + } + public? final? [ResolvedTo(RAW_FIR)] val prop: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val propertyFromBody: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + +EXPECT_ACTUAL_MATCHING: +TARGET: public open override [ResolvedTo(STATUS)] val something: + @R|Anno|[Types](LAZY_EXPRESSION) public [] get(): { LAZY_BLOCK } + +FILE: [ResolvedTo(IMPORTS)] Derived.kt + public final [ResolvedTo(STATUS)] class Derived : R|Base| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Derived] constructor(): R|Derived| { + LAZY_super + } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun getSomething(): { LAZY_BLOCK } + + } + @R|kotlin/annotation/Target|[CompilerRequiredAnnotations](Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.FUNCTION|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.TYPE|) public? final? [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] annotation class Anno : R|kotlin/Annotation| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=/Anno.s] s: String): R|Anno| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val s: String = R|/s| + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] get(): String + + } + public? final? [ResolvedTo(RAW_FIR)] val prop: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val propertyFromBody: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + +ARGUMENTS_OF_ANNOTATIONS: +TARGET: public open override [ResolvedTo(STATUS)] val something: + @R|Anno|[Types](LAZY_EXPRESSION) public [] get(): { LAZY_BLOCK } + +FILE: [ResolvedTo(IMPORTS)] Derived.kt + public final [ResolvedTo(STATUS)] class Derived : R|Base| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Derived] constructor(): R|Derived| { + LAZY_super + } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun getSomething(): { LAZY_BLOCK } + + } + @R|kotlin/annotation/Target|[CompilerRequiredAnnotations](Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.FUNCTION|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.TYPE|) public? final? [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] annotation class Anno : R|kotlin/Annotation| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=/Anno.s] s: String): R|Anno| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val s: String = R|/s| + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] get(): String + + } + public? final? [ResolvedTo(RAW_FIR)] val prop: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val propertyFromBody: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + +CONTRACTS: +TARGET: public open override [ResolvedTo(STATUS)] val something: + @R|Anno|[Types](LAZY_EXPRESSION) public [] get(): { LAZY_BLOCK } + +FILE: [ResolvedTo(IMPORTS)] Derived.kt + public final [ResolvedTo(STATUS)] class Derived : R|Base| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Derived] constructor(): R|Derived| { + LAZY_super + } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun getSomething(): { LAZY_BLOCK } + + } + @R|kotlin/annotation/Target|[CompilerRequiredAnnotations](Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.FUNCTION|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.TYPE|) public? final? [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] annotation class Anno : R|kotlin/Annotation| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=/Anno.s] s: String): R|Anno| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val s: String = R|/s| + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] get(): String + + } + public? final? [ResolvedTo(RAW_FIR)] val prop: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val propertyFromBody: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + +IMPLICIT_TYPES_BODY_RESOLVE: +TARGET: public open override [ResolvedTo(STATUS)] val something: + @R|Anno|[Types](LAZY_EXPRESSION) public [] get(): { LAZY_BLOCK } + +FILE: [ResolvedTo(IMPORTS)] Derived.kt + public final [ResolvedTo(STATUS)] class Derived : R|Base| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Derived] constructor(): R|Derived| { + LAZY_super + } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun getSomething(): { LAZY_BLOCK } + + } + @R|kotlin/annotation/Target|[CompilerRequiredAnnotations](Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.FUNCTION|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.TYPE|) public? final? [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] annotation class Anno : R|kotlin/Annotation| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=/Anno.s] s: String): R|Anno| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val s: String = R|/s| + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] get(): String + + } + public? final? [ResolvedTo(RAW_FIR)] val prop: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val propertyFromBody: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + +ANNOTATIONS_ARGUMENTS_MAPPING: +TARGET: public open override [ResolvedTo(STATUS)] val something: + @R|Anno|[Types](LAZY_EXPRESSION) public [] get(): { LAZY_BLOCK } + +FILE: [ResolvedTo(IMPORTS)] Derived.kt + public final [ResolvedTo(STATUS)] class Derived : R|Base| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Derived] constructor(): R|Derived| { + LAZY_super + } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun getSomething(): { LAZY_BLOCK } + + } + @R|kotlin/annotation/Target|[CompilerRequiredAnnotations](Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.FUNCTION|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.TYPE|) public? final? [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] annotation class Anno : R|kotlin/Annotation| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=/Anno.s] s: String): R|Anno| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val s: String = R|/s| + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] get(): String + + } + public? final? [ResolvedTo(RAW_FIR)] val prop: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val propertyFromBody: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + +BODY_RESOLVE: +TARGET: public open override [ResolvedTo(STATUS)] val something: + @R|Anno|[Types](LAZY_EXPRESSION) public [] get(): { LAZY_BLOCK } + +FILE: [ResolvedTo(IMPORTS)] Derived.kt + public final [ResolvedTo(STATUS)] class Derived : R|Base| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Derived] constructor(): R|Derived| { + LAZY_super + } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun getSomething(): { LAZY_BLOCK } + + } + @R|kotlin/annotation/Target|[CompilerRequiredAnnotations](Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.FUNCTION|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.TYPE|) public? final? [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] annotation class Anno : R|kotlin/Annotation| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=/Anno.s] s: String): R|Anno| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val s: String = R|/s| + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] get(): String + + } + public? final? [ResolvedTo(RAW_FIR)] val prop: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val propertyFromBody: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + +FILE RAW TO BODY: +FILE: [ResolvedTo(BODY_RESOLVE)] Derived.kt + public final [ResolvedTo(BODY_RESOLVE)] class Derived : R|Base| { + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=Derived] constructor(): R|Derived| { + super() + } + + @R|Anno|[Types](s = (String(number: ), R|/prop|)) public open override [ResolvedTo(BODY_RESOLVE)] fun getSomething(): R|kotlin/String| { + ^getSomething (String(body: ), R|/propertyFromBody|) + } + + } + @R|kotlin/annotation/Target|[Types](allowedTargets = vararg(Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.FUNCTION|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.TYPE|)) public final [ResolvedTo(BODY_RESOLVE)] annotation class Anno : R|kotlin/Annotation| { + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=Anno] constructor([ResolvedTo(BODY_RESOLVE)] [CorrespondingProperty=/Anno.s] s: R|kotlin/String|): R|Anno| { + super() + } + + public final [ResolvedTo(BODY_RESOLVE)] [IsFromPrimaryConstructor=true] val s: R|kotlin/String| = R|/s| + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=Anno] get(): R|kotlin/String| + + } + public final [ResolvedTo(BODY_RESOLVE)] val prop: R|kotlin/Int| = Int(2).R|kotlin/let|( = [ResolvedTo(BODY_RESOLVE)] [MatchingParameterFunctionTypeKey=kotlin/Function1] let@fun ([ResolvedTo(BODY_RESOLVE)] it: R|kotlin/Int|): R|kotlin/Int| { + ^ R|/it|.R|kotlin/Int.plus|(Int(1)) + } + ) + public [ResolvedTo(BODY_RESOLVE)] get(): R|kotlin/Int| + public final [ResolvedTo(BODY_RESOLVE)] val propertyFromBody: R|kotlin/String| = String(str).R|kotlin/String.plus|(Int(1).R|kotlin/Int.toString|()) + public [ResolvedTo(BODY_RESOLVE)] get(): R|kotlin/String| diff --git a/analysis/low-level-api-fir/testData/lazyResolve/syntheticProperties/implicitReturnTypeAndAnnotationsAsGetter.kt b/analysis/low-level-api-fir/testData/lazyResolve/syntheticProperties/implicitReturnTypeAndAnnotationsAsGetter.kt new file mode 100644 index 00000000000..6ac8759ae8f --- /dev/null +++ b/analysis/low-level-api-fir/testData/lazyResolve/syntheticProperties/implicitReturnTypeAndAnnotationsAsGetter.kt @@ -0,0 +1,20 @@ +// SKIP_WHEN_OUT_OF_CONTENT_ROOT +// MEMBER_NAME_FILTER: something +// IS_GETTER: true +// FILE: Derived.kt +class Derived : Base() { + @Anno("number: ${prop}") + override fun getSomething() = "body: ${propertyFromBody}" +} + +@Target(AnnotationTarget.FUNCTION, AnnotationTarget.TYPE) +annotation class Anno(val s: String) +val prop = 2.let { it + 1 } +val propertyFromBody = "str" + 1.toString() + +// FILE: Base.java +public class Base { + public String getSomething() { + return ""; + } +} \ No newline at end of file diff --git a/analysis/low-level-api-fir/testData/lazyResolve/syntheticProperties/implicitReturnTypeAndAnnotationsAsGetter.txt b/analysis/low-level-api-fir/testData/lazyResolve/syntheticProperties/implicitReturnTypeAndAnnotationsAsGetter.txt new file mode 100644 index 00000000000..50249ac7853 --- /dev/null +++ b/analysis/low-level-api-fir/testData/lazyResolve/syntheticProperties/implicitReturnTypeAndAnnotationsAsGetter.txt @@ -0,0 +1,366 @@ +RAW_FIR: +TARGET: @R|Anno|[Types](LAZY_EXPRESSION) public [] get(): { LAZY_BLOCK } + +FILE: [ResolvedTo(IMPORTS)] Derived.kt + public final [ResolvedTo(STATUS)] class Derived : R|Base| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Derived] constructor(): R|Derived| { + LAZY_super + } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun getSomething(): { LAZY_BLOCK } + + } + @R|kotlin/annotation/Target|[CompilerRequiredAnnotations](Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.FUNCTION|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.TYPE|) public? final? [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] annotation class Anno : R|kotlin/Annotation| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=/Anno.s] s: String): R|Anno| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val s: String = R|/s| + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] get(): String + + } + public? final? [ResolvedTo(RAW_FIR)] val prop: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val propertyFromBody: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + +IMPORTS: +TARGET: @R|Anno|[Types](LAZY_EXPRESSION) public [] get(): { LAZY_BLOCK } + +FILE: [ResolvedTo(IMPORTS)] Derived.kt + public final [ResolvedTo(STATUS)] class Derived : R|Base| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Derived] constructor(): R|Derived| { + LAZY_super + } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun getSomething(): { LAZY_BLOCK } + + } + @R|kotlin/annotation/Target|[CompilerRequiredAnnotations](Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.FUNCTION|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.TYPE|) public? final? [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] annotation class Anno : R|kotlin/Annotation| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=/Anno.s] s: String): R|Anno| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val s: String = R|/s| + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] get(): String + + } + public? final? [ResolvedTo(RAW_FIR)] val prop: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val propertyFromBody: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + +COMPILER_REQUIRED_ANNOTATIONS: +TARGET: @R|Anno|[Types](LAZY_EXPRESSION) public [] get(): { LAZY_BLOCK } + +FILE: [ResolvedTo(IMPORTS)] Derived.kt + public final [ResolvedTo(STATUS)] class Derived : R|Base| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Derived] constructor(): R|Derived| { + LAZY_super + } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun getSomething(): { LAZY_BLOCK } + + } + @R|kotlin/annotation/Target|[CompilerRequiredAnnotations](Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.FUNCTION|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.TYPE|) public? final? [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] annotation class Anno : R|kotlin/Annotation| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=/Anno.s] s: String): R|Anno| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val s: String = R|/s| + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] get(): String + + } + public? final? [ResolvedTo(RAW_FIR)] val prop: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val propertyFromBody: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + +COMPANION_GENERATION: +TARGET: @R|Anno|[Types](LAZY_EXPRESSION) public [] get(): { LAZY_BLOCK } + +FILE: [ResolvedTo(IMPORTS)] Derived.kt + public final [ResolvedTo(STATUS)] class Derived : R|Base| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Derived] constructor(): R|Derived| { + LAZY_super + } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun getSomething(): { LAZY_BLOCK } + + } + @R|kotlin/annotation/Target|[CompilerRequiredAnnotations](Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.FUNCTION|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.TYPE|) public? final? [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] annotation class Anno : R|kotlin/Annotation| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=/Anno.s] s: String): R|Anno| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val s: String = R|/s| + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] get(): String + + } + public? final? [ResolvedTo(RAW_FIR)] val prop: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val propertyFromBody: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + +SUPER_TYPES: +TARGET: @R|Anno|[Types](LAZY_EXPRESSION) public [] get(): { LAZY_BLOCK } + +FILE: [ResolvedTo(IMPORTS)] Derived.kt + public final [ResolvedTo(STATUS)] class Derived : R|Base| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Derived] constructor(): R|Derived| { + LAZY_super + } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun getSomething(): { LAZY_BLOCK } + + } + @R|kotlin/annotation/Target|[CompilerRequiredAnnotations](Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.FUNCTION|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.TYPE|) public? final? [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] annotation class Anno : R|kotlin/Annotation| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=/Anno.s] s: String): R|Anno| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val s: String = R|/s| + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] get(): String + + } + public? final? [ResolvedTo(RAW_FIR)] val prop: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val propertyFromBody: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + +TYPES: +TARGET: @R|Anno|[Types](LAZY_EXPRESSION) public [] get(): { LAZY_BLOCK } + +FILE: [ResolvedTo(IMPORTS)] Derived.kt + public final [ResolvedTo(STATUS)] class Derived : R|Base| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Derived] constructor(): R|Derived| { + LAZY_super + } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun getSomething(): { LAZY_BLOCK } + + } + @R|kotlin/annotation/Target|[CompilerRequiredAnnotations](Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.FUNCTION|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.TYPE|) public? final? [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] annotation class Anno : R|kotlin/Annotation| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=/Anno.s] s: String): R|Anno| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val s: String = R|/s| + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] get(): String + + } + public? final? [ResolvedTo(RAW_FIR)] val prop: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val propertyFromBody: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + +STATUS: +TARGET: @R|Anno|[Types](LAZY_EXPRESSION) public [] get(): { LAZY_BLOCK } + +FILE: [ResolvedTo(IMPORTS)] Derived.kt + public final [ResolvedTo(STATUS)] class Derived : R|Base| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Derived] constructor(): R|Derived| { + LAZY_super + } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun getSomething(): { LAZY_BLOCK } + + } + @R|kotlin/annotation/Target|[CompilerRequiredAnnotations](Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.FUNCTION|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.TYPE|) public? final? [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] annotation class Anno : R|kotlin/Annotation| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=/Anno.s] s: String): R|Anno| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val s: String = R|/s| + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] get(): String + + } + public? final? [ResolvedTo(RAW_FIR)] val prop: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val propertyFromBody: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + +EXPECT_ACTUAL_MATCHING: +TARGET: @R|Anno|[Types](LAZY_EXPRESSION) public [] get(): { LAZY_BLOCK } + +FILE: [ResolvedTo(IMPORTS)] Derived.kt + public final [ResolvedTo(STATUS)] class Derived : R|Base| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Derived] constructor(): R|Derived| { + LAZY_super + } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun getSomething(): { LAZY_BLOCK } + + } + @R|kotlin/annotation/Target|[CompilerRequiredAnnotations](Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.FUNCTION|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.TYPE|) public? final? [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] annotation class Anno : R|kotlin/Annotation| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=/Anno.s] s: String): R|Anno| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val s: String = R|/s| + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] get(): String + + } + public? final? [ResolvedTo(RAW_FIR)] val prop: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val propertyFromBody: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + +ARGUMENTS_OF_ANNOTATIONS: +TARGET: @R|Anno|[Types](LAZY_EXPRESSION) public [] get(): { LAZY_BLOCK } + +FILE: [ResolvedTo(IMPORTS)] Derived.kt + public final [ResolvedTo(STATUS)] class Derived : R|Base| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Derived] constructor(): R|Derived| { + LAZY_super + } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun getSomething(): { LAZY_BLOCK } + + } + @R|kotlin/annotation/Target|[CompilerRequiredAnnotations](Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.FUNCTION|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.TYPE|) public? final? [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] annotation class Anno : R|kotlin/Annotation| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=/Anno.s] s: String): R|Anno| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val s: String = R|/s| + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] get(): String + + } + public? final? [ResolvedTo(RAW_FIR)] val prop: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val propertyFromBody: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + +CONTRACTS: +TARGET: @R|Anno|[Types](LAZY_EXPRESSION) public [] get(): { LAZY_BLOCK } + +FILE: [ResolvedTo(IMPORTS)] Derived.kt + public final [ResolvedTo(STATUS)] class Derived : R|Base| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Derived] constructor(): R|Derived| { + LAZY_super + } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun getSomething(): { LAZY_BLOCK } + + } + @R|kotlin/annotation/Target|[CompilerRequiredAnnotations](Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.FUNCTION|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.TYPE|) public? final? [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] annotation class Anno : R|kotlin/Annotation| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=/Anno.s] s: String): R|Anno| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val s: String = R|/s| + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] get(): String + + } + public? final? [ResolvedTo(RAW_FIR)] val prop: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val propertyFromBody: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + +IMPLICIT_TYPES_BODY_RESOLVE: +TARGET: @R|Anno|[Types](LAZY_EXPRESSION) public [] get(): { LAZY_BLOCK } + +FILE: [ResolvedTo(IMPORTS)] Derived.kt + public final [ResolvedTo(STATUS)] class Derived : R|Base| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Derived] constructor(): R|Derived| { + LAZY_super + } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun getSomething(): { LAZY_BLOCK } + + } + @R|kotlin/annotation/Target|[CompilerRequiredAnnotations](Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.FUNCTION|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.TYPE|) public? final? [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] annotation class Anno : R|kotlin/Annotation| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=/Anno.s] s: String): R|Anno| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val s: String = R|/s| + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] get(): String + + } + public? final? [ResolvedTo(RAW_FIR)] val prop: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val propertyFromBody: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + +ANNOTATIONS_ARGUMENTS_MAPPING: +TARGET: @R|Anno|[Types](LAZY_EXPRESSION) public [] get(): { LAZY_BLOCK } + +FILE: [ResolvedTo(IMPORTS)] Derived.kt + public final [ResolvedTo(STATUS)] class Derived : R|Base| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Derived] constructor(): R|Derived| { + LAZY_super + } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun getSomething(): { LAZY_BLOCK } + + } + @R|kotlin/annotation/Target|[CompilerRequiredAnnotations](Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.FUNCTION|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.TYPE|) public? final? [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] annotation class Anno : R|kotlin/Annotation| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=/Anno.s] s: String): R|Anno| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val s: String = R|/s| + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] get(): String + + } + public? final? [ResolvedTo(RAW_FIR)] val prop: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val propertyFromBody: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + +BODY_RESOLVE: +TARGET: @R|Anno|[Types](LAZY_EXPRESSION) public [] get(): { LAZY_BLOCK } + +FILE: [ResolvedTo(IMPORTS)] Derived.kt + public final [ResolvedTo(STATUS)] class Derived : R|Base| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Derived] constructor(): R|Derived| { + LAZY_super + } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun getSomething(): { LAZY_BLOCK } + + } + @R|kotlin/annotation/Target|[CompilerRequiredAnnotations](Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.FUNCTION|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.TYPE|) public? final? [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] annotation class Anno : R|kotlin/Annotation| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=/Anno.s] s: String): R|Anno| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val s: String = R|/s| + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] get(): String + + } + public? final? [ResolvedTo(RAW_FIR)] val prop: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val propertyFromBody: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + +FILE RAW TO BODY: +FILE: [ResolvedTo(BODY_RESOLVE)] Derived.kt + public final [ResolvedTo(BODY_RESOLVE)] class Derived : R|Base| { + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=Derived] constructor(): R|Derived| { + super() + } + + @R|Anno|[Types](s = (String(number: ), R|/prop|)) public open override [ResolvedTo(BODY_RESOLVE)] fun getSomething(): R|kotlin/String| { + ^getSomething (String(body: ), R|/propertyFromBody|) + } + + } + @R|kotlin/annotation/Target|[Types](allowedTargets = vararg(Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.FUNCTION|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.TYPE|)) public final [ResolvedTo(BODY_RESOLVE)] annotation class Anno : R|kotlin/Annotation| { + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=Anno] constructor([ResolvedTo(BODY_RESOLVE)] [CorrespondingProperty=/Anno.s] s: R|kotlin/String|): R|Anno| { + super() + } + + public final [ResolvedTo(BODY_RESOLVE)] [IsFromPrimaryConstructor=true] val s: R|kotlin/String| = R|/s| + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=Anno] get(): R|kotlin/String| + + } + public final [ResolvedTo(BODY_RESOLVE)] val prop: R|kotlin/Int| = Int(2).R|kotlin/let|( = [ResolvedTo(BODY_RESOLVE)] [MatchingParameterFunctionTypeKey=kotlin/Function1] let@fun ([ResolvedTo(BODY_RESOLVE)] it: R|kotlin/Int|): R|kotlin/Int| { + ^ R|/it|.R|kotlin/Int.plus|(Int(1)) + } + ) + public [ResolvedTo(BODY_RESOLVE)] get(): R|kotlin/Int| + public final [ResolvedTo(BODY_RESOLVE)] val propertyFromBody: R|kotlin/String| = String(str).R|kotlin/String.plus|(Int(1).R|kotlin/Int.toString|()) + public [ResolvedTo(BODY_RESOLVE)] get(): R|kotlin/String| diff --git a/analysis/low-level-api-fir/testData/lazyResolve/syntheticProperties/secondGenerationOverride.kt b/analysis/low-level-api-fir/testData/lazyResolve/syntheticProperties/secondGenerationOverride.kt new file mode 100644 index 00000000000..d0e58bafb5b --- /dev/null +++ b/analysis/low-level-api-fir/testData/lazyResolve/syntheticProperties/secondGenerationOverride.kt @@ -0,0 +1,43 @@ +// SKIP_WHEN_OUT_OF_CONTENT_ROOT +// MEMBER_NAME_FILTER: something +// FILE: Derived.kt +class Derived : KotlinBase() { + @Anno("second generation getSomething: ${getterProperty}") + override fun getSomething(): String { + "body: ${propertyFromBody}" + } + + @Anno("second generation setSomething: ${setterProperty}") + override fun setSomething(s: @Anno("setter type ${propertyFromSetter}") String) = println("str $s") +} + +open class KotlinBase : Base() { + @Anno("first generation getSomething: ${getterProperty}") + override fun getSomething(): String { + "body: ${propertyFromBody}" + } + + @Anno("first generation setSomething: ${setterProperty}") + override fun setSomething(s: @Anno("setter type ${propertyFromSetter}") String) { + println(s) + } +} + +@Target(AnnotationTarget.FUNCTION, AnnotationTarget.TYPE) +annotation class Anno(val s: String) + +val getterProperty = 2.let { it + 1 } +val setterProperty = 2.let { it + 1 } +val propertyFromBody = "str" + 1.toString() +val propertyFromSetter = 1.toString() + "2" + +// FILE: Base.java +public class Base { + public String getSomething() { + return ""; + } + + public void setSomething(String s) { + + } +} \ No newline at end of file diff --git a/analysis/low-level-api-fir/testData/lazyResolve/syntheticProperties/secondGenerationOverride.txt b/analysis/low-level-api-fir/testData/lazyResolve/syntheticProperties/secondGenerationOverride.txt new file mode 100644 index 00000000000..2f042bcb807 --- /dev/null +++ b/analysis/low-level-api-fir/testData/lazyResolve/syntheticProperties/secondGenerationOverride.txt @@ -0,0 +1,625 @@ +RAW_FIR: +TARGET: public open override [ResolvedTo(STATUS)] var something: R|kotlin/String| + @R|Anno|[Types](LAZY_EXPRESSION) public [] get(): R|kotlin/String| { LAZY_BLOCK } + @R|Anno|[Types](LAZY_EXPRESSION) public [] set([ResolvedTo(STATUS)] s: R|@R|Anno|((String(setter type ), propertyFromSetter#)) kotlin/String|): { LAZY_BLOCK } + +FILE: [ResolvedTo(IMPORTS)] Derived.kt + public final [ResolvedTo(STATUS)] class Derived : R|KotlinBase| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Derived] constructor(): R|Derived| { + LAZY_super + } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun getSomething(): R|kotlin/String| { LAZY_BLOCK } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun setSomething([ResolvedTo(STATUS)] s: R|@R|Anno|((String(setter type ), propertyFromSetter#)) kotlin/String|): { LAZY_BLOCK } + + } + public open [ResolvedTo(STATUS)] class KotlinBase : R|Base| { + public [ResolvedTo(STATUS)] [ContainingClassKey=KotlinBase] constructor(): R|KotlinBase| { + LAZY_super + } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun getSomething(): R|kotlin/String| { LAZY_BLOCK } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun setSomething([ResolvedTo(STATUS)] s: R|@R|Anno|((String(setter type ), propertyFromSetter#)) kotlin/String|): R|kotlin/Unit| { LAZY_BLOCK } + + } + @R|kotlin/annotation/Target|[CompilerRequiredAnnotations](Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.FUNCTION|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.TYPE|) public? final? [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] annotation class Anno : R|kotlin/Annotation| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=/Anno.s] s: String): R|Anno| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val s: String = R|/s| + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] get(): String + + } + public? final? [ResolvedTo(RAW_FIR)] val getterProperty: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val setterProperty: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val propertyFromBody: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val propertyFromSetter: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + +IMPORTS: +TARGET: public open override [ResolvedTo(STATUS)] var something: R|kotlin/String| + @R|Anno|[Types](LAZY_EXPRESSION) public [] get(): R|kotlin/String| { LAZY_BLOCK } + @R|Anno|[Types](LAZY_EXPRESSION) public [] set([ResolvedTo(STATUS)] s: R|@R|Anno|((String(setter type ), propertyFromSetter#)) kotlin/String|): { LAZY_BLOCK } + +FILE: [ResolvedTo(IMPORTS)] Derived.kt + public final [ResolvedTo(STATUS)] class Derived : R|KotlinBase| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Derived] constructor(): R|Derived| { + LAZY_super + } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun getSomething(): R|kotlin/String| { LAZY_BLOCK } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun setSomething([ResolvedTo(STATUS)] s: R|@R|Anno|((String(setter type ), propertyFromSetter#)) kotlin/String|): { LAZY_BLOCK } + + } + public open [ResolvedTo(STATUS)] class KotlinBase : R|Base| { + public [ResolvedTo(STATUS)] [ContainingClassKey=KotlinBase] constructor(): R|KotlinBase| { + LAZY_super + } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun getSomething(): R|kotlin/String| { LAZY_BLOCK } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun setSomething([ResolvedTo(STATUS)] s: R|@R|Anno|((String(setter type ), propertyFromSetter#)) kotlin/String|): R|kotlin/Unit| { LAZY_BLOCK } + + } + @R|kotlin/annotation/Target|[CompilerRequiredAnnotations](Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.FUNCTION|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.TYPE|) public? final? [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] annotation class Anno : R|kotlin/Annotation| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=/Anno.s] s: String): R|Anno| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val s: String = R|/s| + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] get(): String + + } + public? final? [ResolvedTo(RAW_FIR)] val getterProperty: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val setterProperty: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val propertyFromBody: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val propertyFromSetter: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + +COMPILER_REQUIRED_ANNOTATIONS: +TARGET: public open override [ResolvedTo(STATUS)] var something: R|kotlin/String| + @R|Anno|[Types](LAZY_EXPRESSION) public [] get(): R|kotlin/String| { LAZY_BLOCK } + @R|Anno|[Types](LAZY_EXPRESSION) public [] set([ResolvedTo(STATUS)] s: R|@R|Anno|((String(setter type ), propertyFromSetter#)) kotlin/String|): { LAZY_BLOCK } + +FILE: [ResolvedTo(IMPORTS)] Derived.kt + public final [ResolvedTo(STATUS)] class Derived : R|KotlinBase| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Derived] constructor(): R|Derived| { + LAZY_super + } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun getSomething(): R|kotlin/String| { LAZY_BLOCK } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun setSomething([ResolvedTo(STATUS)] s: R|@R|Anno|((String(setter type ), propertyFromSetter#)) kotlin/String|): { LAZY_BLOCK } + + } + public open [ResolvedTo(STATUS)] class KotlinBase : R|Base| { + public [ResolvedTo(STATUS)] [ContainingClassKey=KotlinBase] constructor(): R|KotlinBase| { + LAZY_super + } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun getSomething(): R|kotlin/String| { LAZY_BLOCK } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun setSomething([ResolvedTo(STATUS)] s: R|@R|Anno|((String(setter type ), propertyFromSetter#)) kotlin/String|): R|kotlin/Unit| { LAZY_BLOCK } + + } + @R|kotlin/annotation/Target|[CompilerRequiredAnnotations](Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.FUNCTION|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.TYPE|) public? final? [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] annotation class Anno : R|kotlin/Annotation| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=/Anno.s] s: String): R|Anno| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val s: String = R|/s| + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] get(): String + + } + public? final? [ResolvedTo(RAW_FIR)] val getterProperty: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val setterProperty: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val propertyFromBody: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val propertyFromSetter: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + +COMPANION_GENERATION: +TARGET: public open override [ResolvedTo(STATUS)] var something: R|kotlin/String| + @R|Anno|[Types](LAZY_EXPRESSION) public [] get(): R|kotlin/String| { LAZY_BLOCK } + @R|Anno|[Types](LAZY_EXPRESSION) public [] set([ResolvedTo(STATUS)] s: R|@R|Anno|((String(setter type ), propertyFromSetter#)) kotlin/String|): { LAZY_BLOCK } + +FILE: [ResolvedTo(IMPORTS)] Derived.kt + public final [ResolvedTo(STATUS)] class Derived : R|KotlinBase| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Derived] constructor(): R|Derived| { + LAZY_super + } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun getSomething(): R|kotlin/String| { LAZY_BLOCK } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun setSomething([ResolvedTo(STATUS)] s: R|@R|Anno|((String(setter type ), propertyFromSetter#)) kotlin/String|): { LAZY_BLOCK } + + } + public open [ResolvedTo(STATUS)] class KotlinBase : R|Base| { + public [ResolvedTo(STATUS)] [ContainingClassKey=KotlinBase] constructor(): R|KotlinBase| { + LAZY_super + } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun getSomething(): R|kotlin/String| { LAZY_BLOCK } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun setSomething([ResolvedTo(STATUS)] s: R|@R|Anno|((String(setter type ), propertyFromSetter#)) kotlin/String|): R|kotlin/Unit| { LAZY_BLOCK } + + } + @R|kotlin/annotation/Target|[CompilerRequiredAnnotations](Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.FUNCTION|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.TYPE|) public? final? [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] annotation class Anno : R|kotlin/Annotation| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=/Anno.s] s: String): R|Anno| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val s: String = R|/s| + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] get(): String + + } + public? final? [ResolvedTo(RAW_FIR)] val getterProperty: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val setterProperty: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val propertyFromBody: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val propertyFromSetter: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + +SUPER_TYPES: +TARGET: public open override [ResolvedTo(STATUS)] var something: R|kotlin/String| + @R|Anno|[Types](LAZY_EXPRESSION) public [] get(): R|kotlin/String| { LAZY_BLOCK } + @R|Anno|[Types](LAZY_EXPRESSION) public [] set([ResolvedTo(STATUS)] s: R|@R|Anno|((String(setter type ), propertyFromSetter#)) kotlin/String|): { LAZY_BLOCK } + +FILE: [ResolvedTo(IMPORTS)] Derived.kt + public final [ResolvedTo(STATUS)] class Derived : R|KotlinBase| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Derived] constructor(): R|Derived| { + LAZY_super + } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun getSomething(): R|kotlin/String| { LAZY_BLOCK } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun setSomething([ResolvedTo(STATUS)] s: R|@R|Anno|((String(setter type ), propertyFromSetter#)) kotlin/String|): { LAZY_BLOCK } + + } + public open [ResolvedTo(STATUS)] class KotlinBase : R|Base| { + public [ResolvedTo(STATUS)] [ContainingClassKey=KotlinBase] constructor(): R|KotlinBase| { + LAZY_super + } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun getSomething(): R|kotlin/String| { LAZY_BLOCK } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun setSomething([ResolvedTo(STATUS)] s: R|@R|Anno|((String(setter type ), propertyFromSetter#)) kotlin/String|): R|kotlin/Unit| { LAZY_BLOCK } + + } + @R|kotlin/annotation/Target|[CompilerRequiredAnnotations](Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.FUNCTION|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.TYPE|) public? final? [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] annotation class Anno : R|kotlin/Annotation| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=/Anno.s] s: String): R|Anno| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val s: String = R|/s| + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] get(): String + + } + public? final? [ResolvedTo(RAW_FIR)] val getterProperty: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val setterProperty: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val propertyFromBody: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val propertyFromSetter: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + +TYPES: +TARGET: public open override [ResolvedTo(STATUS)] var something: R|kotlin/String| + @R|Anno|[Types](LAZY_EXPRESSION) public [] get(): R|kotlin/String| { LAZY_BLOCK } + @R|Anno|[Types](LAZY_EXPRESSION) public [] set([ResolvedTo(STATUS)] s: R|@R|Anno|((String(setter type ), propertyFromSetter#)) kotlin/String|): { LAZY_BLOCK } + +FILE: [ResolvedTo(IMPORTS)] Derived.kt + public final [ResolvedTo(STATUS)] class Derived : R|KotlinBase| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Derived] constructor(): R|Derived| { + LAZY_super + } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun getSomething(): R|kotlin/String| { LAZY_BLOCK } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun setSomething([ResolvedTo(STATUS)] s: R|@R|Anno|((String(setter type ), propertyFromSetter#)) kotlin/String|): { LAZY_BLOCK } + + } + public open [ResolvedTo(STATUS)] class KotlinBase : R|Base| { + public [ResolvedTo(STATUS)] [ContainingClassKey=KotlinBase] constructor(): R|KotlinBase| { + LAZY_super + } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun getSomething(): R|kotlin/String| { LAZY_BLOCK } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun setSomething([ResolvedTo(STATUS)] s: R|@R|Anno|((String(setter type ), propertyFromSetter#)) kotlin/String|): R|kotlin/Unit| { LAZY_BLOCK } + + } + @R|kotlin/annotation/Target|[CompilerRequiredAnnotations](Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.FUNCTION|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.TYPE|) public? final? [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] annotation class Anno : R|kotlin/Annotation| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=/Anno.s] s: String): R|Anno| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val s: String = R|/s| + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] get(): String + + } + public? final? [ResolvedTo(RAW_FIR)] val getterProperty: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val setterProperty: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val propertyFromBody: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val propertyFromSetter: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + +STATUS: +TARGET: public open override [ResolvedTo(STATUS)] var something: R|kotlin/String| + @R|Anno|[Types](LAZY_EXPRESSION) public [] get(): R|kotlin/String| { LAZY_BLOCK } + @R|Anno|[Types](LAZY_EXPRESSION) public [] set([ResolvedTo(STATUS)] s: R|@R|Anno|((String(setter type ), propertyFromSetter#)) kotlin/String|): { LAZY_BLOCK } + +FILE: [ResolvedTo(IMPORTS)] Derived.kt + public final [ResolvedTo(STATUS)] class Derived : R|KotlinBase| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Derived] constructor(): R|Derived| { + LAZY_super + } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun getSomething(): R|kotlin/String| { LAZY_BLOCK } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun setSomething([ResolvedTo(STATUS)] s: R|@R|Anno|((String(setter type ), propertyFromSetter#)) kotlin/String|): { LAZY_BLOCK } + + } + public open [ResolvedTo(STATUS)] class KotlinBase : R|Base| { + public [ResolvedTo(STATUS)] [ContainingClassKey=KotlinBase] constructor(): R|KotlinBase| { + LAZY_super + } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun getSomething(): R|kotlin/String| { LAZY_BLOCK } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun setSomething([ResolvedTo(STATUS)] s: R|@R|Anno|((String(setter type ), propertyFromSetter#)) kotlin/String|): R|kotlin/Unit| { LAZY_BLOCK } + + } + @R|kotlin/annotation/Target|[CompilerRequiredAnnotations](Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.FUNCTION|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.TYPE|) public? final? [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] annotation class Anno : R|kotlin/Annotation| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=/Anno.s] s: String): R|Anno| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val s: String = R|/s| + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] get(): String + + } + public? final? [ResolvedTo(RAW_FIR)] val getterProperty: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val setterProperty: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val propertyFromBody: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val propertyFromSetter: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + +EXPECT_ACTUAL_MATCHING: +TARGET: public open override [ResolvedTo(STATUS)] var something: R|kotlin/String| + @R|Anno|[Types](LAZY_EXPRESSION) public [] get(): R|kotlin/String| { LAZY_BLOCK } + @R|Anno|[Types](LAZY_EXPRESSION) public [] set([ResolvedTo(STATUS)] s: R|@R|Anno|((String(setter type ), propertyFromSetter#)) kotlin/String|): { LAZY_BLOCK } + +FILE: [ResolvedTo(IMPORTS)] Derived.kt + public final [ResolvedTo(STATUS)] class Derived : R|KotlinBase| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Derived] constructor(): R|Derived| { + LAZY_super + } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun getSomething(): R|kotlin/String| { LAZY_BLOCK } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun setSomething([ResolvedTo(STATUS)] s: R|@R|Anno|((String(setter type ), propertyFromSetter#)) kotlin/String|): { LAZY_BLOCK } + + } + public open [ResolvedTo(STATUS)] class KotlinBase : R|Base| { + public [ResolvedTo(STATUS)] [ContainingClassKey=KotlinBase] constructor(): R|KotlinBase| { + LAZY_super + } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun getSomething(): R|kotlin/String| { LAZY_BLOCK } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun setSomething([ResolvedTo(STATUS)] s: R|@R|Anno|((String(setter type ), propertyFromSetter#)) kotlin/String|): R|kotlin/Unit| { LAZY_BLOCK } + + } + @R|kotlin/annotation/Target|[CompilerRequiredAnnotations](Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.FUNCTION|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.TYPE|) public? final? [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] annotation class Anno : R|kotlin/Annotation| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=/Anno.s] s: String): R|Anno| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val s: String = R|/s| + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] get(): String + + } + public? final? [ResolvedTo(RAW_FIR)] val getterProperty: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val setterProperty: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val propertyFromBody: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val propertyFromSetter: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + +ARGUMENTS_OF_ANNOTATIONS: +TARGET: public open override [ResolvedTo(STATUS)] var something: R|kotlin/String| + @R|Anno|[Types](LAZY_EXPRESSION) public [] get(): R|kotlin/String| { LAZY_BLOCK } + @R|Anno|[Types](LAZY_EXPRESSION) public [] set([ResolvedTo(STATUS)] s: R|@R|Anno|((String(setter type ), propertyFromSetter#)) kotlin/String|): { LAZY_BLOCK } + +FILE: [ResolvedTo(IMPORTS)] Derived.kt + public final [ResolvedTo(STATUS)] class Derived : R|KotlinBase| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Derived] constructor(): R|Derived| { + LAZY_super + } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun getSomething(): R|kotlin/String| { LAZY_BLOCK } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun setSomething([ResolvedTo(STATUS)] s: R|@R|Anno|((String(setter type ), propertyFromSetter#)) kotlin/String|): { LAZY_BLOCK } + + } + public open [ResolvedTo(STATUS)] class KotlinBase : R|Base| { + public [ResolvedTo(STATUS)] [ContainingClassKey=KotlinBase] constructor(): R|KotlinBase| { + LAZY_super + } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun getSomething(): R|kotlin/String| { LAZY_BLOCK } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun setSomething([ResolvedTo(STATUS)] s: R|@R|Anno|((String(setter type ), propertyFromSetter#)) kotlin/String|): R|kotlin/Unit| { LAZY_BLOCK } + + } + @R|kotlin/annotation/Target|[CompilerRequiredAnnotations](Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.FUNCTION|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.TYPE|) public? final? [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] annotation class Anno : R|kotlin/Annotation| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=/Anno.s] s: String): R|Anno| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val s: String = R|/s| + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] get(): String + + } + public? final? [ResolvedTo(RAW_FIR)] val getterProperty: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val setterProperty: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val propertyFromBody: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val propertyFromSetter: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + +CONTRACTS: +TARGET: public open override [ResolvedTo(STATUS)] var something: R|kotlin/String| + @R|Anno|[Types](LAZY_EXPRESSION) public [] get(): R|kotlin/String| { LAZY_BLOCK } + @R|Anno|[Types](LAZY_EXPRESSION) public [] set([ResolvedTo(STATUS)] s: R|@R|Anno|((String(setter type ), propertyFromSetter#)) kotlin/String|): { LAZY_BLOCK } + +FILE: [ResolvedTo(IMPORTS)] Derived.kt + public final [ResolvedTo(STATUS)] class Derived : R|KotlinBase| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Derived] constructor(): R|Derived| { + LAZY_super + } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun getSomething(): R|kotlin/String| { LAZY_BLOCK } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun setSomething([ResolvedTo(STATUS)] s: R|@R|Anno|((String(setter type ), propertyFromSetter#)) kotlin/String|): { LAZY_BLOCK } + + } + public open [ResolvedTo(STATUS)] class KotlinBase : R|Base| { + public [ResolvedTo(STATUS)] [ContainingClassKey=KotlinBase] constructor(): R|KotlinBase| { + LAZY_super + } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun getSomething(): R|kotlin/String| { LAZY_BLOCK } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun setSomething([ResolvedTo(STATUS)] s: R|@R|Anno|((String(setter type ), propertyFromSetter#)) kotlin/String|): R|kotlin/Unit| { LAZY_BLOCK } + + } + @R|kotlin/annotation/Target|[CompilerRequiredAnnotations](Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.FUNCTION|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.TYPE|) public? final? [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] annotation class Anno : R|kotlin/Annotation| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=/Anno.s] s: String): R|Anno| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val s: String = R|/s| + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] get(): String + + } + public? final? [ResolvedTo(RAW_FIR)] val getterProperty: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val setterProperty: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val propertyFromBody: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val propertyFromSetter: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + +IMPLICIT_TYPES_BODY_RESOLVE: +TARGET: public open override [ResolvedTo(STATUS)] var something: R|kotlin/String| + @R|Anno|[Types](LAZY_EXPRESSION) public [] get(): R|kotlin/String| { LAZY_BLOCK } + @R|Anno|[Types](LAZY_EXPRESSION) public [] set([ResolvedTo(STATUS)] s: R|@R|Anno|((String(setter type ), propertyFromSetter#)) kotlin/String|): { LAZY_BLOCK } + +FILE: [ResolvedTo(IMPORTS)] Derived.kt + public final [ResolvedTo(STATUS)] class Derived : R|KotlinBase| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Derived] constructor(): R|Derived| { + LAZY_super + } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun getSomething(): R|kotlin/String| { LAZY_BLOCK } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun setSomething([ResolvedTo(STATUS)] s: R|@R|Anno|((String(setter type ), propertyFromSetter#)) kotlin/String|): { LAZY_BLOCK } + + } + public open [ResolvedTo(STATUS)] class KotlinBase : R|Base| { + public [ResolvedTo(STATUS)] [ContainingClassKey=KotlinBase] constructor(): R|KotlinBase| { + LAZY_super + } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun getSomething(): R|kotlin/String| { LAZY_BLOCK } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun setSomething([ResolvedTo(STATUS)] s: R|@R|Anno|((String(setter type ), propertyFromSetter#)) kotlin/String|): R|kotlin/Unit| { LAZY_BLOCK } + + } + @R|kotlin/annotation/Target|[CompilerRequiredAnnotations](Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.FUNCTION|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.TYPE|) public? final? [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] annotation class Anno : R|kotlin/Annotation| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=/Anno.s] s: String): R|Anno| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val s: String = R|/s| + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] get(): String + + } + public? final? [ResolvedTo(RAW_FIR)] val getterProperty: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val setterProperty: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val propertyFromBody: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val propertyFromSetter: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + +ANNOTATIONS_ARGUMENTS_MAPPING: +TARGET: public open override [ResolvedTo(STATUS)] var something: R|kotlin/String| + @R|Anno|[Types](LAZY_EXPRESSION) public [] get(): R|kotlin/String| { LAZY_BLOCK } + @R|Anno|[Types](LAZY_EXPRESSION) public [] set([ResolvedTo(STATUS)] s: R|@R|Anno|((String(setter type ), propertyFromSetter#)) kotlin/String|): { LAZY_BLOCK } + +FILE: [ResolvedTo(IMPORTS)] Derived.kt + public final [ResolvedTo(STATUS)] class Derived : R|KotlinBase| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Derived] constructor(): R|Derived| { + LAZY_super + } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun getSomething(): R|kotlin/String| { LAZY_BLOCK } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun setSomething([ResolvedTo(STATUS)] s: R|@R|Anno|((String(setter type ), propertyFromSetter#)) kotlin/String|): { LAZY_BLOCK } + + } + public open [ResolvedTo(STATUS)] class KotlinBase : R|Base| { + public [ResolvedTo(STATUS)] [ContainingClassKey=KotlinBase] constructor(): R|KotlinBase| { + LAZY_super + } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun getSomething(): R|kotlin/String| { LAZY_BLOCK } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun setSomething([ResolvedTo(STATUS)] s: R|@R|Anno|((String(setter type ), propertyFromSetter#)) kotlin/String|): R|kotlin/Unit| { LAZY_BLOCK } + + } + @R|kotlin/annotation/Target|[CompilerRequiredAnnotations](Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.FUNCTION|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.TYPE|) public? final? [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] annotation class Anno : R|kotlin/Annotation| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=/Anno.s] s: String): R|Anno| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val s: String = R|/s| + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] get(): String + + } + public? final? [ResolvedTo(RAW_FIR)] val getterProperty: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val setterProperty: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val propertyFromBody: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val propertyFromSetter: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + +BODY_RESOLVE: +TARGET: public open override [ResolvedTo(STATUS)] var something: R|kotlin/String| + @R|Anno|[Types](LAZY_EXPRESSION) public [] get(): R|kotlin/String| { LAZY_BLOCK } + @R|Anno|[Types](LAZY_EXPRESSION) public [] set([ResolvedTo(STATUS)] s: R|@R|Anno|((String(setter type ), propertyFromSetter#)) kotlin/String|): { LAZY_BLOCK } + +FILE: [ResolvedTo(IMPORTS)] Derived.kt + public final [ResolvedTo(STATUS)] class Derived : R|KotlinBase| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Derived] constructor(): R|Derived| { + LAZY_super + } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun getSomething(): R|kotlin/String| { LAZY_BLOCK } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun setSomething([ResolvedTo(STATUS)] s: R|@R|Anno|((String(setter type ), propertyFromSetter#)) kotlin/String|): { LAZY_BLOCK } + + } + public open [ResolvedTo(STATUS)] class KotlinBase : R|Base| { + public [ResolvedTo(STATUS)] [ContainingClassKey=KotlinBase] constructor(): R|KotlinBase| { + LAZY_super + } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun getSomething(): R|kotlin/String| { LAZY_BLOCK } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun setSomething([ResolvedTo(STATUS)] s: R|@R|Anno|((String(setter type ), propertyFromSetter#)) kotlin/String|): R|kotlin/Unit| { LAZY_BLOCK } + + } + @R|kotlin/annotation/Target|[CompilerRequiredAnnotations](Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.FUNCTION|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.TYPE|) public? final? [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] annotation class Anno : R|kotlin/Annotation| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=/Anno.s] s: String): R|Anno| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val s: String = R|/s| + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] get(): String + + } + public? final? [ResolvedTo(RAW_FIR)] val getterProperty: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val setterProperty: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val propertyFromBody: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val propertyFromSetter: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + +FILE RAW TO BODY: +FILE: [ResolvedTo(BODY_RESOLVE)] Derived.kt + public final [ResolvedTo(BODY_RESOLVE)] class Derived : R|KotlinBase| { + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=Derived] constructor(): R|Derived| { + super() + } + + @R|Anno|[Types](s = (String(second generation getSomething: ), R|/getterProperty|)) public open override [ResolvedTo(BODY_RESOLVE)] fun getSomething(): R|kotlin/String| { + (String(body: ), R|/propertyFromBody|) + } + + @R|Anno|[Types](s = (String(second generation setSomething: ), R|/setterProperty|)) public open override [ResolvedTo(BODY_RESOLVE)] fun setSomething([ResolvedTo(BODY_RESOLVE)] s: R|@R|Anno|(s = (String(setter type ), R|/propertyFromSetter|)) kotlin/String|): R|kotlin/Unit| { + ^setSomething R|kotlin/io/println|((String(str ), R|/s|)) + } + + } + public open [ResolvedTo(BODY_RESOLVE)] class KotlinBase : R|Base| { + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=KotlinBase] constructor(): R|KotlinBase| { + super() + } + + @R|Anno|[Types](s = (String(first generation getSomething: ), R|/getterProperty|)) public open override [ResolvedTo(BODY_RESOLVE)] fun getSomething(): R|kotlin/String| { + (String(body: ), R|/propertyFromBody|) + } + + @R|Anno|[Types](s = (String(first generation setSomething: ), R|/setterProperty|)) public open override [ResolvedTo(BODY_RESOLVE)] fun setSomething([ResolvedTo(BODY_RESOLVE)] s: R|@R|Anno|(s = (String(setter type ), R|/propertyFromSetter|)) kotlin/String|): R|kotlin/Unit| { + R|kotlin/io/println|(R|/s|) + } + + } + @R|kotlin/annotation/Target|[Types](allowedTargets = vararg(Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.FUNCTION|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.TYPE|)) public final [ResolvedTo(BODY_RESOLVE)] annotation class Anno : R|kotlin/Annotation| { + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=Anno] constructor([ResolvedTo(BODY_RESOLVE)] [CorrespondingProperty=/Anno.s] s: R|kotlin/String|): R|Anno| { + super() + } + + public final [ResolvedTo(BODY_RESOLVE)] [IsFromPrimaryConstructor=true] val s: R|kotlin/String| = R|/s| + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=Anno] get(): R|kotlin/String| + + } + public final [ResolvedTo(BODY_RESOLVE)] val getterProperty: R|kotlin/Int| = Int(2).R|kotlin/let|( = [ResolvedTo(BODY_RESOLVE)] [MatchingParameterFunctionTypeKey=kotlin/Function1] let@fun ([ResolvedTo(BODY_RESOLVE)] it: R|kotlin/Int|): R|kotlin/Int| { + ^ R|/it|.R|kotlin/Int.plus|(Int(1)) + } + ) + public [ResolvedTo(BODY_RESOLVE)] get(): R|kotlin/Int| + public final [ResolvedTo(BODY_RESOLVE)] val setterProperty: R|kotlin/Int| = Int(2).R|kotlin/let|( = [ResolvedTo(BODY_RESOLVE)] [MatchingParameterFunctionTypeKey=kotlin/Function1] let@fun ([ResolvedTo(BODY_RESOLVE)] it: R|kotlin/Int|): R|kotlin/Int| { + ^ R|/it|.R|kotlin/Int.plus|(Int(1)) + } + ) + public [ResolvedTo(BODY_RESOLVE)] get(): R|kotlin/Int| + public final [ResolvedTo(BODY_RESOLVE)] val propertyFromBody: R|kotlin/String| = String(str).R|kotlin/String.plus|(Int(1).R|kotlin/Int.toString|()) + public [ResolvedTo(BODY_RESOLVE)] get(): R|kotlin/String| + public final [ResolvedTo(BODY_RESOLVE)] val propertyFromSetter: R|kotlin/String| = Int(1).R|kotlin/Int.toString|().R|kotlin/String.plus|(String(2)) + public [ResolvedTo(BODY_RESOLVE)] get(): R|kotlin/String| diff --git a/analysis/low-level-api-fir/testData/lazyResolve/syntheticProperties/setterAndExplicitReturnType.kt b/analysis/low-level-api-fir/testData/lazyResolve/syntheticProperties/setterAndExplicitReturnType.kt new file mode 100644 index 00000000000..75e9196ffe5 --- /dev/null +++ b/analysis/low-level-api-fir/testData/lazyResolve/syntheticProperties/setterAndExplicitReturnType.kt @@ -0,0 +1,20 @@ +// SKIP_WHEN_OUT_OF_CONTENT_ROOT +// MEMBER_NAME_FILTER: something +// FILE: Derived.kt +class Derived : Base() { + override fun getSomething(): String = "42" + override fun setSomething(s: String) { + + } +} + +// FILE: Base.java +public class Base { + public String getSomething() { + return ""; + } + + public void setSomething(String s) { + + } +} diff --git a/analysis/low-level-api-fir/testData/lazyResolve/syntheticProperties/setterAndExplicitReturnType.txt b/analysis/low-level-api-fir/testData/lazyResolve/syntheticProperties/setterAndExplicitReturnType.txt new file mode 100644 index 00000000000..d82ab616557 --- /dev/null +++ b/analysis/low-level-api-fir/testData/lazyResolve/syntheticProperties/setterAndExplicitReturnType.txt @@ -0,0 +1,236 @@ +RAW_FIR: +TARGET: public open override [ResolvedTo(STATUS)] var something: R|kotlin/String| + public [] get(): R|kotlin/String| { LAZY_BLOCK } + public [] set([ResolvedTo(STATUS)] s: R|kotlin/String|): R|kotlin/Unit| { LAZY_BLOCK } + +FILE: [ResolvedTo(IMPORTS)] Derived.kt + public final [ResolvedTo(STATUS)] class Derived : R|Base| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Derived] constructor(): R|Derived| { + LAZY_super + } + + public open override [ResolvedTo(STATUS)] fun getSomething(): R|kotlin/String| { LAZY_BLOCK } + + public open override [ResolvedTo(STATUS)] fun setSomething([ResolvedTo(STATUS)] s: R|kotlin/String|): R|kotlin/Unit| { LAZY_BLOCK } + + } + +IMPORTS: +TARGET: public open override [ResolvedTo(STATUS)] var something: R|kotlin/String| + public [] get(): R|kotlin/String| { LAZY_BLOCK } + public [] set([ResolvedTo(STATUS)] s: R|kotlin/String|): R|kotlin/Unit| { LAZY_BLOCK } + +FILE: [ResolvedTo(IMPORTS)] Derived.kt + public final [ResolvedTo(STATUS)] class Derived : R|Base| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Derived] constructor(): R|Derived| { + LAZY_super + } + + public open override [ResolvedTo(STATUS)] fun getSomething(): R|kotlin/String| { LAZY_BLOCK } + + public open override [ResolvedTo(STATUS)] fun setSomething([ResolvedTo(STATUS)] s: R|kotlin/String|): R|kotlin/Unit| { LAZY_BLOCK } + + } + +COMPILER_REQUIRED_ANNOTATIONS: +TARGET: public open override [ResolvedTo(STATUS)] var something: R|kotlin/String| + public [] get(): R|kotlin/String| { LAZY_BLOCK } + public [] set([ResolvedTo(STATUS)] s: R|kotlin/String|): R|kotlin/Unit| { LAZY_BLOCK } + +FILE: [ResolvedTo(IMPORTS)] Derived.kt + public final [ResolvedTo(STATUS)] class Derived : R|Base| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Derived] constructor(): R|Derived| { + LAZY_super + } + + public open override [ResolvedTo(STATUS)] fun getSomething(): R|kotlin/String| { LAZY_BLOCK } + + public open override [ResolvedTo(STATUS)] fun setSomething([ResolvedTo(STATUS)] s: R|kotlin/String|): R|kotlin/Unit| { LAZY_BLOCK } + + } + +COMPANION_GENERATION: +TARGET: public open override [ResolvedTo(STATUS)] var something: R|kotlin/String| + public [] get(): R|kotlin/String| { LAZY_BLOCK } + public [] set([ResolvedTo(STATUS)] s: R|kotlin/String|): R|kotlin/Unit| { LAZY_BLOCK } + +FILE: [ResolvedTo(IMPORTS)] Derived.kt + public final [ResolvedTo(STATUS)] class Derived : R|Base| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Derived] constructor(): R|Derived| { + LAZY_super + } + + public open override [ResolvedTo(STATUS)] fun getSomething(): R|kotlin/String| { LAZY_BLOCK } + + public open override [ResolvedTo(STATUS)] fun setSomething([ResolvedTo(STATUS)] s: R|kotlin/String|): R|kotlin/Unit| { LAZY_BLOCK } + + } + +SUPER_TYPES: +TARGET: public open override [ResolvedTo(STATUS)] var something: R|kotlin/String| + public [] get(): R|kotlin/String| { LAZY_BLOCK } + public [] set([ResolvedTo(STATUS)] s: R|kotlin/String|): R|kotlin/Unit| { LAZY_BLOCK } + +FILE: [ResolvedTo(IMPORTS)] Derived.kt + public final [ResolvedTo(STATUS)] class Derived : R|Base| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Derived] constructor(): R|Derived| { + LAZY_super + } + + public open override [ResolvedTo(STATUS)] fun getSomething(): R|kotlin/String| { LAZY_BLOCK } + + public open override [ResolvedTo(STATUS)] fun setSomething([ResolvedTo(STATUS)] s: R|kotlin/String|): R|kotlin/Unit| { LAZY_BLOCK } + + } + +TYPES: +TARGET: public open override [ResolvedTo(STATUS)] var something: R|kotlin/String| + public [] get(): R|kotlin/String| { LAZY_BLOCK } + public [] set([ResolvedTo(STATUS)] s: R|kotlin/String|): R|kotlin/Unit| { LAZY_BLOCK } + +FILE: [ResolvedTo(IMPORTS)] Derived.kt + public final [ResolvedTo(STATUS)] class Derived : R|Base| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Derived] constructor(): R|Derived| { + LAZY_super + } + + public open override [ResolvedTo(STATUS)] fun getSomething(): R|kotlin/String| { LAZY_BLOCK } + + public open override [ResolvedTo(STATUS)] fun setSomething([ResolvedTo(STATUS)] s: R|kotlin/String|): R|kotlin/Unit| { LAZY_BLOCK } + + } + +STATUS: +TARGET: public open override [ResolvedTo(STATUS)] var something: R|kotlin/String| + public [] get(): R|kotlin/String| { LAZY_BLOCK } + public [] set([ResolvedTo(STATUS)] s: R|kotlin/String|): R|kotlin/Unit| { LAZY_BLOCK } + +FILE: [ResolvedTo(IMPORTS)] Derived.kt + public final [ResolvedTo(STATUS)] class Derived : R|Base| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Derived] constructor(): R|Derived| { + LAZY_super + } + + public open override [ResolvedTo(STATUS)] fun getSomething(): R|kotlin/String| { LAZY_BLOCK } + + public open override [ResolvedTo(STATUS)] fun setSomething([ResolvedTo(STATUS)] s: R|kotlin/String|): R|kotlin/Unit| { LAZY_BLOCK } + + } + +EXPECT_ACTUAL_MATCHING: +TARGET: public open override [ResolvedTo(STATUS)] var something: R|kotlin/String| + public [] get(): R|kotlin/String| { LAZY_BLOCK } + public [] set([ResolvedTo(STATUS)] s: R|kotlin/String|): R|kotlin/Unit| { LAZY_BLOCK } + +FILE: [ResolvedTo(IMPORTS)] Derived.kt + public final [ResolvedTo(STATUS)] class Derived : R|Base| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Derived] constructor(): R|Derived| { + LAZY_super + } + + public open override [ResolvedTo(STATUS)] fun getSomething(): R|kotlin/String| { LAZY_BLOCK } + + public open override [ResolvedTo(STATUS)] fun setSomething([ResolvedTo(STATUS)] s: R|kotlin/String|): R|kotlin/Unit| { LAZY_BLOCK } + + } + +ARGUMENTS_OF_ANNOTATIONS: +TARGET: public open override [ResolvedTo(STATUS)] var something: R|kotlin/String| + public [] get(): R|kotlin/String| { LAZY_BLOCK } + public [] set([ResolvedTo(STATUS)] s: R|kotlin/String|): R|kotlin/Unit| { LAZY_BLOCK } + +FILE: [ResolvedTo(IMPORTS)] Derived.kt + public final [ResolvedTo(STATUS)] class Derived : R|Base| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Derived] constructor(): R|Derived| { + LAZY_super + } + + public open override [ResolvedTo(STATUS)] fun getSomething(): R|kotlin/String| { LAZY_BLOCK } + + public open override [ResolvedTo(STATUS)] fun setSomething([ResolvedTo(STATUS)] s: R|kotlin/String|): R|kotlin/Unit| { LAZY_BLOCK } + + } + +CONTRACTS: +TARGET: public open override [ResolvedTo(STATUS)] var something: R|kotlin/String| + public [] get(): R|kotlin/String| { LAZY_BLOCK } + public [] set([ResolvedTo(STATUS)] s: R|kotlin/String|): R|kotlin/Unit| { LAZY_BLOCK } + +FILE: [ResolvedTo(IMPORTS)] Derived.kt + public final [ResolvedTo(STATUS)] class Derived : R|Base| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Derived] constructor(): R|Derived| { + LAZY_super + } + + public open override [ResolvedTo(STATUS)] fun getSomething(): R|kotlin/String| { LAZY_BLOCK } + + public open override [ResolvedTo(STATUS)] fun setSomething([ResolvedTo(STATUS)] s: R|kotlin/String|): R|kotlin/Unit| { LAZY_BLOCK } + + } + +IMPLICIT_TYPES_BODY_RESOLVE: +TARGET: public open override [ResolvedTo(STATUS)] var something: R|kotlin/String| + public [] get(): R|kotlin/String| { LAZY_BLOCK } + public [] set([ResolvedTo(STATUS)] s: R|kotlin/String|): R|kotlin/Unit| { LAZY_BLOCK } + +FILE: [ResolvedTo(IMPORTS)] Derived.kt + public final [ResolvedTo(STATUS)] class Derived : R|Base| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Derived] constructor(): R|Derived| { + LAZY_super + } + + public open override [ResolvedTo(STATUS)] fun getSomething(): R|kotlin/String| { LAZY_BLOCK } + + public open override [ResolvedTo(STATUS)] fun setSomething([ResolvedTo(STATUS)] s: R|kotlin/String|): R|kotlin/Unit| { LAZY_BLOCK } + + } + +ANNOTATIONS_ARGUMENTS_MAPPING: +TARGET: public open override [ResolvedTo(STATUS)] var something: R|kotlin/String| + public [] get(): R|kotlin/String| { LAZY_BLOCK } + public [] set([ResolvedTo(STATUS)] s: R|kotlin/String|): R|kotlin/Unit| { LAZY_BLOCK } + +FILE: [ResolvedTo(IMPORTS)] Derived.kt + public final [ResolvedTo(STATUS)] class Derived : R|Base| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Derived] constructor(): R|Derived| { + LAZY_super + } + + public open override [ResolvedTo(STATUS)] fun getSomething(): R|kotlin/String| { LAZY_BLOCK } + + public open override [ResolvedTo(STATUS)] fun setSomething([ResolvedTo(STATUS)] s: R|kotlin/String|): R|kotlin/Unit| { LAZY_BLOCK } + + } + +BODY_RESOLVE: +TARGET: public open override [ResolvedTo(STATUS)] var something: R|kotlin/String| + public [] get(): R|kotlin/String| { LAZY_BLOCK } + public [] set([ResolvedTo(STATUS)] s: R|kotlin/String|): R|kotlin/Unit| { LAZY_BLOCK } + +FILE: [ResolvedTo(IMPORTS)] Derived.kt + public final [ResolvedTo(STATUS)] class Derived : R|Base| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Derived] constructor(): R|Derived| { + LAZY_super + } + + public open override [ResolvedTo(STATUS)] fun getSomething(): R|kotlin/String| { LAZY_BLOCK } + + public open override [ResolvedTo(STATUS)] fun setSomething([ResolvedTo(STATUS)] s: R|kotlin/String|): R|kotlin/Unit| { LAZY_BLOCK } + + } + +FILE RAW TO BODY: +FILE: [ResolvedTo(BODY_RESOLVE)] Derived.kt + public final [ResolvedTo(BODY_RESOLVE)] class Derived : R|Base| { + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=Derived] constructor(): R|Derived| { + super() + } + + public open override [ResolvedTo(BODY_RESOLVE)] fun getSomething(): R|kotlin/String| { + ^getSomething String(42) + } + + public open override [ResolvedTo(BODY_RESOLVE)] fun setSomething([ResolvedTo(BODY_RESOLVE)] s: R|kotlin/String|): R|kotlin/Unit| { + } + + } diff --git a/analysis/low-level-api-fir/testData/lazyResolve/syntheticProperties/setterAndExplicitReturnTypeAndAnnotations.kt b/analysis/low-level-api-fir/testData/lazyResolve/syntheticProperties/setterAndExplicitReturnTypeAndAnnotations.kt new file mode 100644 index 00000000000..bd5c726f0ef --- /dev/null +++ b/analysis/low-level-api-fir/testData/lazyResolve/syntheticProperties/setterAndExplicitReturnTypeAndAnnotations.kt @@ -0,0 +1,33 @@ +// SKIP_WHEN_OUT_OF_CONTENT_ROOT +// MEMBER_NAME_FILTER: something +// FILE: Derived.kt +class Derived : Base() { + @Anno("getSomething: ${getterProperty}") + override fun getSomething(): String { + "body: ${propertyFromBody}" + } + + @Anno("setSomething: ${setterProperty}") + override fun setSomething(s: @Anno("setter type ${propertyFromSetter}") String) { + println(s) + } +} + +@Target(AnnotationTarget.FUNCTION, AnnotationTarget.TYPE) +annotation class Anno(val s: String) + +val getterProperty = 2.let { it + 1 } +val setterProperty = 2.let { it + 1 } +val propertyFromBody = "str" + 1.toString() +val propertyFromSetter = 1.toString() + "2" + +// FILE: Base.java +public class Base { + public String getSomething() { + return ""; + } + + public void setSomething(String s) { + + } +} \ No newline at end of file diff --git a/analysis/low-level-api-fir/testData/lazyResolve/syntheticProperties/setterAndExplicitReturnTypeAndAnnotations.txt b/analysis/low-level-api-fir/testData/lazyResolve/syntheticProperties/setterAndExplicitReturnTypeAndAnnotations.txt new file mode 100644 index 00000000000..d4ac3fb85b5 --- /dev/null +++ b/analysis/low-level-api-fir/testData/lazyResolve/syntheticProperties/setterAndExplicitReturnTypeAndAnnotations.txt @@ -0,0 +1,481 @@ +RAW_FIR: +TARGET: public open override [ResolvedTo(STATUS)] var something: R|kotlin/String| + @R|Anno|[Types](LAZY_EXPRESSION) public [] get(): R|kotlin/String| { LAZY_BLOCK } + @R|Anno|[Types](LAZY_EXPRESSION) public [] set([ResolvedTo(STATUS)] s: R|@R|Anno|((String(setter type ), propertyFromSetter#)) kotlin/String|): R|kotlin/Unit| { LAZY_BLOCK } + +FILE: [ResolvedTo(IMPORTS)] Derived.kt + public final [ResolvedTo(STATUS)] class Derived : R|Base| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Derived] constructor(): R|Derived| { + LAZY_super + } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun getSomething(): R|kotlin/String| { LAZY_BLOCK } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun setSomething([ResolvedTo(STATUS)] s: R|@R|Anno|((String(setter type ), propertyFromSetter#)) kotlin/String|): R|kotlin/Unit| { LAZY_BLOCK } + + } + @R|kotlin/annotation/Target|[CompilerRequiredAnnotations](Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.FUNCTION|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.TYPE|) public? final? [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] annotation class Anno : R|kotlin/Annotation| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=/Anno.s] s: String): R|Anno| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val s: String = R|/s| + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] get(): String + + } + public? final? [ResolvedTo(RAW_FIR)] val getterProperty: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val setterProperty: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val propertyFromBody: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val propertyFromSetter: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + +IMPORTS: +TARGET: public open override [ResolvedTo(STATUS)] var something: R|kotlin/String| + @R|Anno|[Types](LAZY_EXPRESSION) public [] get(): R|kotlin/String| { LAZY_BLOCK } + @R|Anno|[Types](LAZY_EXPRESSION) public [] set([ResolvedTo(STATUS)] s: R|@R|Anno|((String(setter type ), propertyFromSetter#)) kotlin/String|): R|kotlin/Unit| { LAZY_BLOCK } + +FILE: [ResolvedTo(IMPORTS)] Derived.kt + public final [ResolvedTo(STATUS)] class Derived : R|Base| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Derived] constructor(): R|Derived| { + LAZY_super + } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun getSomething(): R|kotlin/String| { LAZY_BLOCK } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun setSomething([ResolvedTo(STATUS)] s: R|@R|Anno|((String(setter type ), propertyFromSetter#)) kotlin/String|): R|kotlin/Unit| { LAZY_BLOCK } + + } + @R|kotlin/annotation/Target|[CompilerRequiredAnnotations](Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.FUNCTION|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.TYPE|) public? final? [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] annotation class Anno : R|kotlin/Annotation| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=/Anno.s] s: String): R|Anno| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val s: String = R|/s| + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] get(): String + + } + public? final? [ResolvedTo(RAW_FIR)] val getterProperty: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val setterProperty: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val propertyFromBody: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val propertyFromSetter: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + +COMPILER_REQUIRED_ANNOTATIONS: +TARGET: public open override [ResolvedTo(STATUS)] var something: R|kotlin/String| + @R|Anno|[Types](LAZY_EXPRESSION) public [] get(): R|kotlin/String| { LAZY_BLOCK } + @R|Anno|[Types](LAZY_EXPRESSION) public [] set([ResolvedTo(STATUS)] s: R|@R|Anno|((String(setter type ), propertyFromSetter#)) kotlin/String|): R|kotlin/Unit| { LAZY_BLOCK } + +FILE: [ResolvedTo(IMPORTS)] Derived.kt + public final [ResolvedTo(STATUS)] class Derived : R|Base| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Derived] constructor(): R|Derived| { + LAZY_super + } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun getSomething(): R|kotlin/String| { LAZY_BLOCK } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun setSomething([ResolvedTo(STATUS)] s: R|@R|Anno|((String(setter type ), propertyFromSetter#)) kotlin/String|): R|kotlin/Unit| { LAZY_BLOCK } + + } + @R|kotlin/annotation/Target|[CompilerRequiredAnnotations](Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.FUNCTION|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.TYPE|) public? final? [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] annotation class Anno : R|kotlin/Annotation| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=/Anno.s] s: String): R|Anno| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val s: String = R|/s| + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] get(): String + + } + public? final? [ResolvedTo(RAW_FIR)] val getterProperty: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val setterProperty: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val propertyFromBody: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val propertyFromSetter: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + +COMPANION_GENERATION: +TARGET: public open override [ResolvedTo(STATUS)] var something: R|kotlin/String| + @R|Anno|[Types](LAZY_EXPRESSION) public [] get(): R|kotlin/String| { LAZY_BLOCK } + @R|Anno|[Types](LAZY_EXPRESSION) public [] set([ResolvedTo(STATUS)] s: R|@R|Anno|((String(setter type ), propertyFromSetter#)) kotlin/String|): R|kotlin/Unit| { LAZY_BLOCK } + +FILE: [ResolvedTo(IMPORTS)] Derived.kt + public final [ResolvedTo(STATUS)] class Derived : R|Base| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Derived] constructor(): R|Derived| { + LAZY_super + } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun getSomething(): R|kotlin/String| { LAZY_BLOCK } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun setSomething([ResolvedTo(STATUS)] s: R|@R|Anno|((String(setter type ), propertyFromSetter#)) kotlin/String|): R|kotlin/Unit| { LAZY_BLOCK } + + } + @R|kotlin/annotation/Target|[CompilerRequiredAnnotations](Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.FUNCTION|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.TYPE|) public? final? [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] annotation class Anno : R|kotlin/Annotation| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=/Anno.s] s: String): R|Anno| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val s: String = R|/s| + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] get(): String + + } + public? final? [ResolvedTo(RAW_FIR)] val getterProperty: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val setterProperty: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val propertyFromBody: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val propertyFromSetter: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + +SUPER_TYPES: +TARGET: public open override [ResolvedTo(STATUS)] var something: R|kotlin/String| + @R|Anno|[Types](LAZY_EXPRESSION) public [] get(): R|kotlin/String| { LAZY_BLOCK } + @R|Anno|[Types](LAZY_EXPRESSION) public [] set([ResolvedTo(STATUS)] s: R|@R|Anno|((String(setter type ), propertyFromSetter#)) kotlin/String|): R|kotlin/Unit| { LAZY_BLOCK } + +FILE: [ResolvedTo(IMPORTS)] Derived.kt + public final [ResolvedTo(STATUS)] class Derived : R|Base| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Derived] constructor(): R|Derived| { + LAZY_super + } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun getSomething(): R|kotlin/String| { LAZY_BLOCK } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun setSomething([ResolvedTo(STATUS)] s: R|@R|Anno|((String(setter type ), propertyFromSetter#)) kotlin/String|): R|kotlin/Unit| { LAZY_BLOCK } + + } + @R|kotlin/annotation/Target|[CompilerRequiredAnnotations](Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.FUNCTION|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.TYPE|) public? final? [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] annotation class Anno : R|kotlin/Annotation| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=/Anno.s] s: String): R|Anno| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val s: String = R|/s| + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] get(): String + + } + public? final? [ResolvedTo(RAW_FIR)] val getterProperty: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val setterProperty: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val propertyFromBody: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val propertyFromSetter: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + +TYPES: +TARGET: public open override [ResolvedTo(STATUS)] var something: R|kotlin/String| + @R|Anno|[Types](LAZY_EXPRESSION) public [] get(): R|kotlin/String| { LAZY_BLOCK } + @R|Anno|[Types](LAZY_EXPRESSION) public [] set([ResolvedTo(STATUS)] s: R|@R|Anno|((String(setter type ), propertyFromSetter#)) kotlin/String|): R|kotlin/Unit| { LAZY_BLOCK } + +FILE: [ResolvedTo(IMPORTS)] Derived.kt + public final [ResolvedTo(STATUS)] class Derived : R|Base| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Derived] constructor(): R|Derived| { + LAZY_super + } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun getSomething(): R|kotlin/String| { LAZY_BLOCK } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun setSomething([ResolvedTo(STATUS)] s: R|@R|Anno|((String(setter type ), propertyFromSetter#)) kotlin/String|): R|kotlin/Unit| { LAZY_BLOCK } + + } + @R|kotlin/annotation/Target|[CompilerRequiredAnnotations](Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.FUNCTION|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.TYPE|) public? final? [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] annotation class Anno : R|kotlin/Annotation| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=/Anno.s] s: String): R|Anno| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val s: String = R|/s| + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] get(): String + + } + public? final? [ResolvedTo(RAW_FIR)] val getterProperty: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val setterProperty: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val propertyFromBody: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val propertyFromSetter: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + +STATUS: +TARGET: public open override [ResolvedTo(STATUS)] var something: R|kotlin/String| + @R|Anno|[Types](LAZY_EXPRESSION) public [] get(): R|kotlin/String| { LAZY_BLOCK } + @R|Anno|[Types](LAZY_EXPRESSION) public [] set([ResolvedTo(STATUS)] s: R|@R|Anno|((String(setter type ), propertyFromSetter#)) kotlin/String|): R|kotlin/Unit| { LAZY_BLOCK } + +FILE: [ResolvedTo(IMPORTS)] Derived.kt + public final [ResolvedTo(STATUS)] class Derived : R|Base| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Derived] constructor(): R|Derived| { + LAZY_super + } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun getSomething(): R|kotlin/String| { LAZY_BLOCK } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun setSomething([ResolvedTo(STATUS)] s: R|@R|Anno|((String(setter type ), propertyFromSetter#)) kotlin/String|): R|kotlin/Unit| { LAZY_BLOCK } + + } + @R|kotlin/annotation/Target|[CompilerRequiredAnnotations](Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.FUNCTION|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.TYPE|) public? final? [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] annotation class Anno : R|kotlin/Annotation| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=/Anno.s] s: String): R|Anno| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val s: String = R|/s| + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] get(): String + + } + public? final? [ResolvedTo(RAW_FIR)] val getterProperty: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val setterProperty: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val propertyFromBody: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val propertyFromSetter: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + +EXPECT_ACTUAL_MATCHING: +TARGET: public open override [ResolvedTo(STATUS)] var something: R|kotlin/String| + @R|Anno|[Types](LAZY_EXPRESSION) public [] get(): R|kotlin/String| { LAZY_BLOCK } + @R|Anno|[Types](LAZY_EXPRESSION) public [] set([ResolvedTo(STATUS)] s: R|@R|Anno|((String(setter type ), propertyFromSetter#)) kotlin/String|): R|kotlin/Unit| { LAZY_BLOCK } + +FILE: [ResolvedTo(IMPORTS)] Derived.kt + public final [ResolvedTo(STATUS)] class Derived : R|Base| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Derived] constructor(): R|Derived| { + LAZY_super + } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun getSomething(): R|kotlin/String| { LAZY_BLOCK } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun setSomething([ResolvedTo(STATUS)] s: R|@R|Anno|((String(setter type ), propertyFromSetter#)) kotlin/String|): R|kotlin/Unit| { LAZY_BLOCK } + + } + @R|kotlin/annotation/Target|[CompilerRequiredAnnotations](Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.FUNCTION|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.TYPE|) public? final? [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] annotation class Anno : R|kotlin/Annotation| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=/Anno.s] s: String): R|Anno| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val s: String = R|/s| + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] get(): String + + } + public? final? [ResolvedTo(RAW_FIR)] val getterProperty: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val setterProperty: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val propertyFromBody: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val propertyFromSetter: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + +ARGUMENTS_OF_ANNOTATIONS: +TARGET: public open override [ResolvedTo(STATUS)] var something: R|kotlin/String| + @R|Anno|[Types](LAZY_EXPRESSION) public [] get(): R|kotlin/String| { LAZY_BLOCK } + @R|Anno|[Types](LAZY_EXPRESSION) public [] set([ResolvedTo(STATUS)] s: R|@R|Anno|((String(setter type ), propertyFromSetter#)) kotlin/String|): R|kotlin/Unit| { LAZY_BLOCK } + +FILE: [ResolvedTo(IMPORTS)] Derived.kt + public final [ResolvedTo(STATUS)] class Derived : R|Base| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Derived] constructor(): R|Derived| { + LAZY_super + } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun getSomething(): R|kotlin/String| { LAZY_BLOCK } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun setSomething([ResolvedTo(STATUS)] s: R|@R|Anno|((String(setter type ), propertyFromSetter#)) kotlin/String|): R|kotlin/Unit| { LAZY_BLOCK } + + } + @R|kotlin/annotation/Target|[CompilerRequiredAnnotations](Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.FUNCTION|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.TYPE|) public? final? [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] annotation class Anno : R|kotlin/Annotation| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=/Anno.s] s: String): R|Anno| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val s: String = R|/s| + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] get(): String + + } + public? final? [ResolvedTo(RAW_FIR)] val getterProperty: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val setterProperty: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val propertyFromBody: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val propertyFromSetter: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + +CONTRACTS: +TARGET: public open override [ResolvedTo(STATUS)] var something: R|kotlin/String| + @R|Anno|[Types](LAZY_EXPRESSION) public [] get(): R|kotlin/String| { LAZY_BLOCK } + @R|Anno|[Types](LAZY_EXPRESSION) public [] set([ResolvedTo(STATUS)] s: R|@R|Anno|((String(setter type ), propertyFromSetter#)) kotlin/String|): R|kotlin/Unit| { LAZY_BLOCK } + +FILE: [ResolvedTo(IMPORTS)] Derived.kt + public final [ResolvedTo(STATUS)] class Derived : R|Base| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Derived] constructor(): R|Derived| { + LAZY_super + } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun getSomething(): R|kotlin/String| { LAZY_BLOCK } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun setSomething([ResolvedTo(STATUS)] s: R|@R|Anno|((String(setter type ), propertyFromSetter#)) kotlin/String|): R|kotlin/Unit| { LAZY_BLOCK } + + } + @R|kotlin/annotation/Target|[CompilerRequiredAnnotations](Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.FUNCTION|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.TYPE|) public? final? [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] annotation class Anno : R|kotlin/Annotation| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=/Anno.s] s: String): R|Anno| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val s: String = R|/s| + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] get(): String + + } + public? final? [ResolvedTo(RAW_FIR)] val getterProperty: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val setterProperty: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val propertyFromBody: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val propertyFromSetter: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + +IMPLICIT_TYPES_BODY_RESOLVE: +TARGET: public open override [ResolvedTo(STATUS)] var something: R|kotlin/String| + @R|Anno|[Types](LAZY_EXPRESSION) public [] get(): R|kotlin/String| { LAZY_BLOCK } + @R|Anno|[Types](LAZY_EXPRESSION) public [] set([ResolvedTo(STATUS)] s: R|@R|Anno|((String(setter type ), propertyFromSetter#)) kotlin/String|): R|kotlin/Unit| { LAZY_BLOCK } + +FILE: [ResolvedTo(IMPORTS)] Derived.kt + public final [ResolvedTo(STATUS)] class Derived : R|Base| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Derived] constructor(): R|Derived| { + LAZY_super + } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun getSomething(): R|kotlin/String| { LAZY_BLOCK } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun setSomething([ResolvedTo(STATUS)] s: R|@R|Anno|((String(setter type ), propertyFromSetter#)) kotlin/String|): R|kotlin/Unit| { LAZY_BLOCK } + + } + @R|kotlin/annotation/Target|[CompilerRequiredAnnotations](Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.FUNCTION|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.TYPE|) public? final? [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] annotation class Anno : R|kotlin/Annotation| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=/Anno.s] s: String): R|Anno| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val s: String = R|/s| + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] get(): String + + } + public? final? [ResolvedTo(RAW_FIR)] val getterProperty: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val setterProperty: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val propertyFromBody: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val propertyFromSetter: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + +ANNOTATIONS_ARGUMENTS_MAPPING: +TARGET: public open override [ResolvedTo(STATUS)] var something: R|kotlin/String| + @R|Anno|[Types](LAZY_EXPRESSION) public [] get(): R|kotlin/String| { LAZY_BLOCK } + @R|Anno|[Types](LAZY_EXPRESSION) public [] set([ResolvedTo(STATUS)] s: R|@R|Anno|((String(setter type ), propertyFromSetter#)) kotlin/String|): R|kotlin/Unit| { LAZY_BLOCK } + +FILE: [ResolvedTo(IMPORTS)] Derived.kt + public final [ResolvedTo(STATUS)] class Derived : R|Base| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Derived] constructor(): R|Derived| { + LAZY_super + } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun getSomething(): R|kotlin/String| { LAZY_BLOCK } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun setSomething([ResolvedTo(STATUS)] s: R|@R|Anno|((String(setter type ), propertyFromSetter#)) kotlin/String|): R|kotlin/Unit| { LAZY_BLOCK } + + } + @R|kotlin/annotation/Target|[CompilerRequiredAnnotations](Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.FUNCTION|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.TYPE|) public? final? [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] annotation class Anno : R|kotlin/Annotation| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=/Anno.s] s: String): R|Anno| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val s: String = R|/s| + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] get(): String + + } + public? final? [ResolvedTo(RAW_FIR)] val getterProperty: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val setterProperty: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val propertyFromBody: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val propertyFromSetter: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + +BODY_RESOLVE: +TARGET: public open override [ResolvedTo(STATUS)] var something: R|kotlin/String| + @R|Anno|[Types](LAZY_EXPRESSION) public [] get(): R|kotlin/String| { LAZY_BLOCK } + @R|Anno|[Types](LAZY_EXPRESSION) public [] set([ResolvedTo(STATUS)] s: R|@R|Anno|((String(setter type ), propertyFromSetter#)) kotlin/String|): R|kotlin/Unit| { LAZY_BLOCK } + +FILE: [ResolvedTo(IMPORTS)] Derived.kt + public final [ResolvedTo(STATUS)] class Derived : R|Base| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Derived] constructor(): R|Derived| { + LAZY_super + } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun getSomething(): R|kotlin/String| { LAZY_BLOCK } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun setSomething([ResolvedTo(STATUS)] s: R|@R|Anno|((String(setter type ), propertyFromSetter#)) kotlin/String|): R|kotlin/Unit| { LAZY_BLOCK } + + } + @R|kotlin/annotation/Target|[CompilerRequiredAnnotations](Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.FUNCTION|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.TYPE|) public? final? [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] annotation class Anno : R|kotlin/Annotation| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=/Anno.s] s: String): R|Anno| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val s: String = R|/s| + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] get(): String + + } + public? final? [ResolvedTo(RAW_FIR)] val getterProperty: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val setterProperty: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val propertyFromBody: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val propertyFromSetter: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + +FILE RAW TO BODY: +FILE: [ResolvedTo(BODY_RESOLVE)] Derived.kt + public final [ResolvedTo(BODY_RESOLVE)] class Derived : R|Base| { + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=Derived] constructor(): R|Derived| { + super() + } + + @R|Anno|[Types](s = (String(getSomething: ), R|/getterProperty|)) public open override [ResolvedTo(BODY_RESOLVE)] fun getSomething(): R|kotlin/String| { + (String(body: ), R|/propertyFromBody|) + } + + @R|Anno|[Types](s = (String(setSomething: ), R|/setterProperty|)) public open override [ResolvedTo(BODY_RESOLVE)] fun setSomething([ResolvedTo(BODY_RESOLVE)] s: R|@R|Anno|(s = (String(setter type ), R|/propertyFromSetter|)) kotlin/String|): R|kotlin/Unit| { + R|kotlin/io/println|(R|/s|) + } + + } + @R|kotlin/annotation/Target|[Types](allowedTargets = vararg(Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.FUNCTION|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.TYPE|)) public final [ResolvedTo(BODY_RESOLVE)] annotation class Anno : R|kotlin/Annotation| { + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=Anno] constructor([ResolvedTo(BODY_RESOLVE)] [CorrespondingProperty=/Anno.s] s: R|kotlin/String|): R|Anno| { + super() + } + + public final [ResolvedTo(BODY_RESOLVE)] [IsFromPrimaryConstructor=true] val s: R|kotlin/String| = R|/s| + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=Anno] get(): R|kotlin/String| + + } + public final [ResolvedTo(BODY_RESOLVE)] val getterProperty: R|kotlin/Int| = Int(2).R|kotlin/let|( = [ResolvedTo(BODY_RESOLVE)] [MatchingParameterFunctionTypeKey=kotlin/Function1] let@fun ([ResolvedTo(BODY_RESOLVE)] it: R|kotlin/Int|): R|kotlin/Int| { + ^ R|/it|.R|kotlin/Int.plus|(Int(1)) + } + ) + public [ResolvedTo(BODY_RESOLVE)] get(): R|kotlin/Int| + public final [ResolvedTo(BODY_RESOLVE)] val setterProperty: R|kotlin/Int| = Int(2).R|kotlin/let|( = [ResolvedTo(BODY_RESOLVE)] [MatchingParameterFunctionTypeKey=kotlin/Function1] let@fun ([ResolvedTo(BODY_RESOLVE)] it: R|kotlin/Int|): R|kotlin/Int| { + ^ R|/it|.R|kotlin/Int.plus|(Int(1)) + } + ) + public [ResolvedTo(BODY_RESOLVE)] get(): R|kotlin/Int| + public final [ResolvedTo(BODY_RESOLVE)] val propertyFromBody: R|kotlin/String| = String(str).R|kotlin/String.plus|(Int(1).R|kotlin/Int.toString|()) + public [ResolvedTo(BODY_RESOLVE)] get(): R|kotlin/String| + public final [ResolvedTo(BODY_RESOLVE)] val propertyFromSetter: R|kotlin/String| = Int(1).R|kotlin/Int.toString|().R|kotlin/String.plus|(String(2)) + public [ResolvedTo(BODY_RESOLVE)] get(): R|kotlin/String| diff --git a/analysis/low-level-api-fir/testData/lazyResolve/syntheticProperties/setterAndExplicitReturnTypeAndAnnotationsAsGetter.kt b/analysis/low-level-api-fir/testData/lazyResolve/syntheticProperties/setterAndExplicitReturnTypeAndAnnotationsAsGetter.kt new file mode 100644 index 00000000000..5c664de16c9 --- /dev/null +++ b/analysis/low-level-api-fir/testData/lazyResolve/syntheticProperties/setterAndExplicitReturnTypeAndAnnotationsAsGetter.kt @@ -0,0 +1,34 @@ +// SKIP_WHEN_OUT_OF_CONTENT_ROOT +// MEMBER_NAME_FILTER: something +// IS_GETTER: true +// FILE: Derived.kt +class Derived : Base() { + @Anno("getSomething: ${getterProperty}") + override fun getSomething(): String { + "body: ${propertyFromBody}" + } + + @Anno("setSomething: ${setterProperty}") + override fun setSomething(s: @Anno("setter type ${propertyFromSetter}") String) { + println(s) + } +} + +@Target(AnnotationTarget.FUNCTION, AnnotationTarget.TYPE) +annotation class Anno(val s: String) + +val getterProperty = 2.let { it + 1 } +val setterProperty = 2.let { it + 1 } +val propertyFromBody = "str" + 1.toString() +val propertyFromSetter = 1.toString() + "2" + +// FILE: Base.java +public class Base { + public String getSomething() { + return ""; + } + + public void setSomething(String s) { + + } +} \ No newline at end of file diff --git a/analysis/low-level-api-fir/testData/lazyResolve/syntheticProperties/setterAndExplicitReturnTypeAndAnnotationsAsGetter.txt b/analysis/low-level-api-fir/testData/lazyResolve/syntheticProperties/setterAndExplicitReturnTypeAndAnnotationsAsGetter.txt new file mode 100644 index 00000000000..709124356c6 --- /dev/null +++ b/analysis/low-level-api-fir/testData/lazyResolve/syntheticProperties/setterAndExplicitReturnTypeAndAnnotationsAsGetter.txt @@ -0,0 +1,455 @@ +RAW_FIR: +TARGET: @R|Anno|[Types](LAZY_EXPRESSION) public [] get(): R|kotlin/String| { LAZY_BLOCK } + +FILE: [ResolvedTo(IMPORTS)] Derived.kt + public final [ResolvedTo(STATUS)] class Derived : R|Base| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Derived] constructor(): R|Derived| { + LAZY_super + } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun getSomething(): R|kotlin/String| { LAZY_BLOCK } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun setSomething([ResolvedTo(STATUS)] s: R|@R|Anno|((String(setter type ), propertyFromSetter#)) kotlin/String|): R|kotlin/Unit| { LAZY_BLOCK } + + } + @R|kotlin/annotation/Target|[CompilerRequiredAnnotations](Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.FUNCTION|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.TYPE|) public? final? [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] annotation class Anno : R|kotlin/Annotation| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=/Anno.s] s: String): R|Anno| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val s: String = R|/s| + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] get(): String + + } + public? final? [ResolvedTo(RAW_FIR)] val getterProperty: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val setterProperty: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val propertyFromBody: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val propertyFromSetter: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + +IMPORTS: +TARGET: @R|Anno|[Types](LAZY_EXPRESSION) public [] get(): R|kotlin/String| { LAZY_BLOCK } + +FILE: [ResolvedTo(IMPORTS)] Derived.kt + public final [ResolvedTo(STATUS)] class Derived : R|Base| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Derived] constructor(): R|Derived| { + LAZY_super + } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun getSomething(): R|kotlin/String| { LAZY_BLOCK } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun setSomething([ResolvedTo(STATUS)] s: R|@R|Anno|((String(setter type ), propertyFromSetter#)) kotlin/String|): R|kotlin/Unit| { LAZY_BLOCK } + + } + @R|kotlin/annotation/Target|[CompilerRequiredAnnotations](Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.FUNCTION|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.TYPE|) public? final? [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] annotation class Anno : R|kotlin/Annotation| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=/Anno.s] s: String): R|Anno| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val s: String = R|/s| + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] get(): String + + } + public? final? [ResolvedTo(RAW_FIR)] val getterProperty: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val setterProperty: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val propertyFromBody: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val propertyFromSetter: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + +COMPILER_REQUIRED_ANNOTATIONS: +TARGET: @R|Anno|[Types](LAZY_EXPRESSION) public [] get(): R|kotlin/String| { LAZY_BLOCK } + +FILE: [ResolvedTo(IMPORTS)] Derived.kt + public final [ResolvedTo(STATUS)] class Derived : R|Base| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Derived] constructor(): R|Derived| { + LAZY_super + } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun getSomething(): R|kotlin/String| { LAZY_BLOCK } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun setSomething([ResolvedTo(STATUS)] s: R|@R|Anno|((String(setter type ), propertyFromSetter#)) kotlin/String|): R|kotlin/Unit| { LAZY_BLOCK } + + } + @R|kotlin/annotation/Target|[CompilerRequiredAnnotations](Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.FUNCTION|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.TYPE|) public? final? [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] annotation class Anno : R|kotlin/Annotation| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=/Anno.s] s: String): R|Anno| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val s: String = R|/s| + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] get(): String + + } + public? final? [ResolvedTo(RAW_FIR)] val getterProperty: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val setterProperty: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val propertyFromBody: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val propertyFromSetter: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + +COMPANION_GENERATION: +TARGET: @R|Anno|[Types](LAZY_EXPRESSION) public [] get(): R|kotlin/String| { LAZY_BLOCK } + +FILE: [ResolvedTo(IMPORTS)] Derived.kt + public final [ResolvedTo(STATUS)] class Derived : R|Base| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Derived] constructor(): R|Derived| { + LAZY_super + } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun getSomething(): R|kotlin/String| { LAZY_BLOCK } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun setSomething([ResolvedTo(STATUS)] s: R|@R|Anno|((String(setter type ), propertyFromSetter#)) kotlin/String|): R|kotlin/Unit| { LAZY_BLOCK } + + } + @R|kotlin/annotation/Target|[CompilerRequiredAnnotations](Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.FUNCTION|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.TYPE|) public? final? [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] annotation class Anno : R|kotlin/Annotation| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=/Anno.s] s: String): R|Anno| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val s: String = R|/s| + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] get(): String + + } + public? final? [ResolvedTo(RAW_FIR)] val getterProperty: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val setterProperty: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val propertyFromBody: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val propertyFromSetter: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + +SUPER_TYPES: +TARGET: @R|Anno|[Types](LAZY_EXPRESSION) public [] get(): R|kotlin/String| { LAZY_BLOCK } + +FILE: [ResolvedTo(IMPORTS)] Derived.kt + public final [ResolvedTo(STATUS)] class Derived : R|Base| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Derived] constructor(): R|Derived| { + LAZY_super + } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun getSomething(): R|kotlin/String| { LAZY_BLOCK } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun setSomething([ResolvedTo(STATUS)] s: R|@R|Anno|((String(setter type ), propertyFromSetter#)) kotlin/String|): R|kotlin/Unit| { LAZY_BLOCK } + + } + @R|kotlin/annotation/Target|[CompilerRequiredAnnotations](Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.FUNCTION|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.TYPE|) public? final? [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] annotation class Anno : R|kotlin/Annotation| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=/Anno.s] s: String): R|Anno| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val s: String = R|/s| + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] get(): String + + } + public? final? [ResolvedTo(RAW_FIR)] val getterProperty: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val setterProperty: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val propertyFromBody: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val propertyFromSetter: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + +TYPES: +TARGET: @R|Anno|[Types](LAZY_EXPRESSION) public [] get(): R|kotlin/String| { LAZY_BLOCK } + +FILE: [ResolvedTo(IMPORTS)] Derived.kt + public final [ResolvedTo(STATUS)] class Derived : R|Base| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Derived] constructor(): R|Derived| { + LAZY_super + } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun getSomething(): R|kotlin/String| { LAZY_BLOCK } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun setSomething([ResolvedTo(STATUS)] s: R|@R|Anno|((String(setter type ), propertyFromSetter#)) kotlin/String|): R|kotlin/Unit| { LAZY_BLOCK } + + } + @R|kotlin/annotation/Target|[CompilerRequiredAnnotations](Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.FUNCTION|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.TYPE|) public? final? [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] annotation class Anno : R|kotlin/Annotation| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=/Anno.s] s: String): R|Anno| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val s: String = R|/s| + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] get(): String + + } + public? final? [ResolvedTo(RAW_FIR)] val getterProperty: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val setterProperty: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val propertyFromBody: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val propertyFromSetter: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + +STATUS: +TARGET: @R|Anno|[Types](LAZY_EXPRESSION) public [] get(): R|kotlin/String| { LAZY_BLOCK } + +FILE: [ResolvedTo(IMPORTS)] Derived.kt + public final [ResolvedTo(STATUS)] class Derived : R|Base| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Derived] constructor(): R|Derived| { + LAZY_super + } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun getSomething(): R|kotlin/String| { LAZY_BLOCK } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun setSomething([ResolvedTo(STATUS)] s: R|@R|Anno|((String(setter type ), propertyFromSetter#)) kotlin/String|): R|kotlin/Unit| { LAZY_BLOCK } + + } + @R|kotlin/annotation/Target|[CompilerRequiredAnnotations](Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.FUNCTION|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.TYPE|) public? final? [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] annotation class Anno : R|kotlin/Annotation| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=/Anno.s] s: String): R|Anno| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val s: String = R|/s| + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] get(): String + + } + public? final? [ResolvedTo(RAW_FIR)] val getterProperty: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val setterProperty: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val propertyFromBody: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val propertyFromSetter: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + +EXPECT_ACTUAL_MATCHING: +TARGET: @R|Anno|[Types](LAZY_EXPRESSION) public [] get(): R|kotlin/String| { LAZY_BLOCK } + +FILE: [ResolvedTo(IMPORTS)] Derived.kt + public final [ResolvedTo(STATUS)] class Derived : R|Base| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Derived] constructor(): R|Derived| { + LAZY_super + } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun getSomething(): R|kotlin/String| { LAZY_BLOCK } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun setSomething([ResolvedTo(STATUS)] s: R|@R|Anno|((String(setter type ), propertyFromSetter#)) kotlin/String|): R|kotlin/Unit| { LAZY_BLOCK } + + } + @R|kotlin/annotation/Target|[CompilerRequiredAnnotations](Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.FUNCTION|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.TYPE|) public? final? [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] annotation class Anno : R|kotlin/Annotation| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=/Anno.s] s: String): R|Anno| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val s: String = R|/s| + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] get(): String + + } + public? final? [ResolvedTo(RAW_FIR)] val getterProperty: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val setterProperty: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val propertyFromBody: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val propertyFromSetter: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + +ARGUMENTS_OF_ANNOTATIONS: +TARGET: @R|Anno|[Types](LAZY_EXPRESSION) public [] get(): R|kotlin/String| { LAZY_BLOCK } + +FILE: [ResolvedTo(IMPORTS)] Derived.kt + public final [ResolvedTo(STATUS)] class Derived : R|Base| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Derived] constructor(): R|Derived| { + LAZY_super + } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun getSomething(): R|kotlin/String| { LAZY_BLOCK } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun setSomething([ResolvedTo(STATUS)] s: R|@R|Anno|((String(setter type ), propertyFromSetter#)) kotlin/String|): R|kotlin/Unit| { LAZY_BLOCK } + + } + @R|kotlin/annotation/Target|[CompilerRequiredAnnotations](Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.FUNCTION|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.TYPE|) public? final? [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] annotation class Anno : R|kotlin/Annotation| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=/Anno.s] s: String): R|Anno| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val s: String = R|/s| + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] get(): String + + } + public? final? [ResolvedTo(RAW_FIR)] val getterProperty: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val setterProperty: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val propertyFromBody: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val propertyFromSetter: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + +CONTRACTS: +TARGET: @R|Anno|[Types](LAZY_EXPRESSION) public [] get(): R|kotlin/String| { LAZY_BLOCK } + +FILE: [ResolvedTo(IMPORTS)] Derived.kt + public final [ResolvedTo(STATUS)] class Derived : R|Base| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Derived] constructor(): R|Derived| { + LAZY_super + } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun getSomething(): R|kotlin/String| { LAZY_BLOCK } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun setSomething([ResolvedTo(STATUS)] s: R|@R|Anno|((String(setter type ), propertyFromSetter#)) kotlin/String|): R|kotlin/Unit| { LAZY_BLOCK } + + } + @R|kotlin/annotation/Target|[CompilerRequiredAnnotations](Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.FUNCTION|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.TYPE|) public? final? [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] annotation class Anno : R|kotlin/Annotation| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=/Anno.s] s: String): R|Anno| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val s: String = R|/s| + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] get(): String + + } + public? final? [ResolvedTo(RAW_FIR)] val getterProperty: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val setterProperty: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val propertyFromBody: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val propertyFromSetter: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + +IMPLICIT_TYPES_BODY_RESOLVE: +TARGET: @R|Anno|[Types](LAZY_EXPRESSION) public [] get(): R|kotlin/String| { LAZY_BLOCK } + +FILE: [ResolvedTo(IMPORTS)] Derived.kt + public final [ResolvedTo(STATUS)] class Derived : R|Base| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Derived] constructor(): R|Derived| { + LAZY_super + } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun getSomething(): R|kotlin/String| { LAZY_BLOCK } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun setSomething([ResolvedTo(STATUS)] s: R|@R|Anno|((String(setter type ), propertyFromSetter#)) kotlin/String|): R|kotlin/Unit| { LAZY_BLOCK } + + } + @R|kotlin/annotation/Target|[CompilerRequiredAnnotations](Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.FUNCTION|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.TYPE|) public? final? [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] annotation class Anno : R|kotlin/Annotation| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=/Anno.s] s: String): R|Anno| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val s: String = R|/s| + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] get(): String + + } + public? final? [ResolvedTo(RAW_FIR)] val getterProperty: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val setterProperty: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val propertyFromBody: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val propertyFromSetter: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + +ANNOTATIONS_ARGUMENTS_MAPPING: +TARGET: @R|Anno|[Types](LAZY_EXPRESSION) public [] get(): R|kotlin/String| { LAZY_BLOCK } + +FILE: [ResolvedTo(IMPORTS)] Derived.kt + public final [ResolvedTo(STATUS)] class Derived : R|Base| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Derived] constructor(): R|Derived| { + LAZY_super + } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun getSomething(): R|kotlin/String| { LAZY_BLOCK } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun setSomething([ResolvedTo(STATUS)] s: R|@R|Anno|((String(setter type ), propertyFromSetter#)) kotlin/String|): R|kotlin/Unit| { LAZY_BLOCK } + + } + @R|kotlin/annotation/Target|[CompilerRequiredAnnotations](Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.FUNCTION|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.TYPE|) public? final? [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] annotation class Anno : R|kotlin/Annotation| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=/Anno.s] s: String): R|Anno| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val s: String = R|/s| + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] get(): String + + } + public? final? [ResolvedTo(RAW_FIR)] val getterProperty: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val setterProperty: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val propertyFromBody: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val propertyFromSetter: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + +BODY_RESOLVE: +TARGET: @R|Anno|[Types](LAZY_EXPRESSION) public [] get(): R|kotlin/String| { LAZY_BLOCK } + +FILE: [ResolvedTo(IMPORTS)] Derived.kt + public final [ResolvedTo(STATUS)] class Derived : R|Base| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Derived] constructor(): R|Derived| { + LAZY_super + } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun getSomething(): R|kotlin/String| { LAZY_BLOCK } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun setSomething([ResolvedTo(STATUS)] s: R|@R|Anno|((String(setter type ), propertyFromSetter#)) kotlin/String|): R|kotlin/Unit| { LAZY_BLOCK } + + } + @R|kotlin/annotation/Target|[CompilerRequiredAnnotations](Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.FUNCTION|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.TYPE|) public? final? [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] annotation class Anno : R|kotlin/Annotation| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=/Anno.s] s: String): R|Anno| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val s: String = R|/s| + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] get(): String + + } + public? final? [ResolvedTo(RAW_FIR)] val getterProperty: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val setterProperty: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val propertyFromBody: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val propertyFromSetter: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + +FILE RAW TO BODY: +FILE: [ResolvedTo(BODY_RESOLVE)] Derived.kt + public final [ResolvedTo(BODY_RESOLVE)] class Derived : R|Base| { + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=Derived] constructor(): R|Derived| { + super() + } + + @R|Anno|[Types](s = (String(getSomething: ), R|/getterProperty|)) public open override [ResolvedTo(BODY_RESOLVE)] fun getSomething(): R|kotlin/String| { + (String(body: ), R|/propertyFromBody|) + } + + @R|Anno|[Types](s = (String(setSomething: ), R|/setterProperty|)) public open override [ResolvedTo(BODY_RESOLVE)] fun setSomething([ResolvedTo(BODY_RESOLVE)] s: R|@R|Anno|(s = (String(setter type ), R|/propertyFromSetter|)) kotlin/String|): R|kotlin/Unit| { + R|kotlin/io/println|(R|/s|) + } + + } + @R|kotlin/annotation/Target|[Types](allowedTargets = vararg(Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.FUNCTION|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.TYPE|)) public final [ResolvedTo(BODY_RESOLVE)] annotation class Anno : R|kotlin/Annotation| { + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=Anno] constructor([ResolvedTo(BODY_RESOLVE)] [CorrespondingProperty=/Anno.s] s: R|kotlin/String|): R|Anno| { + super() + } + + public final [ResolvedTo(BODY_RESOLVE)] [IsFromPrimaryConstructor=true] val s: R|kotlin/String| = R|/s| + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=Anno] get(): R|kotlin/String| + + } + public final [ResolvedTo(BODY_RESOLVE)] val getterProperty: R|kotlin/Int| = Int(2).R|kotlin/let|( = [ResolvedTo(BODY_RESOLVE)] [MatchingParameterFunctionTypeKey=kotlin/Function1] let@fun ([ResolvedTo(BODY_RESOLVE)] it: R|kotlin/Int|): R|kotlin/Int| { + ^ R|/it|.R|kotlin/Int.plus|(Int(1)) + } + ) + public [ResolvedTo(BODY_RESOLVE)] get(): R|kotlin/Int| + public final [ResolvedTo(BODY_RESOLVE)] val setterProperty: R|kotlin/Int| = Int(2).R|kotlin/let|( = [ResolvedTo(BODY_RESOLVE)] [MatchingParameterFunctionTypeKey=kotlin/Function1] let@fun ([ResolvedTo(BODY_RESOLVE)] it: R|kotlin/Int|): R|kotlin/Int| { + ^ R|/it|.R|kotlin/Int.plus|(Int(1)) + } + ) + public [ResolvedTo(BODY_RESOLVE)] get(): R|kotlin/Int| + public final [ResolvedTo(BODY_RESOLVE)] val propertyFromBody: R|kotlin/String| = String(str).R|kotlin/String.plus|(Int(1).R|kotlin/Int.toString|()) + public [ResolvedTo(BODY_RESOLVE)] get(): R|kotlin/String| + public final [ResolvedTo(BODY_RESOLVE)] val propertyFromSetter: R|kotlin/String| = Int(1).R|kotlin/Int.toString|().R|kotlin/String.plus|(String(2)) + public [ResolvedTo(BODY_RESOLVE)] get(): R|kotlin/String| diff --git a/analysis/low-level-api-fir/testData/lazyResolve/syntheticProperties/setterAndExplicitReturnTypeAndAnnotationsAsSetter.kt b/analysis/low-level-api-fir/testData/lazyResolve/syntheticProperties/setterAndExplicitReturnTypeAndAnnotationsAsSetter.kt new file mode 100644 index 00000000000..b97841e045b --- /dev/null +++ b/analysis/low-level-api-fir/testData/lazyResolve/syntheticProperties/setterAndExplicitReturnTypeAndAnnotationsAsSetter.kt @@ -0,0 +1,32 @@ +// SKIP_WHEN_OUT_OF_CONTENT_ROOT +// MEMBER_NAME_FILTER: something +// IS_GETTER: false +// FILE: Derived.kt +class Derived : Base() { + @Anno("getSomething: ${getterProperty}") + override fun getSomething(): String { + "body: ${propertyFromBody}" + } + + @Anno("setSomething: ${setterProperty}") + override fun setSomething(s: @Anno("setter type ${propertyFromSetter}") String) = println(s) +} + +@Target(AnnotationTarget.FUNCTION, AnnotationTarget.TYPE) +annotation class Anno(val s: String) + +val getterProperty = 2.let { it + 1 } +val setterProperty = 2.let { it + 1 } +val propertyFromBody = "str" + 1.toString() +val propertyFromSetter = 1.toString() + "2" + +// FILE: Base.java +public class Base { + public String getSomething() { + return ""; + } + + public void setSomething(String s) { + + } +} \ No newline at end of file diff --git a/analysis/low-level-api-fir/testData/lazyResolve/syntheticProperties/setterAndExplicitReturnTypeAndAnnotationsAsSetter.txt b/analysis/low-level-api-fir/testData/lazyResolve/syntheticProperties/setterAndExplicitReturnTypeAndAnnotationsAsSetter.txt new file mode 100644 index 00000000000..d802b5fe9fe --- /dev/null +++ b/analysis/low-level-api-fir/testData/lazyResolve/syntheticProperties/setterAndExplicitReturnTypeAndAnnotationsAsSetter.txt @@ -0,0 +1,455 @@ +RAW_FIR: +TARGET: @R|Anno|[Types](LAZY_EXPRESSION) public [] set([ResolvedTo(STATUS)] s: R|@R|Anno|((String(setter type ), propertyFromSetter#)) kotlin/String|): { LAZY_BLOCK } + +FILE: [ResolvedTo(IMPORTS)] Derived.kt + public final [ResolvedTo(STATUS)] class Derived : R|Base| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Derived] constructor(): R|Derived| { + LAZY_super + } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun getSomething(): R|kotlin/String| { LAZY_BLOCK } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun setSomething([ResolvedTo(STATUS)] s: R|@R|Anno|((String(setter type ), propertyFromSetter#)) kotlin/String|): { LAZY_BLOCK } + + } + @R|kotlin/annotation/Target|[CompilerRequiredAnnotations](Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.FUNCTION|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.TYPE|) public? final? [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] annotation class Anno : R|kotlin/Annotation| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=/Anno.s] s: String): R|Anno| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val s: String = R|/s| + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] get(): String + + } + public? final? [ResolvedTo(RAW_FIR)] val getterProperty: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val setterProperty: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val propertyFromBody: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val propertyFromSetter: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + +IMPORTS: +TARGET: @R|Anno|[Types](LAZY_EXPRESSION) public [] set([ResolvedTo(STATUS)] s: R|@R|Anno|((String(setter type ), propertyFromSetter#)) kotlin/String|): { LAZY_BLOCK } + +FILE: [ResolvedTo(IMPORTS)] Derived.kt + public final [ResolvedTo(STATUS)] class Derived : R|Base| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Derived] constructor(): R|Derived| { + LAZY_super + } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun getSomething(): R|kotlin/String| { LAZY_BLOCK } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun setSomething([ResolvedTo(STATUS)] s: R|@R|Anno|((String(setter type ), propertyFromSetter#)) kotlin/String|): { LAZY_BLOCK } + + } + @R|kotlin/annotation/Target|[CompilerRequiredAnnotations](Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.FUNCTION|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.TYPE|) public? final? [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] annotation class Anno : R|kotlin/Annotation| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=/Anno.s] s: String): R|Anno| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val s: String = R|/s| + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] get(): String + + } + public? final? [ResolvedTo(RAW_FIR)] val getterProperty: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val setterProperty: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val propertyFromBody: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val propertyFromSetter: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + +COMPILER_REQUIRED_ANNOTATIONS: +TARGET: @R|Anno|[Types](LAZY_EXPRESSION) public [] set([ResolvedTo(STATUS)] s: R|@R|Anno|((String(setter type ), propertyFromSetter#)) kotlin/String|): { LAZY_BLOCK } + +FILE: [ResolvedTo(IMPORTS)] Derived.kt + public final [ResolvedTo(STATUS)] class Derived : R|Base| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Derived] constructor(): R|Derived| { + LAZY_super + } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun getSomething(): R|kotlin/String| { LAZY_BLOCK } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun setSomething([ResolvedTo(STATUS)] s: R|@R|Anno|((String(setter type ), propertyFromSetter#)) kotlin/String|): { LAZY_BLOCK } + + } + @R|kotlin/annotation/Target|[CompilerRequiredAnnotations](Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.FUNCTION|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.TYPE|) public? final? [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] annotation class Anno : R|kotlin/Annotation| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=/Anno.s] s: String): R|Anno| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val s: String = R|/s| + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] get(): String + + } + public? final? [ResolvedTo(RAW_FIR)] val getterProperty: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val setterProperty: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val propertyFromBody: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val propertyFromSetter: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + +COMPANION_GENERATION: +TARGET: @R|Anno|[Types](LAZY_EXPRESSION) public [] set([ResolvedTo(STATUS)] s: R|@R|Anno|((String(setter type ), propertyFromSetter#)) kotlin/String|): { LAZY_BLOCK } + +FILE: [ResolvedTo(IMPORTS)] Derived.kt + public final [ResolvedTo(STATUS)] class Derived : R|Base| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Derived] constructor(): R|Derived| { + LAZY_super + } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun getSomething(): R|kotlin/String| { LAZY_BLOCK } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun setSomething([ResolvedTo(STATUS)] s: R|@R|Anno|((String(setter type ), propertyFromSetter#)) kotlin/String|): { LAZY_BLOCK } + + } + @R|kotlin/annotation/Target|[CompilerRequiredAnnotations](Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.FUNCTION|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.TYPE|) public? final? [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] annotation class Anno : R|kotlin/Annotation| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=/Anno.s] s: String): R|Anno| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val s: String = R|/s| + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] get(): String + + } + public? final? [ResolvedTo(RAW_FIR)] val getterProperty: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val setterProperty: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val propertyFromBody: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val propertyFromSetter: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + +SUPER_TYPES: +TARGET: @R|Anno|[Types](LAZY_EXPRESSION) public [] set([ResolvedTo(STATUS)] s: R|@R|Anno|((String(setter type ), propertyFromSetter#)) kotlin/String|): { LAZY_BLOCK } + +FILE: [ResolvedTo(IMPORTS)] Derived.kt + public final [ResolvedTo(STATUS)] class Derived : R|Base| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Derived] constructor(): R|Derived| { + LAZY_super + } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun getSomething(): R|kotlin/String| { LAZY_BLOCK } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun setSomething([ResolvedTo(STATUS)] s: R|@R|Anno|((String(setter type ), propertyFromSetter#)) kotlin/String|): { LAZY_BLOCK } + + } + @R|kotlin/annotation/Target|[CompilerRequiredAnnotations](Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.FUNCTION|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.TYPE|) public? final? [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] annotation class Anno : R|kotlin/Annotation| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=/Anno.s] s: String): R|Anno| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val s: String = R|/s| + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] get(): String + + } + public? final? [ResolvedTo(RAW_FIR)] val getterProperty: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val setterProperty: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val propertyFromBody: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val propertyFromSetter: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + +TYPES: +TARGET: @R|Anno|[Types](LAZY_EXPRESSION) public [] set([ResolvedTo(STATUS)] s: R|@R|Anno|((String(setter type ), propertyFromSetter#)) kotlin/String|): { LAZY_BLOCK } + +FILE: [ResolvedTo(IMPORTS)] Derived.kt + public final [ResolvedTo(STATUS)] class Derived : R|Base| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Derived] constructor(): R|Derived| { + LAZY_super + } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun getSomething(): R|kotlin/String| { LAZY_BLOCK } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun setSomething([ResolvedTo(STATUS)] s: R|@R|Anno|((String(setter type ), propertyFromSetter#)) kotlin/String|): { LAZY_BLOCK } + + } + @R|kotlin/annotation/Target|[CompilerRequiredAnnotations](Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.FUNCTION|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.TYPE|) public? final? [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] annotation class Anno : R|kotlin/Annotation| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=/Anno.s] s: String): R|Anno| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val s: String = R|/s| + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] get(): String + + } + public? final? [ResolvedTo(RAW_FIR)] val getterProperty: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val setterProperty: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val propertyFromBody: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val propertyFromSetter: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + +STATUS: +TARGET: @R|Anno|[Types](LAZY_EXPRESSION) public [] set([ResolvedTo(STATUS)] s: R|@R|Anno|((String(setter type ), propertyFromSetter#)) kotlin/String|): { LAZY_BLOCK } + +FILE: [ResolvedTo(IMPORTS)] Derived.kt + public final [ResolvedTo(STATUS)] class Derived : R|Base| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Derived] constructor(): R|Derived| { + LAZY_super + } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun getSomething(): R|kotlin/String| { LAZY_BLOCK } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun setSomething([ResolvedTo(STATUS)] s: R|@R|Anno|((String(setter type ), propertyFromSetter#)) kotlin/String|): { LAZY_BLOCK } + + } + @R|kotlin/annotation/Target|[CompilerRequiredAnnotations](Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.FUNCTION|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.TYPE|) public? final? [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] annotation class Anno : R|kotlin/Annotation| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=/Anno.s] s: String): R|Anno| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val s: String = R|/s| + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] get(): String + + } + public? final? [ResolvedTo(RAW_FIR)] val getterProperty: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val setterProperty: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val propertyFromBody: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val propertyFromSetter: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + +EXPECT_ACTUAL_MATCHING: +TARGET: @R|Anno|[Types](LAZY_EXPRESSION) public [] set([ResolvedTo(STATUS)] s: R|@R|Anno|((String(setter type ), propertyFromSetter#)) kotlin/String|): { LAZY_BLOCK } + +FILE: [ResolvedTo(IMPORTS)] Derived.kt + public final [ResolvedTo(STATUS)] class Derived : R|Base| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Derived] constructor(): R|Derived| { + LAZY_super + } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun getSomething(): R|kotlin/String| { LAZY_BLOCK } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun setSomething([ResolvedTo(STATUS)] s: R|@R|Anno|((String(setter type ), propertyFromSetter#)) kotlin/String|): { LAZY_BLOCK } + + } + @R|kotlin/annotation/Target|[CompilerRequiredAnnotations](Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.FUNCTION|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.TYPE|) public? final? [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] annotation class Anno : R|kotlin/Annotation| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=/Anno.s] s: String): R|Anno| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val s: String = R|/s| + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] get(): String + + } + public? final? [ResolvedTo(RAW_FIR)] val getterProperty: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val setterProperty: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val propertyFromBody: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val propertyFromSetter: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + +ARGUMENTS_OF_ANNOTATIONS: +TARGET: @R|Anno|[Types](LAZY_EXPRESSION) public [] set([ResolvedTo(STATUS)] s: R|@R|Anno|((String(setter type ), propertyFromSetter#)) kotlin/String|): { LAZY_BLOCK } + +FILE: [ResolvedTo(IMPORTS)] Derived.kt + public final [ResolvedTo(STATUS)] class Derived : R|Base| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Derived] constructor(): R|Derived| { + LAZY_super + } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun getSomething(): R|kotlin/String| { LAZY_BLOCK } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun setSomething([ResolvedTo(STATUS)] s: R|@R|Anno|((String(setter type ), propertyFromSetter#)) kotlin/String|): { LAZY_BLOCK } + + } + @R|kotlin/annotation/Target|[CompilerRequiredAnnotations](Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.FUNCTION|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.TYPE|) public? final? [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] annotation class Anno : R|kotlin/Annotation| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=/Anno.s] s: String): R|Anno| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val s: String = R|/s| + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] get(): String + + } + public? final? [ResolvedTo(RAW_FIR)] val getterProperty: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val setterProperty: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val propertyFromBody: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val propertyFromSetter: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + +CONTRACTS: +TARGET: @R|Anno|[Types](LAZY_EXPRESSION) public [] set([ResolvedTo(STATUS)] s: R|@R|Anno|((String(setter type ), propertyFromSetter#)) kotlin/String|): { LAZY_BLOCK } + +FILE: [ResolvedTo(IMPORTS)] Derived.kt + public final [ResolvedTo(STATUS)] class Derived : R|Base| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Derived] constructor(): R|Derived| { + LAZY_super + } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun getSomething(): R|kotlin/String| { LAZY_BLOCK } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun setSomething([ResolvedTo(STATUS)] s: R|@R|Anno|((String(setter type ), propertyFromSetter#)) kotlin/String|): { LAZY_BLOCK } + + } + @R|kotlin/annotation/Target|[CompilerRequiredAnnotations](Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.FUNCTION|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.TYPE|) public? final? [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] annotation class Anno : R|kotlin/Annotation| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=/Anno.s] s: String): R|Anno| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val s: String = R|/s| + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] get(): String + + } + public? final? [ResolvedTo(RAW_FIR)] val getterProperty: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val setterProperty: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val propertyFromBody: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val propertyFromSetter: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + +IMPLICIT_TYPES_BODY_RESOLVE: +TARGET: @R|Anno|[Types](LAZY_EXPRESSION) public [] set([ResolvedTo(STATUS)] s: R|@R|Anno|((String(setter type ), propertyFromSetter#)) kotlin/String|): { LAZY_BLOCK } + +FILE: [ResolvedTo(IMPORTS)] Derived.kt + public final [ResolvedTo(STATUS)] class Derived : R|Base| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Derived] constructor(): R|Derived| { + LAZY_super + } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun getSomething(): R|kotlin/String| { LAZY_BLOCK } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun setSomething([ResolvedTo(STATUS)] s: R|@R|Anno|((String(setter type ), propertyFromSetter#)) kotlin/String|): { LAZY_BLOCK } + + } + @R|kotlin/annotation/Target|[CompilerRequiredAnnotations](Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.FUNCTION|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.TYPE|) public? final? [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] annotation class Anno : R|kotlin/Annotation| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=/Anno.s] s: String): R|Anno| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val s: String = R|/s| + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] get(): String + + } + public? final? [ResolvedTo(RAW_FIR)] val getterProperty: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val setterProperty: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val propertyFromBody: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val propertyFromSetter: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + +ANNOTATIONS_ARGUMENTS_MAPPING: +TARGET: @R|Anno|[Types](LAZY_EXPRESSION) public [] set([ResolvedTo(STATUS)] s: R|@R|Anno|((String(setter type ), propertyFromSetter#)) kotlin/String|): { LAZY_BLOCK } + +FILE: [ResolvedTo(IMPORTS)] Derived.kt + public final [ResolvedTo(STATUS)] class Derived : R|Base| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Derived] constructor(): R|Derived| { + LAZY_super + } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun getSomething(): R|kotlin/String| { LAZY_BLOCK } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun setSomething([ResolvedTo(STATUS)] s: R|@R|Anno|((String(setter type ), propertyFromSetter#)) kotlin/String|): { LAZY_BLOCK } + + } + @R|kotlin/annotation/Target|[CompilerRequiredAnnotations](Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.FUNCTION|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.TYPE|) public? final? [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] annotation class Anno : R|kotlin/Annotation| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=/Anno.s] s: String): R|Anno| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val s: String = R|/s| + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] get(): String + + } + public? final? [ResolvedTo(RAW_FIR)] val getterProperty: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val setterProperty: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val propertyFromBody: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val propertyFromSetter: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + +BODY_RESOLVE: +TARGET: @R|Anno|[Types](LAZY_EXPRESSION) public [] set([ResolvedTo(STATUS)] s: R|@R|Anno|((String(setter type ), propertyFromSetter#)) kotlin/String|): { LAZY_BLOCK } + +FILE: [ResolvedTo(IMPORTS)] Derived.kt + public final [ResolvedTo(STATUS)] class Derived : R|Base| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Derived] constructor(): R|Derived| { + LAZY_super + } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun getSomething(): R|kotlin/String| { LAZY_BLOCK } + + @R|Anno|[Types](LAZY_EXPRESSION) public open override [ResolvedTo(STATUS)] fun setSomething([ResolvedTo(STATUS)] s: R|@R|Anno|((String(setter type ), propertyFromSetter#)) kotlin/String|): { LAZY_BLOCK } + + } + @R|kotlin/annotation/Target|[CompilerRequiredAnnotations](Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.FUNCTION|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.TYPE|) public? final? [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] annotation class Anno : R|kotlin/Annotation| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=/Anno.s] s: String): R|Anno| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val s: String = R|/s| + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] get(): String + + } + public? final? [ResolvedTo(RAW_FIR)] val getterProperty: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val setterProperty: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val propertyFromBody: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public? final? [ResolvedTo(RAW_FIR)] val propertyFromSetter: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + +FILE RAW TO BODY: +FILE: [ResolvedTo(BODY_RESOLVE)] Derived.kt + public final [ResolvedTo(BODY_RESOLVE)] class Derived : R|Base| { + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=Derived] constructor(): R|Derived| { + super() + } + + @R|Anno|[Types](s = (String(getSomething: ), R|/getterProperty|)) public open override [ResolvedTo(BODY_RESOLVE)] fun getSomething(): R|kotlin/String| { + (String(body: ), R|/propertyFromBody|) + } + + @R|Anno|[Types](s = (String(setSomething: ), R|/setterProperty|)) public open override [ResolvedTo(BODY_RESOLVE)] fun setSomething([ResolvedTo(BODY_RESOLVE)] s: R|@R|Anno|(s = (String(setter type ), R|/propertyFromSetter|)) kotlin/String|): R|kotlin/Unit| { + ^setSomething R|kotlin/io/println|(R|/s|) + } + + } + @R|kotlin/annotation/Target|[Types](allowedTargets = vararg(Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.FUNCTION|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.TYPE|)) public final [ResolvedTo(BODY_RESOLVE)] annotation class Anno : R|kotlin/Annotation| { + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=Anno] constructor([ResolvedTo(BODY_RESOLVE)] [CorrespondingProperty=/Anno.s] s: R|kotlin/String|): R|Anno| { + super() + } + + public final [ResolvedTo(BODY_RESOLVE)] [IsFromPrimaryConstructor=true] val s: R|kotlin/String| = R|/s| + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=Anno] get(): R|kotlin/String| + + } + public final [ResolvedTo(BODY_RESOLVE)] val getterProperty: R|kotlin/Int| = Int(2).R|kotlin/let|( = [ResolvedTo(BODY_RESOLVE)] [MatchingParameterFunctionTypeKey=kotlin/Function1] let@fun ([ResolvedTo(BODY_RESOLVE)] it: R|kotlin/Int|): R|kotlin/Int| { + ^ R|/it|.R|kotlin/Int.plus|(Int(1)) + } + ) + public [ResolvedTo(BODY_RESOLVE)] get(): R|kotlin/Int| + public final [ResolvedTo(BODY_RESOLVE)] val setterProperty: R|kotlin/Int| = Int(2).R|kotlin/let|( = [ResolvedTo(BODY_RESOLVE)] [MatchingParameterFunctionTypeKey=kotlin/Function1] let@fun ([ResolvedTo(BODY_RESOLVE)] it: R|kotlin/Int|): R|kotlin/Int| { + ^ R|/it|.R|kotlin/Int.plus|(Int(1)) + } + ) + public [ResolvedTo(BODY_RESOLVE)] get(): R|kotlin/Int| + public final [ResolvedTo(BODY_RESOLVE)] val propertyFromBody: R|kotlin/String| = String(str).R|kotlin/String.plus|(Int(1).R|kotlin/Int.toString|()) + public [ResolvedTo(BODY_RESOLVE)] get(): R|kotlin/String| + public final [ResolvedTo(BODY_RESOLVE)] val propertyFromSetter: R|kotlin/String| = Int(1).R|kotlin/Int.toString|().R|kotlin/String.plus|(String(2)) + public [ResolvedTo(BODY_RESOLVE)] get(): R|kotlin/String| diff --git a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/AbstractFirLazyDeclarationResolveTestCase.kt b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/AbstractFirLazyDeclarationResolveTestCase.kt index 68b2ddd200c..1535aed384c 100644 --- a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/AbstractFirLazyDeclarationResolveTestCase.kt +++ b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/AbstractFirLazyDeclarationResolveTestCase.kt @@ -9,6 +9,7 @@ import org.jetbrains.kotlin.analysis.low.level.api.fir.api.LLFirResolveSession import org.jetbrains.kotlin.analysis.low.level.api.fir.lazy.resolve.LLFirResolveMultiDesignationCollector import org.jetbrains.kotlin.analysis.low.level.api.fir.test.base.AbstractLowLevelApiSingleFileTest import org.jetbrains.kotlin.analysis.low.level.api.fir.util.FirElementFinder.findElementIn +import org.jetbrains.kotlin.analysis.utils.errors.requireIsInstance import org.jetbrains.kotlin.fir.FirElementWithResolveState import org.jetbrains.kotlin.fir.declarations.FirDeclaration import org.jetbrains.kotlin.fir.declarations.FirFile @@ -18,9 +19,13 @@ import org.jetbrains.kotlin.fir.renderer.FirErrorExpressionExtendedRenderer import org.jetbrains.kotlin.fir.renderer.FirFileAnnotationsContainerRenderer import org.jetbrains.kotlin.fir.renderer.FirRenderer import org.jetbrains.kotlin.fir.renderer.FirResolvePhaseRenderer +import org.jetbrains.kotlin.fir.resolve.calls.FirSyntheticPropertiesScope +import org.jetbrains.kotlin.fir.resolve.defaultType +import org.jetbrains.kotlin.fir.scopes.FirContainingNamesAwareScope import org.jetbrains.kotlin.fir.scopes.unsubstitutedScope import org.jetbrains.kotlin.fir.symbols.FirBasedSymbol import org.jetbrains.kotlin.fir.symbols.impl.FirClassSymbol +import org.jetbrains.kotlin.fir.symbols.impl.FirPropertySymbol import org.jetbrains.kotlin.fir.symbols.impl.FirScriptSymbol import org.jetbrains.kotlin.fir.symbols.lazyResolveToPhaseRecursively import org.jetbrains.kotlin.psi.KtFile @@ -124,6 +129,14 @@ abstract class AbstractFirLazyDeclarationResolveTestCase : AbstractLowLevelApiSi } 1 -> filteredSymbols.single() else -> error("Result ambiguity:\n${filteredSymbols.joinToString("\n")}") + }.let { resultSymbol -> + val isGetter = directives.singleOrZeroValue(Directives.IS_GETTER) + if (isGetter == null) { + resultSymbol + } else { + requireIsInstance(resultSymbol) + if (isGetter) resultSymbol.getterSymbol!! else resultSymbol.setterSymbol!! + } } } @@ -132,27 +145,39 @@ abstract class AbstractFirLazyDeclarationResolveTestCase : AbstractLowLevelApiSi session: LLFirResolveSession, filter: (FirBasedSymbol<*>) -> Boolean, ): FirBasedSymbol<*>? { - val scope = classSymbol.unsubstitutedScope( + val baseScope = classSymbol.unsubstitutedScope( session.useSiteFirSession, session.getScopeSessionFor(session.useSiteFirSession), false, FirResolvePhase.STATUS, ) - val names = scope.getCallableNames() + val scopes: List = listOfNotNull( + baseScope, + FirSyntheticPropertiesScope.createIfSyntheticNamesProviderIsDefined( + session.useSiteFirSession, + classSymbol.defaultType(), + baseScope, + ) + ) + val declarations = mutableListOf>() - for (name in names) { - scope.processFunctionsByName(name) { - if (filter(it)) { - declarations += it + for (typeScope in scopes) { + val names = typeScope.getCallableNames() + for (name in names) { + typeScope.processFunctionsByName(name) { + if (filter(it)) { + declarations += it + } + } + + typeScope.processPropertiesByName(name) { + if (filter(it)) { + declarations += it + } } } - scope.processPropertiesByName(name) { - if (filter(it)) { - declarations += it - } - } } return declarations.singleOrNull() ?: error("Can't choose from:\n${declarations.joinToString("\n")}") @@ -178,6 +203,8 @@ abstract class AbstractFirLazyDeclarationResolveTestCase : AbstractLowLevelApiSi symbol.name() == value } } + + val IS_GETTER by valueDirective("Choose getter/setter in the case of property", parser = String::toBooleanStrict) } } diff --git a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/FirOutOfContentRootLazyDeclarationResolveTestGenerated.java b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/FirOutOfContentRootLazyDeclarationResolveTestGenerated.java index f9e269f5e77..d1b378cc1f3 100644 --- a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/FirOutOfContentRootLazyDeclarationResolveTestGenerated.java +++ b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/FirOutOfContentRootLazyDeclarationResolveTestGenerated.java @@ -878,6 +878,76 @@ public class FirOutOfContentRootLazyDeclarationResolveTestGenerated extends Abst } } + @Nested + @TestMetadata("analysis/low-level-api-fir/testData/lazyResolve/syntheticProperties") + @TestDataPath("$PROJECT_ROOT") + public class SyntheticProperties { + @Test + public void testAllFilesPresentInSyntheticProperties() throws Exception { + KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/low-level-api-fir/testData/lazyResolve/syntheticProperties"), Pattern.compile("^(.+)\\.(kt)$"), null, true); + } + + @Test + @TestMetadata("explicitReturnType.kt") + public void testExplicitReturnType() throws Exception { + runTest("analysis/low-level-api-fir/testData/lazyResolve/syntheticProperties/explicitReturnType.kt"); + } + + @Test + @TestMetadata("explicitReturnTypeAndAnnotations.kt") + public void testExplicitReturnTypeAndAnnotations() throws Exception { + runTest("analysis/low-level-api-fir/testData/lazyResolve/syntheticProperties/explicitReturnTypeAndAnnotations.kt"); + } + + @Test + @TestMetadata("implicitReturnType.kt") + public void testImplicitReturnType() throws Exception { + runTest("analysis/low-level-api-fir/testData/lazyResolve/syntheticProperties/implicitReturnType.kt"); + } + + @Test + @TestMetadata("implicitReturnTypeAndAnnotations.kt") + public void testImplicitReturnTypeAndAnnotations() throws Exception { + runTest("analysis/low-level-api-fir/testData/lazyResolve/syntheticProperties/implicitReturnTypeAndAnnotations.kt"); + } + + @Test + @TestMetadata("implicitReturnTypeAndAnnotationsAsGetter.kt") + public void testImplicitReturnTypeAndAnnotationsAsGetter() throws Exception { + runTest("analysis/low-level-api-fir/testData/lazyResolve/syntheticProperties/implicitReturnTypeAndAnnotationsAsGetter.kt"); + } + + @Test + @TestMetadata("secondGenerationOverride.kt") + public void testSecondGenerationOverride() throws Exception { + runTest("analysis/low-level-api-fir/testData/lazyResolve/syntheticProperties/secondGenerationOverride.kt"); + } + + @Test + @TestMetadata("setterAndExplicitReturnType.kt") + public void testSetterAndExplicitReturnType() throws Exception { + runTest("analysis/low-level-api-fir/testData/lazyResolve/syntheticProperties/setterAndExplicitReturnType.kt"); + } + + @Test + @TestMetadata("setterAndExplicitReturnTypeAndAnnotations.kt") + public void testSetterAndExplicitReturnTypeAndAnnotations() throws Exception { + runTest("analysis/low-level-api-fir/testData/lazyResolve/syntheticProperties/setterAndExplicitReturnTypeAndAnnotations.kt"); + } + + @Test + @TestMetadata("setterAndExplicitReturnTypeAndAnnotationsAsGetter.kt") + public void testSetterAndExplicitReturnTypeAndAnnotationsAsGetter() throws Exception { + runTest("analysis/low-level-api-fir/testData/lazyResolve/syntheticProperties/setterAndExplicitReturnTypeAndAnnotationsAsGetter.kt"); + } + + @Test + @TestMetadata("setterAndExplicitReturnTypeAndAnnotationsAsSetter.kt") + public void testSetterAndExplicitReturnTypeAndAnnotationsAsSetter() throws Exception { + runTest("analysis/low-level-api-fir/testData/lazyResolve/syntheticProperties/setterAndExplicitReturnTypeAndAnnotationsAsSetter.kt"); + } + } + @Nested @TestMetadata("analysis/low-level-api-fir/testData/lazyResolve/typeAliases") @TestDataPath("$PROJECT_ROOT") diff --git a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/FirScriptLazyDeclarationResolveTestGenerated.java b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/FirScriptLazyDeclarationResolveTestGenerated.java index bef75577718..89803c396eb 100644 --- a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/FirScriptLazyDeclarationResolveTestGenerated.java +++ b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/FirScriptLazyDeclarationResolveTestGenerated.java @@ -866,6 +866,16 @@ public class FirScriptLazyDeclarationResolveTestGenerated extends AbstractFirScr } } + @Nested + @TestMetadata("analysis/low-level-api-fir/testData/lazyResolve/syntheticProperties") + @TestDataPath("$PROJECT_ROOT") + public class SyntheticProperties { + @Test + public void testAllFilesPresentInSyntheticProperties() throws Exception { + KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/low-level-api-fir/testData/lazyResolve/syntheticProperties"), Pattern.compile("^(.+)\\.(kts)$"), null, true); + } + } + @Nested @TestMetadata("analysis/low-level-api-fir/testData/lazyResolve/typeAliases") @TestDataPath("$PROJECT_ROOT") diff --git a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/FirSourceLazyDeclarationResolveTestGenerated.java b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/FirSourceLazyDeclarationResolveTestGenerated.java index ebffcded029..e274329e7d8 100644 --- a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/FirSourceLazyDeclarationResolveTestGenerated.java +++ b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/FirSourceLazyDeclarationResolveTestGenerated.java @@ -878,6 +878,76 @@ public class FirSourceLazyDeclarationResolveTestGenerated extends AbstractFirSou } } + @Nested + @TestMetadata("analysis/low-level-api-fir/testData/lazyResolve/syntheticProperties") + @TestDataPath("$PROJECT_ROOT") + public class SyntheticProperties { + @Test + public void testAllFilesPresentInSyntheticProperties() throws Exception { + KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/low-level-api-fir/testData/lazyResolve/syntheticProperties"), Pattern.compile("^(.+)\\.(kt)$"), null, true); + } + + @Test + @TestMetadata("explicitReturnType.kt") + public void testExplicitReturnType() throws Exception { + runTest("analysis/low-level-api-fir/testData/lazyResolve/syntheticProperties/explicitReturnType.kt"); + } + + @Test + @TestMetadata("explicitReturnTypeAndAnnotations.kt") + public void testExplicitReturnTypeAndAnnotations() throws Exception { + runTest("analysis/low-level-api-fir/testData/lazyResolve/syntheticProperties/explicitReturnTypeAndAnnotations.kt"); + } + + @Test + @TestMetadata("implicitReturnType.kt") + public void testImplicitReturnType() throws Exception { + runTest("analysis/low-level-api-fir/testData/lazyResolve/syntheticProperties/implicitReturnType.kt"); + } + + @Test + @TestMetadata("implicitReturnTypeAndAnnotations.kt") + public void testImplicitReturnTypeAndAnnotations() throws Exception { + runTest("analysis/low-level-api-fir/testData/lazyResolve/syntheticProperties/implicitReturnTypeAndAnnotations.kt"); + } + + @Test + @TestMetadata("implicitReturnTypeAndAnnotationsAsGetter.kt") + public void testImplicitReturnTypeAndAnnotationsAsGetter() throws Exception { + runTest("analysis/low-level-api-fir/testData/lazyResolve/syntheticProperties/implicitReturnTypeAndAnnotationsAsGetter.kt"); + } + + @Test + @TestMetadata("secondGenerationOverride.kt") + public void testSecondGenerationOverride() throws Exception { + runTest("analysis/low-level-api-fir/testData/lazyResolve/syntheticProperties/secondGenerationOverride.kt"); + } + + @Test + @TestMetadata("setterAndExplicitReturnType.kt") + public void testSetterAndExplicitReturnType() throws Exception { + runTest("analysis/low-level-api-fir/testData/lazyResolve/syntheticProperties/setterAndExplicitReturnType.kt"); + } + + @Test + @TestMetadata("setterAndExplicitReturnTypeAndAnnotations.kt") + public void testSetterAndExplicitReturnTypeAndAnnotations() throws Exception { + runTest("analysis/low-level-api-fir/testData/lazyResolve/syntheticProperties/setterAndExplicitReturnTypeAndAnnotations.kt"); + } + + @Test + @TestMetadata("setterAndExplicitReturnTypeAndAnnotationsAsGetter.kt") + public void testSetterAndExplicitReturnTypeAndAnnotationsAsGetter() throws Exception { + runTest("analysis/low-level-api-fir/testData/lazyResolve/syntheticProperties/setterAndExplicitReturnTypeAndAnnotationsAsGetter.kt"); + } + + @Test + @TestMetadata("setterAndExplicitReturnTypeAndAnnotationsAsSetter.kt") + public void testSetterAndExplicitReturnTypeAndAnnotationsAsSetter() throws Exception { + runTest("analysis/low-level-api-fir/testData/lazyResolve/syntheticProperties/setterAndExplicitReturnTypeAndAnnotationsAsSetter.kt"); + } + } + @Nested @TestMetadata("analysis/low-level-api-fir/testData/lazyResolve/typeAliases") @TestDataPath("$PROJECT_ROOT")