[AA LC] Don't create light methods if value class is present in signature

^KT-55788

Test `parameter_jvmInline.kt` is removed because now members with value
  classes are not included in light classes and don't have PSI representation
This commit is contained in:
Dmitriy Novozhilov
2022-09-14 16:29:43 +03:00
committed by Space Team
parent 16b72d3e54
commit faa96ec7c0
21 changed files with 466 additions and 32 deletions
@@ -106,12 +106,6 @@ public class Fe10IdeNormalAnalysisSourceModuleAnalysisApiPsiTypeProviderTestGene
runTest("analysis/analysis-api/testData/components/psiTypeProvider/psiType/forDeclaration/localClass_memberFunction.kt");
}
@Test
@TestMetadata("parameter_jvmInline.kt")
public void testParameter_jvmInline() throws Exception {
runTest("analysis/analysis-api/testData/components/psiTypeProvider/psiType/forDeclaration/parameter_jvmInline.kt");
}
@Test
@TestMetadata("suspendFunctionValueParameterNoStdlib.kt")
public void testSuspendFunctionValueParameterNoStdlib() throws Exception {
@@ -106,12 +106,6 @@ public class FirIdeDependentAnalysisSourceModuleAnalysisApiPsiTypeProviderTestGe
runTest("analysis/analysis-api/testData/components/psiTypeProvider/psiType/forDeclaration/localClass_memberFunction.kt");
}
@Test
@TestMetadata("parameter_jvmInline.kt")
public void testParameter_jvmInline() throws Exception {
runTest("analysis/analysis-api/testData/components/psiTypeProvider/psiType/forDeclaration/parameter_jvmInline.kt");
}
@Test
@TestMetadata("suspendFunctionValueParameterNoStdlib.kt")
public void testSuspendFunctionValueParameterNoStdlib() throws Exception {
@@ -106,12 +106,6 @@ public class FirIdeNormalAnalysisSourceModuleAnalysisApiPsiTypeProviderTestGener
runTest("analysis/analysis-api/testData/components/psiTypeProvider/psiType/forDeclaration/localClass_memberFunction.kt");
}
@Test
@TestMetadata("parameter_jvmInline.kt")
public void testParameter_jvmInline() throws Exception {
runTest("analysis/analysis-api/testData/components/psiTypeProvider/psiType/forDeclaration/parameter_jvmInline.kt");
}
@Test
@TestMetadata("suspendFunctionValueParameterNoStdlib.kt")
public void testSuspendFunctionValueParameterNoStdlib() throws Exception {
@@ -106,12 +106,6 @@ public class FirStandaloneNormalAnalysisSourceModuleAnalysisApiPsiTypeProviderTe
runTest("analysis/analysis-api/testData/components/psiTypeProvider/psiType/forDeclaration/localClass_memberFunction.kt");
}
@Test
@TestMetadata("parameter_jvmInline.kt")
public void testParameter_jvmInline() throws Exception {
runTest("analysis/analysis-api/testData/components/psiTypeProvider/psiType/forDeclaration/parameter_jvmInline.kt");
}
@Test
@TestMetadata("suspendFunctionValueParameterNoStdlib.kt")
public void testSuspendFunctionValueParameterNoStdlib() throws Exception {
@@ -1,4 +0,0 @@
@kotlin.jvm.JvmInline
value class MyInt(val value: Int)
fun box(i<caret> : MyInt) {}
@@ -1,2 +0,0 @@
KtType: MyInt
PsiType: PsiType:int
@@ -18,6 +18,11 @@ import com.intellij.psi.scope.PsiScopeProcessor
import com.intellij.psi.util.CachedValueProvider
import com.intellij.psi.util.PsiUtil
import org.jetbrains.annotations.NonNls
import org.jetbrains.kotlin.analysis.api.KtAnalysisSession
import org.jetbrains.kotlin.analysis.api.lifetime.withValidityAssertion
import org.jetbrains.kotlin.analysis.api.symbols.KtCallableSymbol
import org.jetbrains.kotlin.analysis.api.symbols.receiverType
import org.jetbrains.kotlin.analysis.api.symbols.KtFunctionLikeSymbol
import org.jetbrains.kotlin.analysis.project.structure.KtModule
import org.jetbrains.kotlin.analysis.providers.createProjectWideOutOfBlockModificationTracker
import org.jetbrains.kotlin.analysis.utils.errors.buildErrorWithAttachment
@@ -191,4 +196,14 @@ abstract class SymbolLightClassBase protected constructor(val ktModule: KtModule
visitor.visitElement(this)
}
}
}
context(KtAnalysisSession)
protected fun KtCallableSymbol.hasTypeForValueClassInSignature(ignoreReturnType: Boolean = false): Boolean {
if (!ignoreReturnType && returnType.typeForValueClass) return true
if (receiverType?.typeForValueClass == true) return true
if (this is KtFunctionLikeSymbol) {
return valueParameters.any { it.returnType.typeForValueClass }
}
return false
}
}
@@ -139,6 +139,9 @@ internal open class SymbolLightClassForClassOrObject : SymbolLightClassForNamedC
it is KtKotlinPropertySymbol && it.origin == KtSymbolOrigin.SOURCE_MEMBER_GENERATED && it.name == StandardNames.ENUM_ENTRIES
}
}
.filterNot {
it.hasTypeForValueClassInSignature()
}
val suppressStatic = isCompanionObject
createMethods(visibleDeclarations, result, suppressStatic = suppressStatic)
@@ -97,6 +97,7 @@ class SymbolLightClassForFacade(
if (callableSymbol !is KtSymbolWithVisibility) continue
if ((callableSymbol as? KtAnnotatedSymbol)?.hasInlineOnlyAnnotation() == true) continue
if (multiFileClass && callableSymbol.toPsiVisibilityForMember() == PsiModifier.PRIVATE) continue
if (callableSymbol.hasTypeForValueClassInSignature(ignoreReturnType = true)) continue
yield(callableSymbol)
}
}
@@ -57,6 +57,7 @@ internal open class SymbolLightClassForInterface : SymbolLightClassForInterfaceO
val visibleDeclarations = classOrObjectSymbol.getDeclaredMemberScope().getCallableSymbols()
.filterNot { it is KtFunctionSymbol && it.visibility.isPrivateOrPrivateToThis() }
.filterNot { it.hasTypeForValueClassInSignature() }
createMethods(visibleDeclarations, result)
addMethodsFromCompanionIfNeeded(result, classOrObjectSymbol)
@@ -290,6 +290,25 @@ internal fun SymbolLightClassBase.createPropertyAccessors(
if (declaration.getter?.hasBody != true && declaration.setter?.hasBody != true && declaration.visibility.isPrivateOrPrivateToThis()) return
if (declaration.hasJvmFieldAnnotation()) return
val propertyTypeIsValueClass = declaration.returnType.typeForValueClass
/*
* For top-level properties with value class in return type compiler mangles only setter
*
* @JvmInline
* value class Some(val value: String)
*
* var topLevelProp: Some = Some("1")
*
* Compiles to
* public final class FooKt {
* public final static getTopLevelProp()Ljava/lang/String;
*
* public final static setTopLevelProp-5lyY9Q4(Ljava/lang/String;)V
*
* private static Ljava/lang/String; topLevelProp
* }
*/
if (this !is SymbolLightClassForFacade && propertyTypeIsValueClass) return
fun KtPropertyAccessorSymbol.needToCreateAccessor(siteTarget: AnnotationUseSiteTarget): Boolean {
if (onlyJvmStatic &&
@@ -334,7 +353,7 @@ internal fun SymbolLightClassBase.createPropertyAccessors(
}
val setter = declaration.setter?.takeIf {
!isAnnotationType && it.needToCreateAccessor(AnnotationUseSiteTarget.PROPERTY_SETTER)
!isAnnotationType && it.needToCreateAccessor(AnnotationUseSiteTarget.PROPERTY_SETTER) && !propertyTypeIsValueClass
}
if (isMutable && setter != null) {
@@ -602,3 +621,10 @@ internal fun SymbolLightClassBase.addPropertyBackingFields(
// Then, regular member properties
propertyGroups[false]?.forEach(::addPropertyBackingField)
}
context(KtAnalysisSession)
internal val KtType.typeForValueClass: Boolean
get() {
val symbol = expandedClassSymbol as? KtNamedClassOrObjectSymbol ?: return false
return symbol.isInline
}
@@ -282,6 +282,12 @@ public class SymbolLightClassesByPsiForLibraryTestGenerated extends AbstractSymb
runTest("compiler/testData/asJava/lightClasses/lightClassByPsi/unresolvedWithAliasedImport.kt");
}
@Test
@TestMetadata("valueClassInSignature.kt")
public void testValueClassInSignature() throws Exception {
runTest("compiler/testData/asJava/lightClasses/lightClassByPsi/valueClassInSignature.kt");
}
@Test
@TestMetadata("wildcardOptimization.kt")
public void testWildcardOptimization() throws Exception {
@@ -369,6 +375,12 @@ public class SymbolLightClassesByPsiForLibraryTestGenerated extends AbstractSymb
runTest("compiler/testData/asJava/lightClasses/lightClassByPsi/facades/throwsAnnotation.kt");
}
@Test
@TestMetadata("valueClassInSignature.kt")
public void testValueClassInSignature() throws Exception {
runTest("compiler/testData/asJava/lightClasses/lightClassByPsi/facades/valueClassInSignature.kt");
}
@Test
@TestMetadata("wildcardOptimization.kt")
public void testWildcardOptimization() throws Exception {
@@ -282,6 +282,12 @@ public class SymbolLightClassesByPsiForSourceTestGenerated extends AbstractSymbo
runTest("compiler/testData/asJava/lightClasses/lightClassByPsi/unresolvedWithAliasedImport.kt");
}
@Test
@TestMetadata("valueClassInSignature.kt")
public void testValueClassInSignature() throws Exception {
runTest("compiler/testData/asJava/lightClasses/lightClassByPsi/valueClassInSignature.kt");
}
@Test
@TestMetadata("wildcardOptimization.kt")
public void testWildcardOptimization() throws Exception {
@@ -369,6 +375,12 @@ public class SymbolLightClassesByPsiForSourceTestGenerated extends AbstractSymbo
runTest("compiler/testData/asJava/lightClasses/lightClassByPsi/facades/throwsAnnotation.kt");
}
@Test
@TestMetadata("valueClassInSignature.kt")
public void testValueClassInSignature() throws Exception {
runTest("compiler/testData/asJava/lightClasses/lightClassByPsi/facades/valueClassInSignature.kt");
}
@Test
@TestMetadata("wildcardOptimization.kt")
public void testWildcardOptimization() throws Exception {
@@ -0,0 +1,32 @@
@kotlin.jvm.JvmInline()
public final class Some /* Some*/ {
@org.jetbrains.annotations.NotNull()
private final java.lang.String value;
@org.jetbrains.annotations.NotNull()
public final java.lang.String getValue();// getValue()
public Some(@org.jetbrains.annotations.NotNull() java.lang.String);// .ctor(java.lang.String)
}
public final class SomeClass /* SomeClass*/ {
@org.jetbrains.annotations.NotNull()
private java.lang.String memberProp;
public SomeClass();// .ctor()
}
public abstract interface SomeInterface /* SomeInterface*/ {
class DefaultImpls ...
}
public final class ValueClassInSignatureKt /* ValueClassInSignatureKt*/ {
@org.jetbrains.annotations.NotNull()
private static java.lang.String topLevelProp;
@org.jetbrains.annotations.NotNull()
public static final java.lang.String getTopLevelProp();// getTopLevelProp()
@org.jetbrains.annotations.NotNull()
public static final java.lang.String topLevelFunInReturn();// topLevelFunInReturn()
}
@@ -0,0 +1,74 @@
@kotlin.jvm.JvmInline()
public final class Some /* Some*/ {
@org.jetbrains.annotations.NotNull()
private final java.lang.String value;
@org.jetbrains.annotations.NotNull()
public final java.lang.String getValue();// getValue()
public Some(@org.jetbrains.annotations.NotNull() java.lang.String);// .ctor(java.lang.String)
}
public final class SomeClass /* SomeClass*/ {
@org.jetbrains.annotations.NotNull()
private java.lang.String memberProp;
@org.jetbrains.annotations.NotNull()
public final java.lang.String getMemberProp();// getMemberProp()
@org.jetbrains.annotations.NotNull()
public final java.lang.String memberFunInReturn();// memberFunInReturn()
public SomeClass();// .ctor()
public final int getMemberPropInExtension(@org.jetbrains.annotations.NotNull() java.lang.String);// getMemberPropInExtension(java.lang.String)
public final void memberFunInExtension(@org.jetbrains.annotations.NotNull() java.lang.String);// memberFunInExtension(java.lang.String)
public final void memberFunInParameter(@org.jetbrains.annotations.NotNull() java.lang.String);// memberFunInParameter(java.lang.String)
public final void setMemberProp(@org.jetbrains.annotations.NotNull() java.lang.String);// setMemberProp(java.lang.String)
public final void setMemberPropInExtension(@org.jetbrains.annotations.NotNull() java.lang.String, int);// setMemberPropInExtension(java.lang.String, int)
}
public abstract interface SomeInterface /* SomeInterface*/ {
@org.jetbrains.annotations.NotNull()
public abstract java.lang.String getMemberProp();// getMemberProp()
@org.jetbrains.annotations.NotNull()
public abstract java.lang.String memberFunInReturn();// memberFunInReturn()
public abstract int getMemberPropInExtension(@org.jetbrains.annotations.NotNull() java.lang.String);// getMemberPropInExtension(java.lang.String)
public abstract void memberFunInExtension(@org.jetbrains.annotations.NotNull() java.lang.String);// memberFunInExtension(java.lang.String)
public abstract void memberFunInParameter(@org.jetbrains.annotations.NotNull() java.lang.String);// memberFunInParameter(java.lang.String)
public abstract void setMemberProp(@org.jetbrains.annotations.NotNull() java.lang.String);// setMemberProp(java.lang.String)
public abstract void setMemberPropInExtension(@org.jetbrains.annotations.NotNull() java.lang.String, int);// setMemberPropInExtension(java.lang.String, int)
class DefaultImpls ...
}
public final class ValueClassInSignatureKt /* ValueClassInSignatureKt*/ {
@org.jetbrains.annotations.NotNull()
private static java.lang.String topLevelProp;
@org.jetbrains.annotations.NotNull()
public static final java.lang.String getTopLevelProp();// getTopLevelProp()
@org.jetbrains.annotations.NotNull()
public static final java.lang.String topLevelFunInReturn();// topLevelFunInReturn()
public static final int getTopLevelPropInExtension(@org.jetbrains.annotations.NotNull() java.lang.String);// getTopLevelPropInExtension(java.lang.String)
public static final void setTopLevelProp(@org.jetbrains.annotations.NotNull() java.lang.String);// setTopLevelProp(java.lang.String)
public static final void setTopLevelPropInExtension(@org.jetbrains.annotations.NotNull() java.lang.String, int);// setTopLevelPropInExtension(java.lang.String, int)
public static final void topLevelFunInExtension(@org.jetbrains.annotations.NotNull() java.lang.String);// topLevelFunInExtension(java.lang.String)
public static final void topLevelFunInParameter(@org.jetbrains.annotations.NotNull() java.lang.String);// topLevelFunInParameter(java.lang.String)
}
@@ -0,0 +1,33 @@
@JvmInline
value class Some(val value: String)
var topLevelProp: Some = Some("1")
var Some.topLevelPropInExtension: Int
get() = 1
set(value) {}
fun topLevelFunInReturn(): Some = Some("1")
fun topLevelFunInParameter(s: Some) {}
fun Some.topLevelFunInExtension() {}
class SomeClass {
var memberProp: Some = Some("1")
var Some.memberPropInExtension: Int
get() = 1
set(value) {}
fun memberFunInReturn(): Some = Some("1")
fun memberFunInParameter(s: Some) {}
fun Some.memberFunInExtension() {}
}
interface SomeInterface {
var memberProp: Some
var Some.memberPropInExtension: Int
get() = 1
set(value) {}
fun memberFunInReturn(): Some
fun memberFunInParameter(s: Some)
fun Some.memberFunInExtension()
}
@@ -0,0 +1,89 @@
@kotlin.jvm.JvmInline()
public final class Some /* Some*/ {
@org.jetbrains.annotations.NotNull()
private final java.lang.String value;
@org.jetbrains.annotations.NotNull()
public final java.lang.String getValue();// getValue()
@org.jetbrains.annotations.NotNull()
public static java.lang.String constructor-impl(@org.jetbrains.annotations.NotNull() java.lang.String);// constructor-impl(java.lang.String)
public boolean equals(java.lang.Object);// equals(java.lang.Object)
public int hashCode();// hashCode()
public java.lang.String toString();// toString()
public static boolean equals-impl(java.lang.String, java.lang.Object);// equals-impl(java.lang.String, java.lang.Object)
public static final boolean equals-impl0(java.lang.String, java.lang.String);// equals-impl0(java.lang.String, java.lang.String)
public static int hashCode-impl(java.lang.String);// hashCode-impl(java.lang.String)
public static java.lang.String toString-impl(java.lang.String);// toString-impl(java.lang.String)
}
public final class SomeClass /* SomeClass*/ {
@org.jetbrains.annotations.NotNull()
private java.lang.String memberProp;
@org.jetbrains.annotations.NotNull()
public final java.lang.String getMemberProp-YO-7n-0();// getMemberProp-YO-7n-0()
@org.jetbrains.annotations.NotNull()
public final java.lang.String memberFunInReturn-YO-7n-0();// memberFunInReturn-YO-7n-0()
public SomeClass();// .ctor()
public final int getMemberPropInExtension-5lyY9Q4(@org.jetbrains.annotations.NotNull() java.lang.String);// getMemberPropInExtension-5lyY9Q4(java.lang.String)
public final void memberFunInExtension-5lyY9Q4(@org.jetbrains.annotations.NotNull() java.lang.String);// memberFunInExtension-5lyY9Q4(java.lang.String)
public final void memberFunInParameter-5lyY9Q4(@org.jetbrains.annotations.NotNull() java.lang.String);// memberFunInParameter-5lyY9Q4(java.lang.String)
public final void setMemberProp-5lyY9Q4(@org.jetbrains.annotations.NotNull() java.lang.String);// setMemberProp-5lyY9Q4(java.lang.String)
public final void setMemberPropInExtension-54afNMI(@org.jetbrains.annotations.NotNull() java.lang.String, int);// setMemberPropInExtension-54afNMI(java.lang.String, int)
}
public abstract interface SomeInterface /* SomeInterface*/ {
@org.jetbrains.annotations.NotNull()
public abstract java.lang.String getMemberProp-YO-7n-0();// getMemberProp-YO-7n-0()
@org.jetbrains.annotations.NotNull()
public abstract java.lang.String memberFunInReturn-YO-7n-0();// memberFunInReturn-YO-7n-0()
public abstract int getMemberPropInExtension-5lyY9Q4(@org.jetbrains.annotations.NotNull() java.lang.String);// getMemberPropInExtension-5lyY9Q4(java.lang.String)
public abstract void memberFunInExtension-5lyY9Q4(@org.jetbrains.annotations.NotNull() java.lang.String);// memberFunInExtension-5lyY9Q4(java.lang.String)
public abstract void memberFunInParameter-5lyY9Q4(@org.jetbrains.annotations.NotNull() java.lang.String);// memberFunInParameter-5lyY9Q4(java.lang.String)
public abstract void setMemberProp-5lyY9Q4(@org.jetbrains.annotations.NotNull() java.lang.String);// setMemberProp-5lyY9Q4(java.lang.String)
public abstract void setMemberPropInExtension-54afNMI(@org.jetbrains.annotations.NotNull() java.lang.String, int);// setMemberPropInExtension-54afNMI(java.lang.String, int)
class DefaultImpls ...
}
public final class ValueClassInSignatureKt /* ValueClassInSignatureKt*/ {
@org.jetbrains.annotations.NotNull()
private static java.lang.String topLevelProp;
@org.jetbrains.annotations.NotNull()
public static final java.lang.String getTopLevelProp();// getTopLevelProp()
@org.jetbrains.annotations.NotNull()
public static final java.lang.String topLevelFunInReturn();// topLevelFunInReturn()
public static final int getTopLevelPropInExtension-5lyY9Q4(@org.jetbrains.annotations.NotNull() java.lang.String);// getTopLevelPropInExtension-5lyY9Q4(java.lang.String)
public static final void setTopLevelProp-5lyY9Q4(@org.jetbrains.annotations.NotNull() java.lang.String);// setTopLevelProp-5lyY9Q4(java.lang.String)
public static final void setTopLevelPropInExtension-54afNMI(@org.jetbrains.annotations.NotNull() java.lang.String, int);// setTopLevelPropInExtension-54afNMI(java.lang.String, int)
public static final void topLevelFunInExtension-5lyY9Q4(@org.jetbrains.annotations.NotNull() java.lang.String);// topLevelFunInExtension-5lyY9Q4(java.lang.String)
public static final void topLevelFunInParameter-5lyY9Q4(@org.jetbrains.annotations.NotNull() java.lang.String);// topLevelFunInParameter-5lyY9Q4(java.lang.String)
}
@@ -0,0 +1,21 @@
public final class RegularClass /* RegularClass*/ {
@org.jetbrains.annotations.NotNull()
private java.lang.String classProp;
public RegularClass();// .ctor()
}
public abstract interface RegularInterface /* RegularInterface*/ {
class DefaultImpls ...
}
@kotlin.jvm.JvmInline()
public final class Some /* Some*/ {
@org.jetbrains.annotations.NotNull()
private final java.lang.String value;
@org.jetbrains.annotations.NotNull()
public final java.lang.String getValue();// getValue()
public Some(@org.jetbrains.annotations.NotNull() java.lang.String);// .ctor(java.lang.String)
}
@@ -0,0 +1,53 @@
public final class RegularClass /* RegularClass*/ {
@org.jetbrains.annotations.NotNull()
private java.lang.String classProp;
@org.jetbrains.annotations.NotNull()
public final java.lang.String classFunInReturn();// classFunInReturn()
@org.jetbrains.annotations.NotNull()
public final java.lang.String getClassProp();// getClassProp()
public RegularClass();// .ctor()
public final int getClassPropInExtension(@org.jetbrains.annotations.NotNull() java.lang.String);// getClassPropInExtension(java.lang.String)
public final void classFunInExtension(@org.jetbrains.annotations.NotNull() java.lang.String);// classFunInExtension(java.lang.String)
public final void classFunInParameter(@org.jetbrains.annotations.NotNull() java.lang.String);// classFunInParameter(java.lang.String)
public final void setClassProp(@org.jetbrains.annotations.NotNull() java.lang.String);// setClassProp(java.lang.String)
public final void setClassPropInExtension(@org.jetbrains.annotations.NotNull() java.lang.String, int);// setClassPropInExtension(java.lang.String, int)
}
public abstract interface RegularInterface /* RegularInterface*/ {
@org.jetbrains.annotations.NotNull()
public abstract java.lang.String getInterfaceProp();// getInterfaceProp()
@org.jetbrains.annotations.NotNull()
public abstract java.lang.String interfaceFunInReturn();// interfaceFunInReturn()
public abstract int getInterfacePropInExtension(@org.jetbrains.annotations.NotNull() java.lang.String);// getInterfacePropInExtension(java.lang.String)
public abstract void interfaceFunInExtension(@org.jetbrains.annotations.NotNull() java.lang.String);// interfaceFunInExtension(java.lang.String)
public abstract void interfaceFunInParameter(@org.jetbrains.annotations.NotNull() java.lang.String);// interfaceFunInParameter(java.lang.String)
public abstract void setInterfaceProp(@org.jetbrains.annotations.NotNull() java.lang.String);// setInterfaceProp(java.lang.String)
public abstract void setInterfacePropInExtension(@org.jetbrains.annotations.NotNull() java.lang.String, int);// setInterfacePropInExtension(java.lang.String, int)
class DefaultImpls ...
}
@kotlin.jvm.JvmInline()
public final class Some /* Some*/ {
@org.jetbrains.annotations.NotNull()
private final java.lang.String value;
@org.jetbrains.annotations.NotNull()
public final java.lang.String getValue();// getValue()
public Some(@org.jetbrains.annotations.NotNull() java.lang.String);// .ctor(java.lang.String)
}
@@ -0,0 +1,24 @@
// CHECK_BY_JAVA_FILE
@JvmInline
value class Some(val value: String)
class RegularClass {
var classProp: Some = Some("1")
var Some.classPropInExtension: Int
get() = 1
set(value) {}
fun classFunInReturn(): Some = Some("1")
fun classFunInParameter(s: Some) {}
fun Some.classFunInExtension() {}
}
interface RegularInterface {
var interfaceProp: Some
var Some.interfacePropInExtension: Int
fun interfaceFunInReturn(): Some = Some("1")
fun interfaceFunInParameter(s: Some) {}
fun Some.interfaceFunInExtension() {}
}
@@ -0,0 +1,68 @@
public final class RegularClass /* RegularClass*/ {
@org.jetbrains.annotations.NotNull()
private java.lang.String classProp;
@org.jetbrains.annotations.NotNull()
public final java.lang.String classFunInReturn-YO-7n-0();// classFunInReturn-YO-7n-0()
@org.jetbrains.annotations.NotNull()
public final java.lang.String getClassProp-YO-7n-0();// getClassProp-YO-7n-0()
public RegularClass();// .ctor()
public final int getClassPropInExtension-5lyY9Q4(@org.jetbrains.annotations.NotNull() java.lang.String);// getClassPropInExtension-5lyY9Q4(java.lang.String)
public final void classFunInExtension-5lyY9Q4(@org.jetbrains.annotations.NotNull() java.lang.String);// classFunInExtension-5lyY9Q4(java.lang.String)
public final void classFunInParameter-5lyY9Q4(@org.jetbrains.annotations.NotNull() java.lang.String);// classFunInParameter-5lyY9Q4(java.lang.String)
public final void setClassProp-5lyY9Q4(@org.jetbrains.annotations.NotNull() java.lang.String);// setClassProp-5lyY9Q4(java.lang.String)
public final void setClassPropInExtension-54afNMI(@org.jetbrains.annotations.NotNull() java.lang.String, int);// setClassPropInExtension-54afNMI(java.lang.String, int)
}
public abstract interface RegularInterface /* RegularInterface*/ {
@org.jetbrains.annotations.NotNull()
public abstract java.lang.String getInterfaceProp-YO-7n-0();// getInterfaceProp-YO-7n-0()
@org.jetbrains.annotations.NotNull()
public abstract java.lang.String interfaceFunInReturn-YO-7n-0();// interfaceFunInReturn-YO-7n-0()
public abstract int getInterfacePropInExtension-5lyY9Q4(@org.jetbrains.annotations.NotNull() java.lang.String);// getInterfacePropInExtension-5lyY9Q4(java.lang.String)
public abstract void interfaceFunInExtension-5lyY9Q4(@org.jetbrains.annotations.NotNull() java.lang.String);// interfaceFunInExtension-5lyY9Q4(java.lang.String)
public abstract void interfaceFunInParameter-5lyY9Q4(@org.jetbrains.annotations.NotNull() java.lang.String);// interfaceFunInParameter-5lyY9Q4(java.lang.String)
public abstract void setInterfaceProp-5lyY9Q4(@org.jetbrains.annotations.NotNull() java.lang.String);// setInterfaceProp-5lyY9Q4(java.lang.String)
public abstract void setInterfacePropInExtension-54afNMI(@org.jetbrains.annotations.NotNull() java.lang.String, int);// setInterfacePropInExtension-54afNMI(java.lang.String, int)
class DefaultImpls ...
}
@kotlin.jvm.JvmInline()
public final class Some /* Some*/ {
@org.jetbrains.annotations.NotNull()
private final java.lang.String value;
@org.jetbrains.annotations.NotNull()
public final java.lang.String getValue();// getValue()
@org.jetbrains.annotations.NotNull()
public static java.lang.String constructor-impl(@org.jetbrains.annotations.NotNull() java.lang.String);// constructor-impl(java.lang.String)
public boolean equals(java.lang.Object);// equals(java.lang.Object)
public int hashCode();// hashCode()
public java.lang.String toString();// toString()
public static boolean equals-impl(java.lang.String, java.lang.Object);// equals-impl(java.lang.String, java.lang.Object)
public static final boolean equals-impl0(java.lang.String, java.lang.String);// equals-impl0(java.lang.String, java.lang.String)
public static int hashCode-impl(java.lang.String);// hashCode-impl(java.lang.String)
public static java.lang.String toString-impl(java.lang.String);// toString-impl(java.lang.String)
}