diff --git a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/FirFakeFileImpl.kt b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/FirFakeFileImpl.kt index 928f27f07bb..a64f8b98de3 100644 --- a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/FirFakeFileImpl.kt +++ b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/FirFakeFileImpl.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2022 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 JetBrains s.r.o. and Kotlin Programming Language contributors. * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. */ @@ -18,6 +18,7 @@ import org.jetbrains.kotlin.psi.KtClassOrObject class FirFakeFileImpl(private val classOrObject: KtClassOrObject, ktClass: KtLightClass) : FakeFileForLightClass( classOrObject.containingKtFile, { if (classOrObject.isTopLevel()) ktClass else getOrCreateFirLightClass(getOutermostClassOrObject(classOrObject))!! }, + { null } ) { override fun findReferenceAt(offset: Int) = ktFile.findReferenceAt(offset) diff --git a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/classes/FirLightClassForFacade.kt b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/classes/FirLightClassForFacade.kt index ccbc011f7d7..d0465789b5c 100644 --- a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/classes/FirLightClassForFacade.kt +++ b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/classes/FirLightClassForFacade.kt @@ -172,6 +172,7 @@ class FirLightClassForFacade( private val packageClsFile = FakeFileForLightClass( firstFileInFacade, lightClass = { this }, + stub = { null }, packageFqName = packageFqName ) diff --git a/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/compiler/CliLightClassGenerationSupport.kt b/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/compiler/CliLightClassGenerationSupport.kt index 4929b664251..d3a66ec3887 100644 --- a/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/compiler/CliLightClassGenerationSupport.kt +++ b/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/compiler/CliLightClassGenerationSupport.kt @@ -97,21 +97,21 @@ class CliLightClassGenerationSupport( //force resolve companion for light class generation traceHolder.bindingContext.get(BindingContext.CLASS, classOrObject)?.companionObjectDescriptor - val (_, bindingContext, diagnostics) = builder(getContext()) + val (stub, bindingContext, diagnostics) = builder(getContext()) bindingContext.get(BindingContext.CLASS, classOrObject) ?: return InvalidLightClassDataHolder - return LightClassDataHolderImpl(diagnostics) + return LightClassDataHolderImpl(stub, diagnostics) } override fun createDataHolderForFacade(files: Collection, builder: LightClassBuilder): LightClassDataHolder.ForFacade { - val (_, _, diagnostics) = builder(getContext()) - return LightClassDataHolderImpl(diagnostics) + val (stub, _, diagnostics) = builder(getContext()) + return LightClassDataHolderImpl(stub, diagnostics) } override fun createDataHolderForScript(script: KtScript, builder: LightClassBuilder): LightClassDataHolder.ForScript { - val (_, _, diagnostics) = builder(getContext()) - return LightClassDataHolderImpl(diagnostics) + val (stub, _, diagnostics) = builder(getContext()) + return LightClassDataHolderImpl(stub, diagnostics) } private fun getContext(): LightClassConstructionContext = diff --git a/compiler/light-classes/src/org/jetbrains/kotlin/asJava/builder/LightClassDataHolder.kt b/compiler/light-classes/src/org/jetbrains/kotlin/asJava/builder/LightClassDataHolder.kt index 9745827de59..7c27eec6a9d 100644 --- a/compiler/light-classes/src/org/jetbrains/kotlin/asJava/builder/LightClassDataHolder.kt +++ b/compiler/light-classes/src/org/jetbrains/kotlin/asJava/builder/LightClassDataHolder.kt @@ -5,9 +5,11 @@ package org.jetbrains.kotlin.asJava.builder +import com.intellij.psi.impl.java.stubs.PsiJavaFileStub import org.jetbrains.kotlin.resolve.diagnostics.Diagnostics interface LightClassDataHolder { + val javaFileStub: PsiJavaFileStub val extraDiagnostics: Diagnostics interface ForClass : LightClassDataHolder @@ -16,11 +18,16 @@ interface LightClassDataHolder { } object InvalidLightClassDataHolder : LightClassDataHolder.ForClass { - override val extraDiagnostics: Diagnostics get() = shouldNotBeCalled() + override val javaFileStub: PsiJavaFileStub + get() = shouldNotBeCalled() + + override val extraDiagnostics: Diagnostics + get() = shouldNotBeCalled() private fun shouldNotBeCalled(): Nothing = throw UnsupportedOperationException("Should not be called") } class LightClassDataHolderImpl( + override val javaFileStub: PsiJavaFileStub, override val extraDiagnostics: Diagnostics ) : LightClassDataHolder.ForClass, LightClassDataHolder.ForFacade, LightClassDataHolder.ForScript diff --git a/compiler/light-classes/src/org/jetbrains/kotlin/asJava/classes/KtLightClassForFacadeImpl.kt b/compiler/light-classes/src/org/jetbrains/kotlin/asJava/classes/KtLightClassForFacadeImpl.kt index 178d1d80ba7..53ab2a4a264 100644 --- a/compiler/light-classes/src/org/jetbrains/kotlin/asJava/classes/KtLightClassForFacadeImpl.kt +++ b/compiler/light-classes/src/org/jetbrains/kotlin/asJava/classes/KtLightClassForFacadeImpl.kt @@ -47,6 +47,7 @@ abstract class KtLightClassForFacadeImpl constructor( FakeFileForLightClass( firstFileInFacade, lightClass = { this }, + stub = { null }, packageFqName = facadeClassFqName.parent() ) } diff --git a/compiler/light-classes/src/org/jetbrains/kotlin/asJava/classes/KtLightClassForScript.kt b/compiler/light-classes/src/org/jetbrains/kotlin/asJava/classes/KtLightClassForScript.kt index abacc5244c2..9707bb49403 100644 --- a/compiler/light-classes/src/org/jetbrains/kotlin/asJava/classes/KtLightClassForScript.kt +++ b/compiler/light-classes/src/org/jetbrains/kotlin/asJava/classes/KtLightClassForScript.kt @@ -43,6 +43,7 @@ abstract class KtLightClassForScript(val script: KtScript) : KtLazyLightClass(sc FakeFileForLightClass( script.containingKtFile, lightClass = { this }, + stub = { null }, packageFqName = fqName.parent(), ) } diff --git a/compiler/light-classes/src/org/jetbrains/kotlin/asJava/classes/KtLightClassForSourceDeclaration.kt b/compiler/light-classes/src/org/jetbrains/kotlin/asJava/classes/KtLightClassForSourceDeclaration.kt index aabff8542b4..33138cc671a 100644 --- a/compiler/light-classes/src/org/jetbrains/kotlin/asJava/classes/KtLightClassForSourceDeclaration.kt +++ b/compiler/light-classes/src/org/jetbrains/kotlin/asJava/classes/KtLightClassForSourceDeclaration.kt @@ -12,6 +12,7 @@ import com.intellij.openapi.util.Key import com.intellij.openapi.util.TextRange import com.intellij.psi.* import com.intellij.psi.impl.InheritanceImplUtil +import com.intellij.psi.impl.java.stubs.PsiJavaFileStub import com.intellij.psi.impl.source.PsiImmediateClassType import com.intellij.psi.impl.source.tree.TreeUtil import com.intellij.psi.scope.PsiScopeProcessor @@ -43,6 +44,7 @@ import org.jetbrains.kotlin.load.java.structure.LightClassOriginKind import org.jetbrains.kotlin.name.FqNameUnsafe import org.jetbrains.kotlin.psi.* import org.jetbrains.kotlin.psi.debugText.getDebugText +import org.jetbrains.kotlin.psi.psiUtil.getElementTextWithContext import org.jetbrains.kotlin.psi.psiUtil.hasExpectModifier import org.jetbrains.kotlin.psi.psiUtil.parentsWithSelf import org.jetbrains.kotlin.psi.stubs.KotlinClassOrObjectStub @@ -97,13 +99,24 @@ abstract class KtLightClassForSourceDeclaration( abstract override fun getParent(): PsiElement? abstract override fun getQualifiedName(): String? + private fun getJavaFileStub(): PsiJavaFileStub = getLightClassDataHolder().javaFileStub + fun getDescriptor() = LightClassGenerationSupport.getInstance(project).resolveToDescriptor(classOrObject) as? ClassDescriptor + protected fun getLightClassDataHolder(): LightClassDataHolder.ForClass { + val lightClassData = getLightClassDataHolder(classOrObject) + if (lightClassData is InvalidLightClassDataHolder) { + LOG.error("Invalid light class data for existing light class:\n$lightClassData\n${classOrObject.getElementTextWithContext()}") + } + return lightClassData + } + private val _containingFile: PsiFile by lazyPub { object : FakeFileForLightClass( classOrObject.containingKtFile, { if (classOrObject.isTopLevel()) this else create(getOutermostClassOrObject(classOrObject))!! }, + { getJavaFileStub() } ) { override fun findReferenceAt(offset: Int) = ktFile.findReferenceAt(offset) diff --git a/compiler/light-classes/src/org/jetbrains/kotlin/asJava/classes/ultraLightAnnotations.kt b/compiler/light-classes/src/org/jetbrains/kotlin/asJava/classes/ultraLightAnnotations.kt index cc556151d58..dc4b960c784 100644 --- a/compiler/light-classes/src/org/jetbrains/kotlin/asJava/classes/ultraLightAnnotations.kt +++ b/compiler/light-classes/src/org/jetbrains/kotlin/asJava/classes/ultraLightAnnotations.kt @@ -7,7 +7,6 @@ package org.jetbrains.kotlin.asJava.classes import com.intellij.psi.* import com.intellij.psi.impl.PsiImplUtil -import com.intellij.psi.impl.compiled.ClsJavaCodeReferenceElementImpl import com.intellij.psi.impl.light.LightIdentifier import org.jetbrains.kotlin.asJava.elements.KtLightAbstractAnnotation import org.jetbrains.kotlin.asJava.elements.KtLightElementBase @@ -48,11 +47,7 @@ class KtUltraLightSimpleAnnotation( parent: PsiElement, private val nameReferenceElementProvider: (() -> PsiJavaCodeReferenceElement?)? = null, ) : KtLightAbstractAnnotation(parent) { - private val _nameReferenceElement: PsiJavaCodeReferenceElement? by lazyPub { - nameReferenceElementProvider?.invoke() ?: annotationFqName?.let { ClsJavaCodeReferenceElementImpl(parent, it) } - } - - override fun getNameReferenceElement(): PsiJavaCodeReferenceElement? = _nameReferenceElement + override fun getNameReferenceElement(): PsiJavaCodeReferenceElement? = nameReferenceElementProvider?.invoke() private val parameterList = ParameterListImpl() diff --git a/compiler/light-classes/src/org/jetbrains/kotlin/asJava/classes/ultraLightField.kt b/compiler/light-classes/src/org/jetbrains/kotlin/asJava/classes/ultraLightField.kt index 780263e9a33..6269c3b0f5f 100644 --- a/compiler/light-classes/src/org/jetbrains/kotlin/asJava/classes/ultraLightField.kt +++ b/compiler/light-classes/src/org/jetbrains/kotlin/asJava/classes/ultraLightField.kt @@ -69,6 +69,9 @@ internal class KtUltraLightFieldForSourceDeclaration( private val lightIdentifier = KtLightIdentifier(this, declaration) override fun getNameIdentifier(): PsiIdentifier = lightIdentifier + override fun getText(): String? = kotlinOrigin.text + override fun getTextRange(): TextRange = kotlinOrigin.textRange + override fun getTextOffset(): Int = kotlinOrigin.textOffset override fun getStartOffsetInParent(): Int = kotlinOrigin.startOffsetInParent override fun isWritable(): Boolean = kotlinOrigin.isWritable override fun getNavigationElement(): PsiElement = kotlinOrigin.navigationElement ?: this @@ -103,10 +106,6 @@ internal open class KtUltraLightFieldImpl protected constructor( override fun getLanguage(): Language = KotlinLanguage.INSTANCE - override fun getText(): String? = kotlinOrigin.text - override fun getTextRange(): TextRange? = kotlinOrigin.textRange - override fun getTextOffset(): Int = kotlinOrigin.textOffset - private val variableDescriptor: VariableDescriptor? get() = declaration.resolve() ?.let { it as? PropertyDescriptor ?: it as? ValueParameterDescriptor } @@ -117,14 +116,11 @@ internal open class KtUltraLightFieldImpl protected constructor( declaration.delegateExpression?.let { LightClassGenerationSupport.getInstance(project).analyze(it).getType(it) } - declaration is KtObjectDeclaration -> (declaration.resolve() as? ClassDescriptor)?.defaultType - declaration is KtEnumEntry -> { (containingClass.kotlinOrigin?.resolve() as? ClassDescriptor)?.defaultType } - else -> { declaration.getKotlinType() } @@ -149,7 +145,6 @@ internal open class KtUltraLightFieldImpl protected constructor( kotlinType?.asPsiType(support, TypeMappingMode.DEFAULT, this) ?.let(TypeConversionUtil::erasure) ?: nonExistent() - else -> { val kotlinType = declaration.getKotlinType() ?: return@lazyPub PsiType.NULL val descriptor = variableDescriptor ?: return@lazyPub PsiType.NULL diff --git a/compiler/light-classes/src/org/jetbrains/kotlin/asJava/classes/ultraLightParameters.kt b/compiler/light-classes/src/org/jetbrains/kotlin/asJava/classes/ultraLightParameters.kt index 4ab2c9e2ac0..8c66173f2f5 100644 --- a/compiler/light-classes/src/org/jetbrains/kotlin/asJava/classes/ultraLightParameters.kt +++ b/compiler/light-classes/src/org/jetbrains/kotlin/asJava/classes/ultraLightParameters.kt @@ -90,9 +90,8 @@ internal abstract class KtUltraLightParameter( ultraLightMethod, ultraLightMethod.language ), KtUltraLightElementWithNullabilityAnnotation, KtLightParameter { - override fun isEquivalentTo(another: PsiElement?): Boolean { - return another is KtParameter && kotlinOrigin?.isEquivalentTo(another) == true || this == another - } + + override fun isEquivalentTo(another: PsiElement?): Boolean = kotlinOrigin == another private val lightModifierList by lazyPub { KtLightSimpleModifierList(this, emptySet()) } @@ -101,10 +100,6 @@ internal abstract class KtUltraLightParameter( override fun getNavigationElement(): PsiElement = kotlinOrigin ?: method.navigationElement override fun getUseScope(): SearchScope = kotlinOrigin?.useScope ?: LocalSearchScope(this) - override fun getText(): String? = kotlinOrigin?.text.orEmpty() - override fun getTextRange(): TextRange? = kotlinOrigin?.textRange - override fun getTextOffset(): Int = kotlinOrigin?.textOffset ?: super.getTextOffset() - override fun isValid() = parent.isValid override fun computeQualifiedNameForNullabilityAnnotation(kotlinType: KotlinType?): String? { @@ -203,6 +198,9 @@ internal class KtUltraLightParameterForSource( } } + override fun getText(): String? = kotlinOrigin.text + override fun getTextRange(): TextRange = kotlinOrigin.textRange + override fun getTextOffset(): Int = kotlinOrigin.textOffset override fun getStartOffsetInParent(): Int = kotlinOrigin.startOffsetInParent override fun isWritable(): Boolean = kotlinOrigin.isWritable override fun getNavigationElement(): PsiElement = kotlinOrigin.navigationElement diff --git a/compiler/light-classes/src/org/jetbrains/kotlin/asJava/elements/FakeFileForLightClass.kt b/compiler/light-classes/src/org/jetbrains/kotlin/asJava/elements/FakeFileForLightClass.kt index 7a89866f166..c18576973d3 100644 --- a/compiler/light-classes/src/org/jetbrains/kotlin/asJava/elements/FakeFileForLightClass.kt +++ b/compiler/light-classes/src/org/jetbrains/kotlin/asJava/elements/FakeFileForLightClass.kt @@ -19,6 +19,7 @@ import com.intellij.psi.impl.java.stubs.impl.PsiJavaFileStubImpl import com.intellij.psi.impl.source.PsiFileImpl import com.intellij.psi.impl.source.SourceTreeToPsiMap import com.intellij.psi.impl.source.tree.TreeElement +import com.intellij.psi.stubs.PsiClassHolderFileStub import com.intellij.psi.util.PsiUtil import com.intellij.reference.SoftReference import com.intellij.util.AstLoadingFilter @@ -32,7 +33,8 @@ import java.lang.ref.Reference open class FakeFileForLightClass( val ktFile: KtFile, private val lightClass: () -> KtLightClass, - private val packageFqName: FqName = ktFile.packageFqName, + private val stub: () -> PsiClassHolderFileStub<*>?, + private val packageFqName: FqName = ktFile.packageFqName ) : ClsFileImpl(ktFile.viewProvider) { override fun getVirtualFile(): VirtualFile = @@ -47,7 +49,7 @@ open class FakeFileForLightClass( return javaFileStub } - override fun getStub() = createFakeJavaFileStub() + override fun getStub() = stub() ?: createFakeJavaFileStub() override fun getClasses() = arrayOf(lightClass()) diff --git a/compiler/light-classes/src/org/jetbrains/kotlin/asJava/elements/KtToJvmAnnotationsConverter.kt b/compiler/light-classes/src/org/jetbrains/kotlin/asJava/elements/KtToJvmAnnotationsConverter.kt index f81e810fa34..e3676007b7c 100644 --- a/compiler/light-classes/src/org/jetbrains/kotlin/asJava/elements/KtToJvmAnnotationsConverter.kt +++ b/compiler/light-classes/src/org/jetbrains/kotlin/asJava/elements/KtToJvmAnnotationsConverter.kt @@ -20,7 +20,6 @@ import org.jetbrains.kotlin.psi.KtAnnotationEntry import org.jetbrains.kotlin.psi.KtClass import org.jetbrains.kotlin.psi.KtModifierListOwner import org.jetbrains.kotlin.resolve.constants.ArrayValue -import org.jetbrains.kotlin.resolve.constants.ConstantValue import org.jetbrains.kotlin.resolve.constants.EnumValue import org.jetbrains.kotlin.resolve.constants.KClassValue import org.jetbrains.kotlin.utils.addToStdlib.safeAs @@ -92,10 +91,11 @@ internal fun PsiAnnotation.tryConvertAsTarget(support: KtUltraLightSupport): KtL val targetAttributes = "value" to ArrayValue(convertedValues) { module -> module.builtIns.array.defaultType } - return asUltraLightSimpleAnnotation( + return KtUltraLightSimpleAnnotation( JAVA_LANG_ANNOTATION_TARGET, listOf(targetAttributes), support, + parent ) } @@ -111,28 +111,17 @@ internal fun createRetentionRuntimeAnnotation(support: KtUltraLightSupport, pare JAVA_LANG_ANNOTATION_RETENTION, listOf("value" to retentionMapping["kotlin.annotation.AnnotationRetention.RUNTIME"]!!), support, - parent, -) - -internal fun PsiAnnotation.asUltraLightSimpleAnnotation( - qualifier: String, - argumentsList: List>>, - ultraLightSupport: KtUltraLightSupport, -): KtLightAbstractAnnotation = KtUltraLightSimpleAnnotation( - annotationFqName = qualifier, - argumentsList = argumentsList, - ultraLightSupport = ultraLightSupport, - parent = parent, - nameReferenceElementProvider = { nameReferenceElement } + parent ) internal fun PsiAnnotation.tryConvertAsRetention(support: KtUltraLightSupport): KtLightAbstractAnnotation? { if (FqNames.retention.asString() != qualifiedName) return null val convertedValue = extractAnnotationFqName("value")?.let { retentionMapping[it] } ?: return null - return asUltraLightSimpleAnnotation( + return KtUltraLightSimpleAnnotation( JAVA_LANG_ANNOTATION_RETENTION, listOf("value" to convertedValue), support, + parent ) } @@ -182,5 +171,5 @@ private fun PsiAnnotation.tryConvertAs( from: FqName, to: String, ): KtLightAbstractAnnotation? = takeIf { from.asString() == qualifiedName }?.let { - asUltraLightSimpleAnnotation(to, emptyList(), support) + KtUltraLightSimpleAnnotation(to, emptyList(), support, parent) } diff --git a/compiler/testData/asJava/lightClasses/AnnotatedPropertyWithSites.kt b/compiler/testData/asJava/lightClasses/AnnotatedPropertyWithSites.kt index 50e7ba564d6..2e8f6eda2c6 100644 --- a/compiler/testData/asJava/lightClasses/AnnotatedPropertyWithSites.kt +++ b/compiler/testData/asJava/lightClasses/AnnotatedPropertyWithSites.kt @@ -15,3 +15,6 @@ class Test(@get:MyAnnotation @set:MyAnnotation2 @setparam:MyAnnotation3 @propert get() = Unit set(value) {} } + +// SKIP_SANITY_TEST +// SKIP_IDE_TEST \ No newline at end of file diff --git a/compiler/testData/asJava/lightClasses/AnnotationRepeatable.kt b/compiler/testData/asJava/lightClasses/AnnotationRepeatable.kt index d9a6e33ca82..82cf8ed193a 100644 --- a/compiler/testData/asJava/lightClasses/AnnotationRepeatable.kt +++ b/compiler/testData/asJava/lightClasses/AnnotationRepeatable.kt @@ -4,4 +4,6 @@ package simple @Repeatable -annotation class One(val value: String) \ No newline at end of file +annotation class One(val value: String) +// SKIP_SANITY_TEST +// SKIP_IDE_TEST \ No newline at end of file diff --git a/compiler/testData/asJava/lightClasses/Constructors.kt b/compiler/testData/asJava/lightClasses/Constructors.kt index b61627f6952..c849baf0bc5 100644 --- a/compiler/testData/asJava/lightClasses/Constructors.kt +++ b/compiler/testData/asJava/lightClasses/Constructors.kt @@ -5,4 +5,5 @@ class Constructors(val valInPrimary: Int) { private constructor(): this(2) } +// LAZINESS:NoLaziness // FIR_COMPARISON \ No newline at end of file diff --git a/compiler/testData/asJava/lightClasses/DataClassWithCustomImplementedMembers.kt b/compiler/testData/asJava/lightClasses/DataClassWithCustomImplementedMembers.kt index d63e93778a6..363cd9f4631 100644 --- a/compiler/testData/asJava/lightClasses/DataClassWithCustomImplementedMembers.kt +++ b/compiler/testData/asJava/lightClasses/DataClassWithCustomImplementedMembers.kt @@ -16,3 +16,5 @@ class Wrapper { } class G + +// LAZINESS:NoLaziness diff --git a/compiler/testData/asJava/lightClasses/DelegatedNested.kt b/compiler/testData/asJava/lightClasses/DelegatedNested.kt index 98f5dd38c35..495bc455188 100644 --- a/compiler/testData/asJava/lightClasses/DelegatedNested.kt +++ b/compiler/testData/asJava/lightClasses/DelegatedNested.kt @@ -11,3 +11,5 @@ interface I { fun f() } + +// LAZINESS:NoLaziness diff --git a/compiler/testData/asJava/lightClasses/Delegation.kt b/compiler/testData/asJava/lightClasses/Delegation.kt index f5757135fb0..71ff47b2af0 100644 --- a/compiler/testData/asJava/lightClasses/Delegation.kt +++ b/compiler/testData/asJava/lightClasses/Delegation.kt @@ -9,3 +9,5 @@ interface I { fun f() } + +// LAZINESS:NoLaziness diff --git a/compiler/testData/asJava/lightClasses/ExtendingInterfaceWithDefaultImpls.kt b/compiler/testData/asJava/lightClasses/ExtendingInterfaceWithDefaultImpls.kt index 5b7a0f950b0..c8849b23a2b 100644 --- a/compiler/testData/asJava/lightClasses/ExtendingInterfaceWithDefaultImpls.kt +++ b/compiler/testData/asJava/lightClasses/ExtendingInterfaceWithDefaultImpls.kt @@ -12,3 +12,7 @@ interface B: A { interface C : B { fun c() = "c" } + +// TODO: could be lazy +// see KT-22819 +// LAZINESS:NoLaziness \ No newline at end of file diff --git a/compiler/testData/asJava/lightClasses/HiddenDeprecated.kt b/compiler/testData/asJava/lightClasses/HiddenDeprecated.kt index 00cc6eeb4d1..7931a1853ce 100644 --- a/compiler/testData/asJava/lightClasses/HiddenDeprecated.kt +++ b/compiler/testData/asJava/lightClasses/HiddenDeprecated.kt @@ -5,4 +5,5 @@ package a fun f() { } +// LAZINESS:NoLaziness // FIR_COMPARISON \ No newline at end of file diff --git a/compiler/testData/asJava/lightClasses/HiddenDeprecatedInClass.kt b/compiler/testData/asJava/lightClasses/HiddenDeprecatedInClass.kt index d3785346c31..aefba25e839 100644 --- a/compiler/testData/asJava/lightClasses/HiddenDeprecatedInClass.kt +++ b/compiler/testData/asJava/lightClasses/HiddenDeprecatedInClass.kt @@ -8,4 +8,5 @@ class A { } } +// LAZINESS:NoLaziness // FIR_COMPARISON \ No newline at end of file diff --git a/compiler/testData/asJava/lightClasses/OnlySecondaryConstructors.kt b/compiler/testData/asJava/lightClasses/OnlySecondaryConstructors.kt index b642f9b9dd2..4e431afa066 100644 --- a/compiler/testData/asJava/lightClasses/OnlySecondaryConstructors.kt +++ b/compiler/testData/asJava/lightClasses/OnlySecondaryConstructors.kt @@ -5,4 +5,5 @@ class OnlySecondaryConstructors { constructor(p: Int): this() } +// LAZINESS:NoLaziness // FIR_COMPARISON \ No newline at end of file diff --git a/compiler/testData/asJava/lightClasses/SpecialAnnotationsOnAnnotationClass.kt b/compiler/testData/asJava/lightClasses/SpecialAnnotationsOnAnnotationClass.kt index 2f157bade22..5249e7536ce 100644 --- a/compiler/testData/asJava/lightClasses/SpecialAnnotationsOnAnnotationClass.kt +++ b/compiler/testData/asJava/lightClasses/SpecialAnnotationsOnAnnotationClass.kt @@ -1,5 +1,7 @@ // Anno // FULL_JDK +// SKIP_SANITY_TEST +// SKIP_IDE_TEST @Retention(AnnotationRetention.SOURCE) @Target(AnnotationTarget.TYPE_PARAMETER, AnnotationTarget.TYPE) diff --git a/compiler/testData/asJava/lightClasses/compilationErrors/ActualTypeAliasCustomJvmPackageName.kt b/compiler/testData/asJava/lightClasses/compilationErrors/ActualTypeAliasCustomJvmPackageName.kt index ea54b410fcd..3fe6a73ebda 100644 --- a/compiler/testData/asJava/lightClasses/compilationErrors/ActualTypeAliasCustomJvmPackageName.kt +++ b/compiler/testData/asJava/lightClasses/compilationErrors/ActualTypeAliasCustomJvmPackageName.kt @@ -4,3 +4,5 @@ package p actual typealias B = List + +// SKIP_IDE_TEST \ No newline at end of file diff --git a/compiler/testData/asJava/lightClasses/compilationErrors/JvmPackageName.kt b/compiler/testData/asJava/lightClasses/compilationErrors/JvmPackageName.kt index 526e9b2f04b..05e874ebc2a 100644 --- a/compiler/testData/asJava/lightClasses/compilationErrors/JvmPackageName.kt +++ b/compiler/testData/asJava/lightClasses/compilationErrors/JvmPackageName.kt @@ -6,3 +6,5 @@ package p fun f() { } + +// SKIP_IDE_TEST \ No newline at end of file diff --git a/compiler/testData/asJava/lightClasses/compilationErrors/RepetableAnnotations.kt b/compiler/testData/asJava/lightClasses/compilationErrors/RepetableAnnotations.kt index 913f6d68bf7..56ffeaba2bf 100644 --- a/compiler/testData/asJava/lightClasses/compilationErrors/RepetableAnnotations.kt +++ b/compiler/testData/asJava/lightClasses/compilationErrors/RepetableAnnotations.kt @@ -1,4 +1,5 @@ // p.Annotations +// SKIP_SANITY_TEST package p diff --git a/compiler/testData/asJava/lightClasses/compilationErrors/WrongAnnotations.kt b/compiler/testData/asJava/lightClasses/compilationErrors/WrongAnnotations.kt index 8970816d5e9..ec9bc8df9fe 100644 --- a/compiler/testData/asJava/lightClasses/compilationErrors/WrongAnnotations.kt +++ b/compiler/testData/asJava/lightClasses/compilationErrors/WrongAnnotations.kt @@ -32,3 +32,5 @@ class A { } } } + +// LAZINESS:NoConsistency \ No newline at end of file diff --git a/compiler/testData/asJava/lightClasses/facades/SingleJvmClassName.kt b/compiler/testData/asJava/lightClasses/facades/SingleJvmClassName.kt index 80c432a470d..02237439904 100644 --- a/compiler/testData/asJava/lightClasses/facades/SingleJvmClassName.kt +++ b/compiler/testData/asJava/lightClasses/facades/SingleJvmClassName.kt @@ -5,3 +5,5 @@ fun foo() { } + +// SKIP_IDE_TEST \ No newline at end of file diff --git a/compiler/testData/asJava/lightClasses/ideRegression/AllOpenAnnotatedClasses.kt b/compiler/testData/asJava/lightClasses/ideRegression/AllOpenAnnotatedClasses.kt index aa3276fd546..4b37b8bb6fa 100644 --- a/compiler/testData/asJava/lightClasses/ideRegression/AllOpenAnnotatedClasses.kt +++ b/compiler/testData/asJava/lightClasses/ideRegression/AllOpenAnnotatedClasses.kt @@ -23,4 +23,6 @@ class C { } } +// LAZINESS:NoLaziness +// SKIP_SANITY_TEST // COMPILATION_ERRORS \ No newline at end of file diff --git a/compiler/testData/asJava/lightClasses/ideRegression/OverridingFinalInternal.java b/compiler/testData/asJava/lightClasses/ideRegression/OverridingFinalInternal.java index b37bb087d72..9bdc012efa2 100644 --- a/compiler/testData/asJava/lightClasses/ideRegression/OverridingFinalInternal.java +++ b/compiler/testData/asJava/lightClasses/ideRegression/OverridingFinalInternal.java @@ -1,8 +1,8 @@ public final class C /* p.C*/ extends p.A { public C();// .ctor() - public int af$light_idea_test_case();// af$light_idea_test_case() + public int af();// af$light_idea_test_case() - public int getAp$light_idea_test_case();// getAp$light_idea_test_case() + public int getAp();// getAp$light_idea_test_case() } \ No newline at end of file diff --git a/compiler/testData/asJava/lightClasses/ideRegression/OverridingFinalInternal.kt b/compiler/testData/asJava/lightClasses/ideRegression/OverridingFinalInternal.kt index ff16ffbb609..d747ff11b73 100644 --- a/compiler/testData/asJava/lightClasses/ideRegression/OverridingFinalInternal.kt +++ b/compiler/testData/asJava/lightClasses/ideRegression/OverridingFinalInternal.kt @@ -10,4 +10,5 @@ class C : A() { } } +// LAZINESS:NoConsistency // COMPILATION_ERRORS \ No newline at end of file diff --git a/compiler/testData/asJava/lightClasses/ideRegression/OverridingInternal.kt b/compiler/testData/asJava/lightClasses/ideRegression/OverridingInternal.kt index 0bfd23f9516..36d861278a8 100644 --- a/compiler/testData/asJava/lightClasses/ideRegression/OverridingInternal.kt +++ b/compiler/testData/asJava/lightClasses/ideRegression/OverridingInternal.kt @@ -13,4 +13,5 @@ class C : A(), I { override fun if() = 5 } +// LAZINESS:NoLaziness // COMPILATION_ERRORS \ No newline at end of file diff --git a/compiler/testData/asJava/lightClasses/ideRegression/OverridingProtected.kt b/compiler/testData/asJava/lightClasses/ideRegression/OverridingProtected.kt index ff16ffbb609..c1240dd3370 100644 --- a/compiler/testData/asJava/lightClasses/ideRegression/OverridingProtected.kt +++ b/compiler/testData/asJava/lightClasses/ideRegression/OverridingProtected.kt @@ -10,4 +10,5 @@ class C : A() { } } +// LAZINESS:NoLaziness // COMPILATION_ERRORS \ No newline at end of file diff --git a/compiler/testData/asJava/lightClasses/nullabilityAnnotations/OverrideAnyWithUnit.kt b/compiler/testData/asJava/lightClasses/nullabilityAnnotations/OverrideAnyWithUnit.kt index 020d4623f3b..fe453e1c023 100644 --- a/compiler/testData/asJava/lightClasses/nullabilityAnnotations/OverrideAnyWithUnit.kt +++ b/compiler/testData/asJava/lightClasses/nullabilityAnnotations/OverrideAnyWithUnit.kt @@ -8,4 +8,5 @@ class C : Base { override fun foo(): Unit {} } +// LAZINESS:NoLaziness // FIR_COMPARISON \ No newline at end of file diff --git a/compiler/testData/asJava/lightClasses/nullabilityAnnotations/UnitAsGenericArgument.kt b/compiler/testData/asJava/lightClasses/nullabilityAnnotations/UnitAsGenericArgument.kt index b71fc765fc0..83f28b40f03 100644 --- a/compiler/testData/asJava/lightClasses/nullabilityAnnotations/UnitAsGenericArgument.kt +++ b/compiler/testData/asJava/lightClasses/nullabilityAnnotations/UnitAsGenericArgument.kt @@ -7,4 +7,5 @@ interface Base { class C : Base { override fun foo(t: Unit) {} } +// LAZINESS:NoLaziness // FIR_COMPARISON \ No newline at end of file diff --git a/compiler/testData/asJava/lightClasses/script/HelloWorld.kts b/compiler/testData/asJava/lightClasses/script/HelloWorld.kts index 7533d5e0f40..6a749c71ac9 100644 --- a/compiler/testData/asJava/lightClasses/script/HelloWorld.kts +++ b/compiler/testData/asJava/lightClasses/script/HelloWorld.kts @@ -1,3 +1,5 @@ // HelloWorld println("Hello world!") + +// LAZINESS:NoLaziness \ No newline at end of file diff --git a/compiler/testData/asJava/lightClasses/script/InnerClasses.kts b/compiler/testData/asJava/lightClasses/script/InnerClasses.kts index 9e7716b9549..7535d2d8041 100644 --- a/compiler/testData/asJava/lightClasses/script/InnerClasses.kts +++ b/compiler/testData/asJava/lightClasses/script/InnerClasses.kts @@ -11,3 +11,5 @@ class Bar(val a: Int) { } } } + +// LAZINESS:NoLaziness \ No newline at end of file diff --git a/compiler/testData/asJava/script/ide/HelloWorld.java b/compiler/testData/asJava/script/ide/HelloWorld.java index a75336c5572..d9e31420975 100644 --- a/compiler/testData/asJava/script/ide/HelloWorld.java +++ b/compiler/testData/asJava/script/ide/HelloWorld.java @@ -1,6 +1,6 @@ public class HelloWorld /* HelloWorld*/ extends kotlin.script.templates.standard.ScriptTemplateWithArgs { - public HelloWorld(java.lang.String[]);// .ctor(java.lang.String[]) + public HelloWorld();// .ctor() public static final void main(java.lang.String[]);// main(java.lang.String[]) -} +} \ No newline at end of file diff --git a/compiler/testData/asJava/script/ide/HelloWorld.kts b/compiler/testData/asJava/script/ide/HelloWorld.kts index 7533d5e0f40..6a749c71ac9 100644 --- a/compiler/testData/asJava/script/ide/HelloWorld.kts +++ b/compiler/testData/asJava/script/ide/HelloWorld.kts @@ -1,3 +1,5 @@ // HelloWorld println("Hello world!") + +// LAZINESS:NoLaziness \ No newline at end of file diff --git a/compiler/testData/asJava/script/ide/InnerClasses.java b/compiler/testData/asJava/script/ide/InnerClasses.java index 36c306967d2..0064ceca6df 100644 --- a/compiler/testData/asJava/script/ide/InnerClasses.java +++ b/compiler/testData/asJava/script/ide/InnerClasses.java @@ -1,5 +1,5 @@ public class InnerClasses /* InnerClasses*/ extends kotlin.script.templates.standard.ScriptTemplateWithArgs { - public InnerClasses(java.lang.String[]);// .ctor(java.lang.String[]) + public InnerClasses();// .ctor() public static final void main(java.lang.String[]);// main(java.lang.String[]) @@ -23,4 +23,4 @@ public static final class Baz /* InnerClasses.Bar.Baz*/ { public final void doSomething();// doSomething() -}}} +}}} \ No newline at end of file diff --git a/compiler/testData/asJava/script/ide/InnerClasses.kts b/compiler/testData/asJava/script/ide/InnerClasses.kts index 9e7716b9549..7535d2d8041 100644 --- a/compiler/testData/asJava/script/ide/InnerClasses.kts +++ b/compiler/testData/asJava/script/ide/InnerClasses.kts @@ -11,3 +11,5 @@ class Bar(val a: Int) { } } } + +// LAZINESS:NoLaziness \ No newline at end of file diff --git a/compiler/testData/asJava/ultraLightClasses/enums.java b/compiler/testData/asJava/ultraLightClasses/enums.java index 634fb35ebe6..a9ae6e76277 100644 --- a/compiler/testData/asJava/ultraLightClasses/enums.java +++ b/compiler/testData/asJava/ultraLightClasses/enums.java @@ -4,12 +4,6 @@ public enum Direction /* Direction*/ { WEST, EAST; - @org.jetbrains.annotations.NotNull() - public static Direction valueOf(@org.jetbrains.annotations.NotNull() java.lang.String) throws java.lang.IllegalArgumentException;// valueOf(java.lang.String) - - @org.jetbrains.annotations.NotNull() - public static Direction[] values();// values() - private Direction();// .ctor() } @@ -21,12 +15,6 @@ public enum Color /* Color*/ { private final int rgb; - @org.jetbrains.annotations.NotNull() - public static Color valueOf(@org.jetbrains.annotations.NotNull() java.lang.String) throws java.lang.IllegalArgumentException;// valueOf(java.lang.String) - - @org.jetbrains.annotations.NotNull() - public static Color[] values();// values() - private Color(@org.jetbrains.annotations.NotNull() java.lang.String);// .ctor(java.lang.String) private Color(int);// .ctor(int) @@ -54,12 +42,6 @@ public enum ProtocolState /* ProtocolState*/ { @org.jetbrains.annotations.NotNull() public abstract ProtocolState signal();// signal() - @org.jetbrains.annotations.NotNull() - public static ProtocolState valueOf(@org.jetbrains.annotations.NotNull() java.lang.String) throws java.lang.IllegalArgumentException;// valueOf(java.lang.String) - - @org.jetbrains.annotations.NotNull() - public static ProtocolState[] values();// values() - private ProtocolState();// .ctor() @@ -102,12 +84,6 @@ public enum IntArithmetics /* IntArithmetics*/ implements java.util.function.Bin }; - @org.jetbrains.annotations.NotNull() - public static IntArithmetics valueOf(@org.jetbrains.annotations.NotNull() java.lang.String) throws java.lang.IllegalArgumentException;// valueOf(java.lang.String) - - @org.jetbrains.annotations.NotNull() - public static IntArithmetics[] values();// values() - private IntArithmetics();// .ctor() public int applyAsInt(int, int);// applyAsInt(int, int)