diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/BindingContext.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/BindingContext.java index 32b665e3c4a..c0dffed46f9 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/BindingContext.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/BindingContext.java @@ -166,18 +166,12 @@ public interface BindingContext { if (propertyDescriptor.getModality() == Modality.ABSTRACT) return false; PropertyGetterDescriptor getter = propertyDescriptor.getGetter(); PropertySetterDescriptor setter = propertyDescriptor.getSetter(); - if (getter == null) { - return true; - } - else if (propertyDescriptor.isVar() && setter == null) { - return true; - } - else if (setter != null && !setter.hasBody() && setter.getModality() != Modality.ABSTRACT) { - return true; - } - else if (!getter.hasBody() && getter.getModality() != Modality.ABSTRACT) { - return true; - } + + if (getter == null) return true; + if (propertyDescriptor.isVar() && setter == null) return true; + if (setter != null && !setter.hasBody() && setter.getModality() != Modality.ABSTRACT) return true; + if (!getter.hasBody() && getter.getModality() != Modality.ABSTRACT) return true; + return backingFieldRequired; } }; diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/LazyTopDownAnalyzer.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/LazyTopDownAnalyzer.java index b1ac89f01ee..d2994aee66f 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/LazyTopDownAnalyzer.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/LazyTopDownAnalyzer.java @@ -39,19 +39,29 @@ import static org.jetbrains.jet.lang.diagnostics.Errors.MANY_CLASS_OBJECTS; import static org.jetbrains.jet.lang.diagnostics.Errors.UNSUPPORTED; public class LazyTopDownAnalyzer { + @SuppressWarnings("ConstantConditions") + @NotNull + private BindingTrace trace = null; + @SuppressWarnings("ConstantConditions") @NotNull - private BindingTrace trace; + private DeclarationResolver declarationResolver = null; + + @SuppressWarnings("ConstantConditions") @NotNull - private DeclarationResolver declarationResolver; + private OverrideResolver overrideResolver = null; + + @SuppressWarnings("ConstantConditions") @NotNull - private OverrideResolver overrideResolver; + private OverloadResolver overloadResolver = null; + + @SuppressWarnings("ConstantConditions") @NotNull - private OverloadResolver overloadResolver; + private ModuleDescriptor moduleDescriptor = null; + + @SuppressWarnings("ConstantConditions") @NotNull - private ModuleDescriptor moduleDescriptor; - @NotNull - private BodyResolver bodyResolver; + private BodyResolver bodyResolver = null; @Inject public void setTrace(@NotNull BindingTrace trace) { diff --git a/idea/tests/org/jetbrains/jet/completion/JetFixtureCompletionBaseTestCase.java b/idea/tests/org/jetbrains/jet/completion/JetFixtureCompletionBaseTestCase.java index ff916f6ae08..ee6f63cbe33 100644 --- a/idea/tests/org/jetbrains/jet/completion/JetFixtureCompletionBaseTestCase.java +++ b/idea/tests/org/jetbrains/jet/completion/JetFixtureCompletionBaseTestCase.java @@ -52,7 +52,7 @@ public abstract class JetFixtureCompletionBaseTestCase extends JetLightCodeInsig oldValue = settings.AUTOCOMPLETE_ON_SMART_TYPE_COMPLETION; settings.AUTOCOMPLETE_ON_SMART_TYPE_COMPLETION = value; } - else{ + else { oldValue = settings.AUTOCOMPLETE_COMMON_PREFIX; settings.AUTOCOMPLETE_ON_CODE_COMPLETION = value; } diff --git a/idea/tests/org/jetbrains/jet/plugin/refactoring/changeSignature/JetChangeSignatureTest.java b/idea/tests/org/jetbrains/jet/plugin/refactoring/changeSignature/JetChangeSignatureTest.java index bfec2179ce0..1ca9c683545 100644 --- a/idea/tests/org/jetbrains/jet/plugin/refactoring/changeSignature/JetChangeSignatureTest.java +++ b/idea/tests/org/jetbrains/jet/plugin/refactoring/changeSignature/JetChangeSignatureTest.java @@ -259,20 +259,25 @@ public class JetChangeSignatureTest extends KotlinCodeInsightTestCase { private JetChangeInfo getChangeInfo() throws Exception { configureByFile(getTestName(false) + "Before.kt"); + Editor editor = getEditor(); PsiFile file = getFile(); + Project project = getProject(); + JetElement element = (JetElement) new JetChangeSignatureHandler().findTargetMember(file, editor); assertNotNull("Target element is null", element); - Project project = getProject(); - BindingContext bindingContext = - AnalyzerFacadeWithCache.getContextForElement(element); + + BindingContext bindingContext = AnalyzerFacadeWithCache.getContextForElement(element); PsiElement context = file.findElementAt(editor.getCaretModel().getOffset()); assertNotNull(context); + FunctionDescriptor functionDescriptor = JetChangeSignatureHandler.findDescriptor(element, project, editor, bindingContext); assertNotNull(functionDescriptor); - JetChangeSignatureDialog dialog = getChangeSignatureDialog(project, functionDescriptor, - JetChangeSignatureHandler.getConfiguration(), bindingContext, context); + + JetChangeSignatureDialog dialog = getChangeSignatureDialog( + project, functionDescriptor, JetChangeSignatureHandler.getConfiguration(), bindingContext, context); assertNotNull(dialog); + dialog.canRun(); Disposer.register(getTestRootDisposable(), dialog.getDisposable()); return dialog.evaluateChangeInfo();