diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/FunctionCodegen.java b/compiler/backend/src/org/jetbrains/kotlin/codegen/FunctionCodegen.java index 9b80e90ecc0..0f75d5be47b 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/FunctionCodegen.java +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/FunctionCodegen.java @@ -221,8 +221,6 @@ public class FunctionCodegen { } endVisit(mv, null, origin.getElement()); - - methodContext.recordSyntheticAccessorIfNeeded(functionDescriptor, bindingContext); } private void generateMethodAnnotations( diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/ImplementationBodyCodegen.java b/compiler/backend/src/org/jetbrains/kotlin/codegen/ImplementationBodyCodegen.java index c777d4f733e..141d6d57b0c 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/ImplementationBodyCodegen.java +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/ImplementationBodyCodegen.java @@ -958,10 +958,6 @@ public class ImplementationBodyCodegen extends ClassBodyCodegen { DefaultParameterValueLoader.DEFAULT, null); new DefaultParameterValueSubstitutor(state).generatePrimaryConstructorOverloadsIfNeeded(constructorDescriptor, v, kind, myClass); - - if (isCompanionObject(descriptor)) { - context.recordSyntheticAccessorIfNeeded(constructorDescriptor, bindingContext); - } } private void generateSecondaryConstructor(@NotNull ConstructorDescriptor constructorDescriptor) { diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/PropertyCodegen.java b/compiler/backend/src/org/jetbrains/kotlin/codegen/PropertyCodegen.java index dd92fc2cd31..251013603ed 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/PropertyCodegen.java +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/PropertyCodegen.java @@ -127,8 +127,6 @@ public class PropertyCodegen { if (isAccessorNeeded(declaration, descriptor, setter)) { generateSetter(declaration, descriptor, setter); } - - context.recordSyntheticAccessorIfNeeded(descriptor, bindingContext); } private void genBackingFieldAndAnnotations(@NotNull KtNamedDeclaration declaration, @NotNull PropertyDescriptor descriptor, boolean isParameter) { diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/context/CodegenContext.java b/compiler/backend/src/org/jetbrains/kotlin/codegen/context/CodegenContext.java index 1ebc7fc0f7e..92e912eeff1 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/context/CodegenContext.java +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/context/CodegenContext.java @@ -37,7 +37,6 @@ import org.jetbrains.org.objectweb.asm.Type; import java.util.*; import static org.jetbrains.kotlin.codegen.AsmUtil.getVisibilityAccessFlag; -import static org.jetbrains.kotlin.resolve.BindingContext.NEED_SYNTHETIC_ACCESSOR; import static org.jetbrains.org.objectweb.asm.Opcodes.ACC_PRIVATE; import static org.jetbrains.org.objectweb.asm.Opcodes.ACC_PROTECTED; @@ -523,13 +522,6 @@ public abstract class CodegenContext { return accessibleDescriptorIfNeeded(descriptor, superCallTarget, isInliningContext); } - public void recordSyntheticAccessorIfNeeded(@NotNull CallableMemberDescriptor descriptor, @NotNull BindingContext bindingContext) { - if (hasThisDescriptor() && Boolean.TRUE.equals(bindingContext.get(NEED_SYNTHETIC_ACCESSOR, descriptor))) { - // Not a super call because neither constructors nor private members can be targets of super calls - accessibleDescriptorIfNeeded(descriptor, /* superCallTarget = */ null, false); - } - } - @SuppressWarnings("unchecked") @NotNull private D accessibleDescriptorIfNeeded( diff --git a/compiler/frontend.java/src/org/jetbrains/kotlin/resolve/jvm/checkers/NeedSyntheticChecker.java b/compiler/frontend.java/src/org/jetbrains/kotlin/resolve/jvm/checkers/NeedSyntheticChecker.java deleted file mode 100644 index a58ebf02956..00000000000 --- a/compiler/frontend.java/src/org/jetbrains/kotlin/resolve/jvm/checkers/NeedSyntheticChecker.java +++ /dev/null @@ -1,59 +0,0 @@ -/* - * Copyright 2010-2015 JetBrains s.r.o. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jetbrains.kotlin.resolve.jvm.checkers; - -import org.jetbrains.annotations.NotNull; -import org.jetbrains.kotlin.descriptors.CallableDescriptor; -import org.jetbrains.kotlin.descriptors.CallableMemberDescriptor; -import org.jetbrains.kotlin.descriptors.PropertyDescriptor; -import org.jetbrains.kotlin.descriptors.Visibilities; -import org.jetbrains.kotlin.resolve.calls.checkers.CallChecker; -import org.jetbrains.kotlin.resolve.calls.context.BasicCallResolutionContext; -import org.jetbrains.kotlin.resolve.calls.model.ResolvedCall; -import org.jetbrains.kotlin.resolve.scopes.LexicalScope; - -import static org.jetbrains.kotlin.resolve.BindingContext.NEED_SYNTHETIC_ACCESSOR; - -public class NeedSyntheticChecker implements CallChecker { - - @Override - public void check( - @NotNull ResolvedCall resolvedCall, - @NotNull BasicCallResolutionContext context - ) { - CallableDescriptor targetDescriptor = resolvedCall.getResultingDescriptor(); - if (needSyntheticAccessor(context.scope, targetDescriptor)) { - context.trace.record(NEED_SYNTHETIC_ACCESSOR, (CallableMemberDescriptor) targetDescriptor.getOriginal(), Boolean.TRUE); - } - } - - //Necessary synthetic accessors in outer classes generated via old logic: CodegenContext.getAccessor - //Generation of accessors in nested classes (to invoke from outer, - // e.g.: from class to companion object) controlled via NEED_SYNTHETIC_ACCESSOR slice - private static boolean needSyntheticAccessor(LexicalScope invokationScope, CallableDescriptor targetDescriptor) { - return targetDescriptor instanceof CallableMemberDescriptor && - isPrivate(targetDescriptor) && - targetDescriptor.getContainingDeclaration() != invokationScope.getOwnerDescriptor().getContainingDeclaration(); - } - - private static boolean isPrivate(@NotNull CallableDescriptor targetDescriptor) { - return Visibilities.isPrivate(targetDescriptor.getVisibility()) || - (targetDescriptor instanceof PropertyDescriptor && - ((PropertyDescriptor) targetDescriptor).getSetter() != null && - Visibilities.isPrivate(((PropertyDescriptor) targetDescriptor).getSetter().getVisibility())); - } -} diff --git a/compiler/frontend.java/src/org/jetbrains/kotlin/resolve/jvm/platform/JvmPlatformConfigurator.kt b/compiler/frontend.java/src/org/jetbrains/kotlin/resolve/jvm/platform/JvmPlatformConfigurator.kt index 2511c1fb9a0..6c4ef922a7c 100644 --- a/compiler/frontend.java/src/org/jetbrains/kotlin/resolve/jvm/platform/JvmPlatformConfigurator.kt +++ b/compiler/frontend.java/src/org/jetbrains/kotlin/resolve/jvm/platform/JvmPlatformConfigurator.kt @@ -43,7 +43,6 @@ public object JvmPlatformConfigurator : PlatformConfigurator( ), additionalCallCheckers = listOf( - NeedSyntheticChecker(), JavaAnnotationCallChecker(), TraitDefaultMethodCallChecker(), JavaClassOnCompanionChecker(), diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/BindingContext.java b/compiler/frontend/src/org/jetbrains/kotlin/resolve/BindingContext.java index c7906e03ca2..43bb93638d4 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/BindingContext.java +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/BindingContext.java @@ -153,8 +153,6 @@ public interface BindingContext { WritableSlice CAPTURED_IN_CLOSURE = new BasicWritableSlice(DO_NOTHING); WritableSlice PRELIMINARY_VISITOR = new BasicWritableSlice(DO_NOTHING); - WritableSlice NEED_SYNTHETIC_ACCESSOR = new BasicWritableSlice(DO_NOTHING); - WritableSlice, Boolean> DEFERRED_TYPE = Slices.createCollectiveSetSlice(); WritableSlice BACKING_FIELD_REQUIRED = new Slices.SetSlice(DO_NOTHING) {