IDEA-169028 Broken auto-import completion inside lambda

This commit is contained in:
peter
2017-03-03 17:12:02 +01:00
parent b402326c99
commit 246d10ad26
4 changed files with 23 additions and 3 deletions
@@ -125,13 +125,13 @@ public class JavaChainLookupElement extends LookupElementDecorator<LookupElement
document.insertString(qualifierContext.getTailOffset(), space + ")");
}
final char atTail = document.getCharsSequence().charAt(context.getTailOffset() - 1);
char atTail = document.getCharsSequence().charAt(qualifierContext.getTailOffset());
if (atTail != ';') {
return;
}
document.replaceString(context.getTailOffset() - 1, context.getTailOffset(), ".");
document.replaceString(qualifierContext.getTailOffset(), qualifierContext.getTailOffset() + 1, ".");
CompletionUtil.emulateInsertion(getDelegate(), context.getTailOffset(), context);
CompletionUtil.emulateInsertion(getDelegate(), qualifierContext.getTailOffset() + 1, context);
context.commitDocument();
int formatStart = context.getOffset(oldStart);
@@ -0,0 +1,6 @@
public class SomeClass {
private void b() {
a(i -> PathUtil.toS<caret>s + "Hello");
}
}
@@ -0,0 +1,8 @@
import pkg.PathUtil;
public class SomeClass {
private void b() {
a(i -> PathUtil.toSystemDependentName()<caret> s + "Hello");
}
}
@@ -1763,4 +1763,10 @@ class Bar {
checkResultByFile(getTestName(false) + ".java")
}
void testChainInLambdaBinary() {
codeStyleSettings.ALIGN_MULTILINE_BINARY_OPERATION = true
myFixture.addClass("package pkg; public class PathUtil { public static String toSystemDependentName() {} }")
doTest('\n')
}
}