diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/AccessorForFunctionDescriptor.java b/compiler/backend/src/org/jetbrains/kotlin/codegen/AccessorForFunctionDescriptor.java index d91e4d01c26..d5e77bc16a6 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/AccessorForFunctionDescriptor.java +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/AccessorForFunctionDescriptor.java @@ -48,11 +48,6 @@ public class AccessorForFunctionDescriptor extends AbstractAccessorForFunctionDe descriptor.getReturnType(), Modality.FINAL, Visibilities.LOCAL); - setOperator(descriptor.isOperator()); - setInfix(descriptor.isInfix()); - setExternal(descriptor.isExternal()); - setInline(descriptor.isInline()); - setTailrec(descriptor.isTailrec()); } @NotNull diff --git a/compiler/frontend.java/src/org/jetbrains/kotlin/load/kotlin/native.kt b/compiler/frontend.java/src/org/jetbrains/kotlin/load/kotlin/native.kt index fe3051e4b72..a79b2420222 100644 --- a/compiler/frontend.java/src/org/jetbrains/kotlin/load/kotlin/native.kt +++ b/compiler/frontend.java/src/org/jetbrains/kotlin/load/kotlin/native.kt @@ -33,7 +33,6 @@ private val NATIVE_ANNOTATION_CLASS_NAME = FqName("kotlin.jvm.native") public fun DeclarationDescriptor.hasNativeAnnotation(): Boolean { return this is FunctionDescriptor && this.isExternal - || this is PropertyAccessorDescriptor && this.isExternal || annotations.findAnnotation(NATIVE_ANNOTATION_CLASS_NAME) != null } diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/AnnotationResolver.java b/compiler/frontend/src/org/jetbrains/kotlin/resolve/AnnotationResolver.java index 8d4d8faf304..1de3597ed50 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/AnnotationResolver.java +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/AnnotationResolver.java @@ -114,8 +114,7 @@ public class AnnotationResolver { return Annotations.Companion.getEMPTY(); } - List annotationEntryElements = modifierList.getAnnotationEntries(); - return resolveAnnotationEntries(scope, annotationEntryElements, trace, shouldResolveArguments); + return resolveAnnotationEntries(scope, modifierList.getAnnotationEntries(), trace, shouldResolveArguments); } private Annotations resolveAnnotationEntries( diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/inline/InlineUtil.java b/compiler/frontend/src/org/jetbrains/kotlin/resolve/inline/InlineUtil.java index ecf5d2e636d..5960c12737c 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/inline/InlineUtil.java +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/inline/InlineUtil.java @@ -33,13 +33,8 @@ import org.jetbrains.kotlin.resolve.calls.model.ResolvedCall; public class InlineUtil { public static boolean isInlineLambdaParameter(@NotNull ParameterDescriptor valueParameterOrReceiver) { - boolean isNoinlineParameter = false; - - if (valueParameterOrReceiver instanceof ValueParameterDescriptor) { - isNoinlineParameter = ((ValueParameterDescriptor) valueParameterOrReceiver).isNoinline(); - } - - return !isNoinlineParameter && + return !(valueParameterOrReceiver instanceof ValueParameterDescriptor + && ((ValueParameterDescriptor) valueParameterOrReceiver).isNoinline()) && KotlinBuiltIns.isExactFunctionOrExtensionFunctionType(valueParameterOrReceiver.getOriginal().getType()); } diff --git a/core/descriptors/src/org/jetbrains/kotlin/descriptors/impl/FunctionDescriptorImpl.java b/core/descriptors/src/org/jetbrains/kotlin/descriptors/impl/FunctionDescriptorImpl.java index 2b1e286f46e..89e0a36e8f4 100644 --- a/core/descriptors/src/org/jetbrains/kotlin/descriptors/impl/FunctionDescriptorImpl.java +++ b/core/descriptors/src/org/jetbrains/kotlin/descriptors/impl/FunctionDescriptorImpl.java @@ -187,35 +187,17 @@ public abstract class FunctionDescriptorImpl extends DeclarationDescriptorNonRoo @Override public boolean isExternal() { - if (isExternal) return true; - - for (FunctionDescriptor descriptor : overriddenFunctions) { - if (descriptor.isExternal()) return true; - } - - return false; + return isExternal; } @Override public boolean isInline() { - if (isInline) return true; - - for (FunctionDescriptor descriptor : overriddenFunctions) { - if (descriptor.isInline()) return true; - } - - return false; + return isInline; } @Override public boolean isTailrec() { - if (isTailrec) return true; - - for (FunctionDescriptor descriptor : overriddenFunctions) { - if (descriptor.isTailrec()) return true; - } - - return false; + return isTailrec; } @Override diff --git a/core/descriptors/src/org/jetbrains/kotlin/descriptors/impl/ValueParameterDescriptorImpl.java b/core/descriptors/src/org/jetbrains/kotlin/descriptors/impl/ValueParameterDescriptorImpl.java index e6a68959b78..a3cbc8d4162 100644 --- a/core/descriptors/src/org/jetbrains/kotlin/descriptors/impl/ValueParameterDescriptorImpl.java +++ b/core/descriptors/src/org/jetbrains/kotlin/descriptors/impl/ValueParameterDescriptorImpl.java @@ -72,17 +72,17 @@ public class ValueParameterDescriptorImpl extends VariableDescriptorImpl impleme @Override public boolean declaresDefaultValue() { - return declaresDefaultValue && containingDeclarationIsReal(); + return declaresDefaultValue && ((CallableMemberDescriptor) getContainingDeclaration()).getKind().isReal(); } @Override public boolean isCrossinline() { - return isCrossinline && containingDeclarationIsReal(); + return isCrossinline; } @Override public boolean isNoinline() { - return isNoinline && containingDeclarationIsReal(); + return isNoinline; } @Nullable @@ -147,8 +147,4 @@ public class ValueParameterDescriptorImpl extends VariableDescriptorImpl impleme } }); } - - private boolean containingDeclarationIsReal() { - return ((CallableMemberDescriptor) getContainingDeclaration()).getKind().isReal(); - } } diff --git a/core/descriptors/src/org/jetbrains/kotlin/renderer/DescriptorRendererImpl.kt b/core/descriptors/src/org/jetbrains/kotlin/renderer/DescriptorRendererImpl.kt index 93b2241d724..29a2a2d6711 100644 --- a/core/descriptors/src/org/jetbrains/kotlin/renderer/DescriptorRendererImpl.kt +++ b/core/descriptors/src/org/jetbrains/kotlin/renderer/DescriptorRendererImpl.kt @@ -467,13 +467,13 @@ internal class DescriptorRendererImpl( if (functionDescriptor.isInfix && functionDescriptor.overriddenDescriptors.none { it.isInfix }) { builder.append("infix ") } - if (functionDescriptor.isExternal && functionDescriptor.overriddenDescriptors.none { it.isExternal }) { + if (functionDescriptor.isExternal) { builder.append("external ") } - if (functionDescriptor.isInline && functionDescriptor.overriddenDescriptors.none { it.isInline }) { + if (functionDescriptor.isInline) { builder.append("inline ") } - if (functionDescriptor.isTailrec && functionDescriptor.overriddenDescriptors.none { it.isTailrec }) { + if (functionDescriptor.isTailrec) { builder.append("tailrec ") } } @@ -853,7 +853,7 @@ internal class DescriptorRendererImpl( } private fun renderAccessorModifiers(descriptor: PropertyAccessorDescriptor, builder: StringBuilder) { - if (descriptor.isExternal && descriptor.overriddenDescriptors.none { it.isExternal }) { + if (descriptor.isExternal) { builder.append("external ") } } diff --git a/jps-plugin/testData/incremental/pureKotlin/fileWithInlineFunctionRemoved/build.log b/jps-plugin/testData/incremental/pureKotlin/fileWithInlineFunctionRemoved/build.log index 5d8302cd157..78dbad6abae 100644 --- a/jps-plugin/testData/incremental/pureKotlin/fileWithInlineFunctionRemoved/build.log +++ b/jps-plugin/testData/incremental/pureKotlin/fileWithInlineFunctionRemoved/build.log @@ -1,6 +1,6 @@ Cleaning output files: out/production/module/META-INF/module.kotlin_module -out/production/module/inline/InlineKt.class +out/production/module/test/InlineKt.class End of files Compiling files: End of files @@ -12,4 +12,4 @@ Compiling files: src/usage.kt End of files COMPILATION FAILED -Unresolved reference: inline \ No newline at end of file +Unresolved reference: test \ No newline at end of file diff --git a/jps-plugin/testData/incremental/pureKotlin/fileWithInlineFunctionRemoved/inline.kt b/jps-plugin/testData/incremental/pureKotlin/fileWithInlineFunctionRemoved/inline.kt index 80d71e901a3..fb5e59f5432 100644 --- a/jps-plugin/testData/incremental/pureKotlin/fileWithInlineFunctionRemoved/inline.kt +++ b/jps-plugin/testData/incremental/pureKotlin/fileWithInlineFunctionRemoved/inline.kt @@ -1,4 +1,4 @@ -package inline +package test inline fun f(body: () -> Unit) { println("i'm inline function") diff --git a/jps-plugin/testData/incremental/pureKotlin/fileWithInlineFunctionRemoved/usage.kt b/jps-plugin/testData/incremental/pureKotlin/fileWithInlineFunctionRemoved/usage.kt index 6e64d97cde2..98840f6537a 100644 --- a/jps-plugin/testData/incremental/pureKotlin/fileWithInlineFunctionRemoved/usage.kt +++ b/jps-plugin/testData/incremental/pureKotlin/fileWithInlineFunctionRemoved/usage.kt @@ -1,7 +1,7 @@ package usage fun main(args: Array) { - inline.f { + test.f { println("to be inlined") } }