diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/DescriptorResolver.java b/compiler/frontend/src/org/jetbrains/kotlin/resolve/DescriptorResolver.java index 365d875f311..090a730203c 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/DescriptorResolver.java +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/DescriptorResolver.java @@ -1241,7 +1241,6 @@ public class DescriptorResolver { getterType = determineGetterReturnType( scopeForDeclarationResolution, trace, getterDescriptor, getter, propertyTypeIfKnown, inferenceSession ); - trace.record(BindingContext.PROPERTY_ACCESSOR, getter, getterDescriptor); } else { getterDescriptor = DescriptorFactory.createGetter( @@ -1254,6 +1253,10 @@ public class DescriptorResolver { getterDescriptor.initialize(getterType != null ? getterType : VariableTypeAndInitializerResolver.getTypeForPropertyWithoutReturnType(propertyDescriptor.getName().asString())); + if (getter != null) { + trace.record(BindingContext.PROPERTY_ACCESSOR, getter, getterDescriptor); + } + return getterDescriptor; } diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/FunctionDescriptorResolver.kt b/compiler/frontend/src/org/jetbrains/kotlin/resolve/FunctionDescriptorResolver.kt index 1a43ce515f0..d3d864a8f1a 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/FunctionDescriptorResolver.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/FunctionDescriptorResolver.kt @@ -444,8 +444,6 @@ class FunctionDescriptorResolver( constructorDescriptor.isActual = modifierList?.hasActualModifier() == true || // We don't require 'actual' for constructors of actual annotations classDescriptor.kind == ClassKind.ANNOTATION_CLASS && classDescriptor.isActual - if (declarationToTrace is PsiElement) - trace.record(BindingContext.CONSTRUCTOR, declarationToTrace, constructorDescriptor) val parameterScope = LexicalWritableScope( scope, constructorDescriptor, @@ -466,6 +464,8 @@ class FunctionDescriptorResolver( if (DescriptorUtils.isAnnotationClass(classDescriptor)) { CompileTimeConstantUtils.checkConstructorParametersType(valueParameters, trace) } + if (declarationToTrace is PsiElement) + trace.record(BindingContext.CONSTRUCTOR, declarationToTrace, constructorDescriptor) return constructor }