diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/lazy/ResolveSessionUtils.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/lazy/ResolveSessionUtils.java index 06412a395f0..c04dcd9f3cb 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/lazy/ResolveSessionUtils.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/lazy/ResolveSessionUtils.java @@ -170,11 +170,20 @@ public class ResolveSessionUtils { bodyResolver.resolvePropertyInitializer(jetProperty, descriptor, propertyInitializer, propertyResolutionScope); } + addAccessorDeclaringScopes(jetProperty, bodyResolveContext, propertyResolutionScope); + bodyResolver.resolvePropertyAccessors(jetProperty, descriptor); + } + + private static void addAccessorDeclaringScopes( + JetProperty jetProperty, + EmptyBodyResolveContext bodyResolveContext, + JetScope propertyResolutionScope + ) { + ImmutableMap.Builder builder = ImmutableMap.builder(); for (final JetPropertyAccessor propertyAccessor : jetProperty.getAccessors()) { - bodyResolveContext.setDeclaringScopes( - ImmutableMap.builder().put(propertyAccessor, propertyResolutionScope).build()); - bodyResolver.resolvePropertyAccessors(jetProperty, descriptor); + builder.put(propertyAccessor, propertyResolutionScope); } + bodyResolveContext.setDeclaringScopes(builder.build()); } private static void functionAdditionalResolve( diff --git a/idea/testData/completion/basic/CompletionInSetter.kt b/idea/testData/completion/basic/CompletionInSetter.kt new file mode 100644 index 00000000000..a77a384356a --- /dev/null +++ b/idea/testData/completion/basic/CompletionInSetter.kt @@ -0,0 +1,10 @@ +val a: Int = 1 + get() { + return $a + } + set(v) { + $a = + } + + +// EXIST: a \ No newline at end of file diff --git a/idea/tests/org/jetbrains/jet/completion/JetBasicCompletionTest.java b/idea/tests/org/jetbrains/jet/completion/JetBasicCompletionTest.java index de6cebf97e5..82617ae5481 100644 --- a/idea/tests/org/jetbrains/jet/completion/JetBasicCompletionTest.java +++ b/idea/tests/org/jetbrains/jet/completion/JetBasicCompletionTest.java @@ -244,6 +244,10 @@ public class JetBasicCompletionTest extends JetCompletionTestBase { doTest(); } + public void testCompletionInSetter() { + doTest(); + } + @Override protected String getTestDataPath() { return new File(PluginTestCaseBase.getTestDataPathBase(), "/completion/basic").getPath() +