diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/AsmUtil.java b/compiler/backend/src/org/jetbrains/kotlin/codegen/AsmUtil.java index 129569b396f..48d5666d73f 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/AsmUtil.java +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/AsmUtil.java @@ -758,14 +758,8 @@ public class AsmUtil { } public static int getVisibilityForSpecialPropertyBackingField(@NotNull PropertyDescriptor propertyDescriptor, boolean isDelegate) { - return getVisibilityForSpecialPropertyBackingField(propertyDescriptor, isDelegate, false); - } - - public static int getVisibilityForSpecialPropertyBackingField(@NotNull PropertyDescriptor propertyDescriptor, boolean isDelegate, boolean skipInterfaceCheck) { boolean isExtensionProperty = propertyDescriptor.getExtensionReceiverParameter() != null; - if (isDelegate || - isExtensionProperty || - (!skipInterfaceCheck && isInterfaceCompanionObject(propertyDescriptor.getContainingDeclaration()))) { + if (isDelegate || isExtensionProperty) { return ACC_PRIVATE; } else { @@ -785,13 +779,10 @@ public class AsmUtil { } public static boolean isPropertyWithBackingFieldCopyInOuterClass(@NotNull PropertyDescriptor propertyDescriptor) { - boolean isExtensionProperty = propertyDescriptor.getExtensionReceiverParameter() != null; DeclarationDescriptor propertyContainer = propertyDescriptor.getContainingDeclaration(); - return !propertyDescriptor.isVar() - && !isExtensionProperty - && isCompanionObject(propertyContainer) && isInterface(propertyContainer.getContainingDeclaration()) - && areBothAccessorDefault(propertyDescriptor) - && getVisibilityForSpecialPropertyBackingField(propertyDescriptor, false, true) == ACC_PUBLIC; + return propertyDescriptor.isConst() + && isInterfaceCompanionObject(propertyContainer) + && propertyDescriptor.getVisibility() == Visibilities.PUBLIC; } public static boolean isCompanionObjectWithBackingFieldsInOuter(@NotNull DeclarationDescriptor companionObject) { diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/PropertyCodegen.java b/compiler/backend/src/org/jetbrains/kotlin/codegen/PropertyCodegen.java index fe57bc6e59e..ed31a0ffd9c 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/PropertyCodegen.java +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/PropertyCodegen.java @@ -59,6 +59,7 @@ import static org.jetbrains.kotlin.codegen.JvmCodegenUtil.isJvmInterface; import static org.jetbrains.kotlin.codegen.serialization.JvmSerializationBindings.*; import static org.jetbrains.kotlin.resolve.DescriptorUtils.isCompanionObject; import static org.jetbrains.kotlin.resolve.DescriptorUtils.isInterface; +import static org.jetbrains.kotlin.resolve.DescriptorUtils.isInterfaceCompanionObject; import static org.jetbrains.kotlin.resolve.jvm.AsmTypes.PROPERTY_METADATA_TYPE; import static org.jetbrains.kotlin.resolve.jvm.diagnostics.DiagnosticsPackage.OtherOrigin; import static org.jetbrains.org.objectweb.asm.Opcodes.*; @@ -315,7 +316,9 @@ public class PropertyCodegen { else if (hasPublicFieldAnnotation && !isDelegate) { modifiers |= ACC_PUBLIC; } - else { + else if (isInterfaceCompanionObject(propertyDescriptor.getContainingDeclaration())) { + modifiers |= ACC_PRIVATE; + } else { modifiers |= getVisibilityForSpecialPropertyBackingField(propertyDescriptor, isDelegate); } diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/state/GenerationState.kt b/compiler/backend/src/org/jetbrains/kotlin/codegen/state/GenerationState.kt index 3c9d503f8cb..0404d6cf81a 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/state/GenerationState.kt +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/state/GenerationState.kt @@ -66,14 +66,14 @@ public class GenerationState @JvmOverloads constructor( public val incrementalCompilationComponents: IncrementalCompilationComponents? = null, public val progress: Progress = Progress.DEAF ) { - public interface GenerateClassFilter { - public fun shouldAnnotateClass(classOrObject: JetClassOrObject): Boolean - public fun shouldGenerateClass(classOrObject: JetClassOrObject): Boolean - public fun shouldGeneratePackagePart(jetFile: JetFile): Boolean - public fun shouldGenerateScript(script: JetScript): Boolean + public abstract class GenerateClassFilter { + public abstract fun shouldAnnotateClass(classOrObject: JetClassOrObject): Boolean + public abstract fun shouldGenerateClass(classOrObject: JetClassOrObject): Boolean + public abstract fun shouldGeneratePackagePart(jetFile: JetFile): Boolean + public abstract fun shouldGenerateScript(script: JetScript): Boolean companion object { - public val GENERATE_ALL: GenerateClassFilter = object : GenerateClassFilter { + public val GENERATE_ALL: GenerateClassFilter = object : GenerateClassFilter() { override fun shouldAnnotateClass(classOrObject: JetClassOrObject): Boolean = true override fun shouldGenerateClass(classOrObject: JetClassOrObject): Boolean = true diff --git a/compiler/frontend.java/src/org/jetbrains/kotlin/resolve/jvm/TopDownAnalyzerFacadeForJVM.java b/compiler/frontend.java/src/org/jetbrains/kotlin/resolve/jvm/TopDownAnalyzerFacadeForJVM.java index 6a5303d5385..10e215274ce 100644 --- a/compiler/frontend.java/src/org/jetbrains/kotlin/resolve/jvm/TopDownAnalyzerFacadeForJVM.java +++ b/compiler/frontend.java/src/org/jetbrains/kotlin/resolve/jvm/TopDownAnalyzerFacadeForJVM.java @@ -97,7 +97,7 @@ public enum TopDownAnalyzerFacadeForJVM { new FileBasedDeclarationProviderFactory(moduleContext.getStorageManager(), allFiles); LookupTracker lookupTracker = - incrementalCompilationComponents != null ? incrementalCompilationComponents.getLookupTracker() : LookupTracker.DO_NOTHING; + incrementalCompilationComponents != null ? incrementalCompilationComponents.getLookupTracker() : LookupTracker.Companion.getDO_NOTHING(); List targetIds = null; if (modules != null) { diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/BindingContext.java b/compiler/frontend/src/org/jetbrains/kotlin/resolve/BindingContext.java index 852336feb28..d9e674578aa 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/BindingContext.java +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/BindingContext.java @@ -54,7 +54,7 @@ public interface BindingContext { @NotNull @Override public Diagnostics getDiagnostics() { - return Diagnostics.EMPTY; + return Diagnostics.Companion.getEMPTY(); } @Override diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/BindingTraceContext.java b/compiler/frontend/src/org/jetbrains/kotlin/resolve/BindingTraceContext.java index 37b58fd8868..dff0a3aa78d 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/BindingTraceContext.java +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/BindingTraceContext.java @@ -85,7 +85,7 @@ public class BindingTraceContext implements BindingTrace { private BindingTraceContext(@NotNull MutableSlicedMap map) { this.map = map; - this.mutableDiagnostics = new MutableDiagnosticsWithSuppression(bindingContext, Diagnostics.EMPTY); + this.mutableDiagnostics = new MutableDiagnosticsWithSuppression(bindingContext, Diagnostics.Companion.getEMPTY()); } @TestOnly diff --git a/compiler/testData/asJava/lightClasses/nullabilityAnnotations/TraitClassObjectField.java b/compiler/testData/asJava/lightClasses/nullabilityAnnotations/TraitClassObjectField.java index 5302cf17afd..b8986f8bd2d 100644 --- a/compiler/testData/asJava/lightClasses/nullabilityAnnotations/TraitClassObjectField.java +++ b/compiler/testData/asJava/lightClasses/nullabilityAnnotations/TraitClassObjectField.java @@ -8,6 +8,9 @@ public interface TraitClassObjectField { private final java.lang.String x = ""; private final java.lang.String y = ""; + /** + * @deprecated + */ @org.jetbrains.annotations.Nullable public final java.lang.String getX() { /* compiled code */ } diff --git a/compiler/testData/asJava/lightClasses/nullabilityAnnotations/TraitClassObjectField.kt b/compiler/testData/asJava/lightClasses/nullabilityAnnotations/TraitClassObjectField.kt index 18550ad7fc4..e0077c4d43a 100644 --- a/compiler/testData/asJava/lightClasses/nullabilityAnnotations/TraitClassObjectField.kt +++ b/compiler/testData/asJava/lightClasses/nullabilityAnnotations/TraitClassObjectField.kt @@ -2,7 +2,7 @@ interface TraitClassObjectField { companion object { - val x: String? = "" + const val x: String? = "" private val y: String? = "" } } \ No newline at end of file diff --git a/compiler/testData/codegen/boxWithJava/properties/classObjectProperties/classObjectProperties.kt b/compiler/testData/codegen/boxWithJava/properties/classObjectProperties/classObjectProperties.kt index 2fdf1ded64c..e683f86290d 100644 --- a/compiler/testData/codegen/boxWithJava/properties/classObjectProperties/classObjectProperties.kt +++ b/compiler/testData/codegen/boxWithJava/properties/classObjectProperties/classObjectProperties.kt @@ -6,14 +6,14 @@ class Klass { interface Trait { companion object { - val NAME = "Trait" + const val NAME = "Trait" } } enum class Enoom { ; companion object { - val NAME = "Enoom" + const val NAME = "Enoom" } } diff --git a/compiler/testData/codegen/boxWithStdlib/reflection/genericSignature/kt5112.kt b/compiler/testData/codegen/boxWithStdlib/reflection/genericSignature/kt5112.kt index c1a8e0d47f4..440078b1541 100644 --- a/compiler/testData/codegen/boxWithStdlib/reflection/genericSignature/kt5112.kt +++ b/compiler/testData/codegen/boxWithStdlib/reflection/genericSignature/kt5112.kt @@ -17,9 +17,6 @@ public class ErrorsJvmClass { } fun box(): String { - val genericTypeInTrait = javaClass().getField("param").getGenericType() - if (genericTypeInTrait.toString() != "test.G") return "fail1: $genericTypeInTrait" - val genericTypeInClassObject = ErrorsJvmTrait.javaClass.getDeclaredField("param").getGenericType() if (genericTypeInClassObject.toString() != "test.G") return "fail1: $genericTypeInClassObject" diff --git a/compiler/testData/compileJavaAgainstKotlin/staticFields/AnnotationTrait.kt b/compiler/testData/compileJavaAgainstKotlin/staticFields/AnnotationTrait.kt index 06aed71a05a..a0791b008f4 100644 --- a/compiler/testData/compileJavaAgainstKotlin/staticFields/AnnotationTrait.kt +++ b/compiler/testData/compileJavaAgainstKotlin/staticFields/AnnotationTrait.kt @@ -11,13 +11,13 @@ annotation class AFloat(val value: Float) interface Test { companion object { - val vstring: String = "Test" - val vchar: Char = 'c' - val vint: Int = 10 - val vbyte: Byte = 11 - val vlong: Long = 12 - val vdouble: Double = 1.2 - val vfloat: Float = 1.3.toFloat() + const val vstring: String = "Test" + const val vchar: Char = 'c' + const val vint: Int = 10 + const val vbyte: Byte = 11 + const val vlong: Long = 12 + const val vdouble: Double = 1.2 + const val vfloat: Float = 1.3.toFloat() } } \ No newline at end of file diff --git a/compiler/testData/compileJavaAgainstKotlin/staticFields/AnnotationTrait.txt b/compiler/testData/compileJavaAgainstKotlin/staticFields/AnnotationTrait.txt index 7f37b1d1dee..78d944d5233 100644 --- a/compiler/testData/compileJavaAgainstKotlin/staticFields/AnnotationTrait.txt +++ b/compiler/testData/compileJavaAgainstKotlin/staticFields/AnnotationTrait.txt @@ -43,12 +43,12 @@ public interface Test { public companion object Companion { private constructor Companion() - public final val vbyte: kotlin.Byte - public final val vchar: kotlin.Char - public final val vdouble: kotlin.Double - public final val vfloat: kotlin.Float - public final val vint: kotlin.Int - public final val vlong: kotlin.Long - public final val vstring: kotlin.String + public const final val vbyte: kotlin.Byte + public const final val vchar: kotlin.Char + public const final val vdouble: kotlin.Double + public const final val vfloat: kotlin.Float + public const final val vint: kotlin.Int + public const final val vlong: kotlin.Long + public const final val vstring: kotlin.String } } diff --git a/compiler/testData/compileJavaAgainstKotlin/staticFields/staticTraitProperty.kt b/compiler/testData/compileJavaAgainstKotlin/staticFields/staticTraitProperty.kt index b1958bb1156..870d34e4b2c 100644 --- a/compiler/testData/compileJavaAgainstKotlin/staticFields/staticTraitProperty.kt +++ b/compiler/testData/compileJavaAgainstKotlin/staticFields/staticTraitProperty.kt @@ -3,7 +3,7 @@ package test interface Test { companion object { - public val valProp: Int = 10 + public const val valProp: Int = 10 } } \ No newline at end of file diff --git a/compiler/testData/compileJavaAgainstKotlin/staticFields/staticTraitProperty.txt b/compiler/testData/compileJavaAgainstKotlin/staticFields/staticTraitProperty.txt index 0c4db1cd21a..011da1bc2ea 100644 --- a/compiler/testData/compileJavaAgainstKotlin/staticFields/staticTraitProperty.txt +++ b/compiler/testData/compileJavaAgainstKotlin/staticFields/staticTraitProperty.txt @@ -4,7 +4,7 @@ public interface Test { public companion object Companion { private constructor Companion() - public final val valProp: kotlin.Int + public const final val valProp: kotlin.Int } } diff --git a/compiler/testData/writeFlags/property/classObject/trait/internalConstVal.kt b/compiler/testData/writeFlags/property/classObject/trait/internalConstVal.kt new file mode 100644 index 00000000000..def3d7a4e07 --- /dev/null +++ b/compiler/testData/writeFlags/property/classObject/trait/internalConstVal.kt @@ -0,0 +1,13 @@ +interface Test { + companion object { + internal const val prop: Int = 0; + } +} + +// TESTED_OBJECT_KIND: property +// TESTED_OBJECTS: Test, prop +// ABSENT: TRUE + +// TESTED_OBJECT_KIND: property +// TESTED_OBJECTS: Test$Companion, prop +// FLAGS: ACC_PUBLIC, ACC_FINAL, ACC_STATIC, ACC_SYNTHETIC \ No newline at end of file diff --git a/compiler/testData/writeFlags/property/classObject/trait/internalVal.kt b/compiler/testData/writeFlags/property/classObject/trait/internalVal.kt index 582d52688c7..282113c2293 100644 --- a/compiler/testData/writeFlags/property/classObject/trait/internalVal.kt +++ b/compiler/testData/writeFlags/property/classObject/trait/internalVal.kt @@ -1,13 +1,13 @@ interface Test { companion object { - val prop: Int = 0; + internal val prop: Int = 0; } } // TESTED_OBJECT_KIND: property // TESTED_OBJECTS: Test, prop -// FLAGS: ACC_STATIC, ACC_PUBLIC, ACC_FINAL +// ABSENT: TRUE // TESTED_OBJECT_KIND: property // TESTED_OBJECTS: Test$Companion, prop -// FLAGS: ACC_PRIVATE, ACC_FINAL, ACC_STATIC \ No newline at end of file +// FLAGS: ACC_PRIVATE, ACC_FINAL, ACC_STATIC, ACC_SYNTHETIC \ No newline at end of file diff --git a/compiler/testData/writeFlags/property/classObject/trait/internalVar.kt b/compiler/testData/writeFlags/property/classObject/trait/internalVar.kt index e75fc3a8520..15570713906 100644 --- a/compiler/testData/writeFlags/property/classObject/trait/internalVar.kt +++ b/compiler/testData/writeFlags/property/classObject/trait/internalVar.kt @@ -1,6 +1,6 @@ interface Test { companion object { - var prop: Int = 0; + internal var prop: Int = 0; } } @@ -10,4 +10,4 @@ interface Test { // TESTED_OBJECT_KIND: property // TESTED_OBJECTS: Test$Companion, prop -// FLAGS: ACC_PRIVATE, ACC_STATIC +// FLAGS: ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC diff --git a/compiler/testData/writeFlags/property/classObject/trait/internalVarPrivateSet.kt b/compiler/testData/writeFlags/property/classObject/trait/internalVarPrivateSet.kt index a40dfe660bc..aded35e1d0e 100644 --- a/compiler/testData/writeFlags/property/classObject/trait/internalVarPrivateSet.kt +++ b/compiler/testData/writeFlags/property/classObject/trait/internalVarPrivateSet.kt @@ -1,6 +1,6 @@ interface Test { companion object { - var prop: Int = 0 + internal var prop: Int = 0 private set } } @@ -11,4 +11,4 @@ interface Test { // TESTED_OBJECT_KIND: property // TESTED_OBJECTS: Test$Companion, prop -// FLAGS: ACC_PRIVATE, ACC_STATIC \ No newline at end of file +// FLAGS: ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC \ No newline at end of file diff --git a/compiler/testData/writeFlags/property/classObject/trait/publicConstVal.kt b/compiler/testData/writeFlags/property/classObject/trait/publicConstVal.kt new file mode 100644 index 00000000000..8ec4a97d406 --- /dev/null +++ b/compiler/testData/writeFlags/property/classObject/trait/publicConstVal.kt @@ -0,0 +1,13 @@ +interface Test { + companion object { + public const val prop: Int = 0; + } +} + +// TESTED_OBJECT_KIND: property +// TESTED_OBJECTS: Test, prop +// FLAGS: ACC_STATIC, ACC_PUBLIC, ACC_FINAL + +// TESTED_OBJECT_KIND: property +// TESTED_OBJECTS: Test$Companion, prop +// FLAGS: ACC_PUBLIC, ACC_FINAL, ACC_STATIC \ No newline at end of file diff --git a/compiler/testData/writeFlags/property/classObject/trait/publicVal.kt b/compiler/testData/writeFlags/property/classObject/trait/publicVal.kt index f39d344eb04..f87cadd1322 100644 --- a/compiler/testData/writeFlags/property/classObject/trait/publicVal.kt +++ b/compiler/testData/writeFlags/property/classObject/trait/publicVal.kt @@ -6,7 +6,7 @@ interface Test { // TESTED_OBJECT_KIND: property // TESTED_OBJECTS: Test, prop -// FLAGS: ACC_STATIC, ACC_PUBLIC, ACC_FINAL +// ABSENT: TRUE // TESTED_OBJECT_KIND: property // TESTED_OBJECTS: Test$Companion, prop diff --git a/compiler/tests/org/jetbrains/kotlin/checkers/BaseDiagnosticsTest.java b/compiler/tests/org/jetbrains/kotlin/checkers/BaseDiagnosticsTest.java index 085a7103a95..35c76e65597 100644 --- a/compiler/tests/org/jetbrains/kotlin/checkers/BaseDiagnosticsTest.java +++ b/compiler/tests/org/jetbrains/kotlin/checkers/BaseDiagnosticsTest.java @@ -72,8 +72,8 @@ public abstract class BaseDiagnosticsTest extends public static final String CHECK_TYPE_IMPORT = "import " + CHECK_TYPE_PACKAGE + ".*"; public static final String EXPLICIT_FLEXIBLE_TYPES_DIRECTIVE = "EXPLICIT_FLEXIBLE_TYPES"; - public static final String EXPLICIT_FLEXIBLE_PACKAGE = Flexibility.FLEXIBLE_TYPE_CLASSIFIER.getPackageFqName().asString(); - public static final String EXPLICIT_FLEXIBLE_CLASS_NAME = Flexibility.FLEXIBLE_TYPE_CLASSIFIER.getRelativeClassName().asString(); + public static final String EXPLICIT_FLEXIBLE_PACKAGE = Flexibility.Companion.getFLEXIBLE_TYPE_CLASSIFIER().getPackageFqName().asString(); + public static final String EXPLICIT_FLEXIBLE_CLASS_NAME = Flexibility.Companion.getFLEXIBLE_TYPE_CLASSIFIER().getRelativeClassName().asString(); private static final String EXPLICIT_FLEXIBLE_TYPES_DECLARATIONS = "\npackage " + EXPLICIT_FLEXIBLE_PACKAGE + "\npublic class " + EXPLICIT_FLEXIBLE_CLASS_NAME + ""; diff --git a/compiler/tests/org/jetbrains/kotlin/codegen/GenerationUtils.java b/compiler/tests/org/jetbrains/kotlin/codegen/GenerationUtils.java index 8e490b59c04..18c69cee7c1 100644 --- a/compiler/tests/org/jetbrains/kotlin/codegen/GenerationUtils.java +++ b/compiler/tests/org/jetbrains/kotlin/codegen/GenerationUtils.java @@ -54,7 +54,7 @@ public class GenerationUtils { @NotNull public static GenerationState compileManyFilesGetGenerationStateForTest(@NotNull Project project, @NotNull List files) { - return compileManyFilesGetGenerationStateForTest(project, files, PackagePartProvider.EMPTY); + return compileManyFilesGetGenerationStateForTest(project, files, PackagePartProvider.Companion.getEMPTY()); } @NotNull diff --git a/compiler/tests/org/jetbrains/kotlin/codegen/flags/WriteFlagsTestGenerated.java b/compiler/tests/org/jetbrains/kotlin/codegen/flags/WriteFlagsTestGenerated.java index 328743b172e..0db8ae31bd9 100644 --- a/compiler/tests/org/jetbrains/kotlin/codegen/flags/WriteFlagsTestGenerated.java +++ b/compiler/tests/org/jetbrains/kotlin/codegen/flags/WriteFlagsTestGenerated.java @@ -779,6 +779,12 @@ public class WriteFlagsTestGenerated extends AbstractWriteFlagsTest { doTest(fileName); } + @TestMetadata("internalConstVal.kt") + public void testInternalConstVal() throws Exception { + String fileName = JetTestUtils.navigationMetadata("compiler/testData/writeFlags/property/classObject/trait/internalConstVal.kt"); + doTest(fileName); + } + @TestMetadata("internalVal.kt") public void testInternalVal() throws Exception { String fileName = JetTestUtils.navigationMetadata("compiler/testData/writeFlags/property/classObject/trait/internalVal.kt"); @@ -827,6 +833,12 @@ public class WriteFlagsTestGenerated extends AbstractWriteFlagsTest { doTest(fileName); } + @TestMetadata("publicConstVal.kt") + public void testPublicConstVal() throws Exception { + String fileName = JetTestUtils.navigationMetadata("compiler/testData/writeFlags/property/classObject/trait/publicConstVal.kt"); + doTest(fileName); + } + @TestMetadata("publicVal.kt") public void testPublicVal() throws Exception { String fileName = JetTestUtils.navigationMetadata("compiler/testData/writeFlags/property/classObject/trait/publicVal.kt"); diff --git a/compiler/tests/org/jetbrains/kotlin/resolve/lazy/JvmResolveUtil.java b/compiler/tests/org/jetbrains/kotlin/resolve/lazy/JvmResolveUtil.java index 48a22cdd70c..abdc0f147a4 100644 --- a/compiler/tests/org/jetbrains/kotlin/resolve/lazy/JvmResolveUtil.java +++ b/compiler/tests/org/jetbrains/kotlin/resolve/lazy/JvmResolveUtil.java @@ -37,7 +37,7 @@ public class JvmResolveUtil { public static String TEST_MODULE_NAME = "java-integration-test"; @NotNull public static AnalysisResult analyzeOneFileWithJavaIntegrationAndCheckForErrors(@NotNull JetFile file) { - return analyzeOneFileWithJavaIntegrationAndCheckForErrors(file, PackagePartProvider.EMPTY); + return analyzeOneFileWithJavaIntegrationAndCheckForErrors(file, PackagePartProvider.Companion.getEMPTY()); } @NotNull @@ -63,7 +63,7 @@ public class JvmResolveUtil { @NotNull public static AnalysisResult analyzeOneFileWithJavaIntegration(@NotNull JetFile file) { - return analyzeOneFileWithJavaIntegration(file, PackagePartProvider.EMPTY); + return analyzeOneFileWithJavaIntegration(file, PackagePartProvider.Companion.getEMPTY()); } @NotNull @@ -71,7 +71,7 @@ public class JvmResolveUtil { @NotNull Project project, @NotNull Collection files ) { - return analyzeFilesWithJavaIntegrationAndCheckForErrors(project, files, PackagePartProvider.EMPTY); + return analyzeFilesWithJavaIntegrationAndCheckForErrors(project, files, PackagePartProvider.Companion.getEMPTY()); } @NotNull diff --git a/compiler/tests/org/jetbrains/kotlin/test/JetTestUtils.java b/compiler/tests/org/jetbrains/kotlin/test/JetTestUtils.java index 96db1c32eb5..ac35a27402b 100644 --- a/compiler/tests/org/jetbrains/kotlin/test/JetTestUtils.java +++ b/compiler/tests/org/jetbrains/kotlin/test/JetTestUtils.java @@ -125,7 +125,7 @@ public class JetTestUtils { @NotNull @Override public Diagnostics getDiagnostics() { - return Diagnostics.EMPTY; + return Diagnostics.Companion.getEMPTY(); } @Override diff --git a/core/descriptors/src/org/jetbrains/kotlin/renderer/DescriptorRenderer.kt b/core/descriptors/src/org/jetbrains/kotlin/renderer/DescriptorRenderer.kt index 6862ff181a7..ef154732dfb 100644 --- a/core/descriptors/src/org/jetbrains/kotlin/renderer/DescriptorRenderer.kt +++ b/core/descriptors/src/org/jetbrains/kotlin/renderer/DescriptorRenderer.kt @@ -26,36 +26,36 @@ import org.jetbrains.kotlin.types.JetType import org.jetbrains.kotlin.types.TypeConstructor import org.jetbrains.kotlin.types.TypeProjection -public interface DescriptorRenderer : Renderer { +public abstract class DescriptorRenderer : Renderer { public fun withOptions(changeOptions: DescriptorRendererOptions.() -> Unit): DescriptorRenderer { val options = (this as DescriptorRendererImpl).options.copy() options.changeOptions() options.lock() return DescriptorRendererImpl(options) } - - public fun renderType(type: JetType): String - public fun renderTypeArguments(typeArguments: List): String + public abstract fun renderType(type: JetType): String - public fun renderTypeProjection(typeProjection: TypeProjection): String + public abstract fun renderTypeArguments(typeArguments: List): String - public fun renderTypeConstructor(typeConstructor: TypeConstructor): String + public abstract fun renderTypeProjection(typeProjection: TypeProjection): String - public fun renderClassifierName(klass: ClassifierDescriptor): String + public abstract fun renderTypeConstructor(typeConstructor: TypeConstructor): String - public fun renderAnnotation(annotation: AnnotationDescriptor, target: AnnotationUseSiteTarget? = null): String + public abstract fun renderClassifierName(klass: ClassifierDescriptor): String - override fun render(declarationDescriptor: DeclarationDescriptor): String + public abstract fun renderAnnotation(annotation: AnnotationDescriptor, target: AnnotationUseSiteTarget? = null): String - public fun renderValueParameters(parameters: Collection, synthesizedParameterNames: Boolean): String + override abstract fun render(declarationDescriptor: DeclarationDescriptor): String + + public abstract fun renderValueParameters(parameters: Collection, synthesizedParameterNames: Boolean): String public fun renderFunctionParameters(functionDescriptor: FunctionDescriptor): String = renderValueParameters(functionDescriptor.valueParameters, functionDescriptor.hasSynthesizedParameterNames()) - public fun renderName(name: Name): String + public abstract fun renderName(name: Name): String - public fun renderFqName(fqName: FqNameBase): String + public abstract fun renderFqName(fqName: FqNameBase): String public interface ValueParametersHandler { public fun appendBeforeValueParameters(parameterCount: Int, builder: StringBuilder) diff --git a/core/descriptors/src/org/jetbrains/kotlin/renderer/DescriptorRendererImpl.kt b/core/descriptors/src/org/jetbrains/kotlin/renderer/DescriptorRendererImpl.kt index 727b5256a70..9b5d480cb72 100644 --- a/core/descriptors/src/org/jetbrains/kotlin/renderer/DescriptorRendererImpl.kt +++ b/core/descriptors/src/org/jetbrains/kotlin/renderer/DescriptorRendererImpl.kt @@ -40,7 +40,7 @@ import java.util.* internal class DescriptorRendererImpl( val options: DescriptorRendererOptionsImpl -) : DescriptorRenderer, DescriptorRendererOptions by options/* this gives access to options without qualifier */ { +) : DescriptorRenderer(), DescriptorRendererOptions by options/* this gives access to options without qualifier */ { init { assert(options.isLocked) diff --git a/core/descriptors/src/org/jetbrains/kotlin/resolve/DescriptorUtils.java b/core/descriptors/src/org/jetbrains/kotlin/resolve/DescriptorUtils.java index fab362487d9..6d4037bd760 100644 --- a/core/descriptors/src/org/jetbrains/kotlin/resolve/DescriptorUtils.java +++ b/core/descriptors/src/org/jetbrains/kotlin/resolve/DescriptorUtils.java @@ -306,7 +306,7 @@ public class DescriptorUtils { } public static boolean isInterfaceCompanionObject(@NotNull DeclarationDescriptor descriptor) { - return isCompanionObject(descriptor) && isKindOf(descriptor.getContainingDeclaration(), ClassKind.INTERFACE); + return isCompanionObject(descriptor) && isInterface(descriptor.getContainingDeclaration()); } public static boolean isObject(@NotNull DeclarationDescriptor descriptor) { diff --git a/idea/src/org/jetbrains/kotlin/idea/debugger/evaluate/KotlinEvaluationBuilder.kt b/idea/src/org/jetbrains/kotlin/idea/debugger/evaluate/KotlinEvaluationBuilder.kt index e78517a9fd4..620fe5eb8d1 100644 --- a/idea/src/org/jetbrains/kotlin/idea/debugger/evaluate/KotlinEvaluationBuilder.kt +++ b/idea/src/org/jetbrains/kotlin/idea/debugger/evaluate/KotlinEvaluationBuilder.kt @@ -352,7 +352,7 @@ class KotlinEvaluator(val codeFragment: JetCodeFragment, val (bindingContext, moduleDescriptor, files) = jetFile.checkForErrors(true) - val generateClassFilter = object : GenerationState.GenerateClassFilter { + val generateClassFilter = object : GenerationState.GenerateClassFilter() { override fun shouldGeneratePackagePart(file: JetFile) = file == jetFile override fun shouldAnnotateClass(classOrObject: JetClassOrObject) = true override fun shouldGenerateClass(classOrObject: JetClassOrObject) = classOrObject.getContainingJetFile() == jetFile diff --git a/idea/src/org/jetbrains/kotlin/idea/liveTemplates/macro/JetAnonymousSuperMacro.java b/idea/src/org/jetbrains/kotlin/idea/liveTemplates/macro/JetAnonymousSuperMacro.java index 2c913a9e16b..734b9a5f06d 100644 --- a/idea/src/org/jetbrains/kotlin/idea/liveTemplates/macro/JetAnonymousSuperMacro.java +++ b/idea/src/org/jetbrains/kotlin/idea/liveTemplates/macro/JetAnonymousSuperMacro.java @@ -102,7 +102,7 @@ public class JetAnonymousSuperMacro extends Macro { List result = new ArrayList(); - for (DeclarationDescriptor descriptor : scope.getDescriptors(DescriptorKindFilter.NON_SINGLETON_CLASSIFIERS, JetScope.ALL_NAME_FILTER)) { + for (DeclarationDescriptor descriptor : scope.getDescriptors(DescriptorKindFilter.NON_SINGLETON_CLASSIFIERS, JetScope.Companion.getALL_NAME_FILTER())) { if (!(descriptor instanceof ClassDescriptor)) continue; ClassDescriptor classDescriptor = (ClassDescriptor) descriptor; if (!classDescriptor.getModality().isOverridable()) continue; diff --git a/idea/testData/findUsages/kotlin/findPropertyUsages/kotlinClassObjectPropertyUsage.0.kt b/idea/testData/findUsages/kotlin/findPropertyUsages/kotlinClassObjectPropertyUsage.0.kt index 15a2aee3f37..3b367f90916 100644 --- a/idea/testData/findUsages/kotlin/findPropertyUsages/kotlinClassObjectPropertyUsage.0.kt +++ b/idea/testData/findUsages/kotlin/findPropertyUsages/kotlinClassObjectPropertyUsage.0.kt @@ -4,7 +4,7 @@ package server interface Some { companion object { - val XX = 1 + const val XX = 1 } } diff --git a/idea/testData/resolve/referenceInJava/dependencies.kt b/idea/testData/resolve/referenceInJava/dependencies.kt index 3e86151f951..999db0d9b7f 100644 --- a/idea/testData/resolve/referenceInJava/dependencies.kt +++ b/idea/testData/resolve/referenceInJava/dependencies.kt @@ -27,7 +27,7 @@ public object KotlinObject { public interface StaticFieldInClassObjectInTrait { companion object { - public val XX: String = "xx" + public const val XX: String = "xx" } } diff --git a/jps-plugin/testData/incremental/pureKotlin/traitClassObjectConstantChanged/const.kt b/jps-plugin/testData/incremental/pureKotlin/traitClassObjectConstantChanged/const.kt index 6d7566e3856..0fe79d3540c 100644 --- a/jps-plugin/testData/incremental/pureKotlin/traitClassObjectConstantChanged/const.kt +++ b/jps-plugin/testData/incremental/pureKotlin/traitClassObjectConstantChanged/const.kt @@ -3,6 +3,6 @@ package test interface Trait { companion object { // Old and new constant values are different, but their hashes are the same - val CONST = "BF" + const val CONST = "BF" } }