diff --git a/java/java-psi-impl/src/com/intellij/psi/scope/util/PsiScopesUtil.java b/java/java-psi-impl/src/com/intellij/psi/scope/util/PsiScopesUtil.java index c2a4f13113cc..0ebd0893dadd 100644 --- a/java/java-psi-impl/src/com/intellij/psi/scope/util/PsiScopesUtil.java +++ b/java/java-psi-impl/src/com/intellij/psi/scope/util/PsiScopesUtil.java @@ -136,7 +136,7 @@ public class PsiScopesUtil { final PsiType upperBound = PsiClassImplUtil.correctType(((PsiCapturedWildcardType)type).getUpperBound(), place.getResolveScope()); if (upperBound != null) { - processTypeDeclarations(upperBound, place, processor); + processTypeDeclarations(PsiUtil.captureToplevelWildcards(upperBound, place), place, processor); } } else { @@ -368,7 +368,7 @@ public class PsiScopesUtil { final PsiType upperBound = PsiClassImplUtil.correctType(((PsiCapturedWildcardType)type).getUpperBound(), methodCall.getResolveScope()); if (upperBound != null) { - processQualifierType(upperBound, processor, manager, methodCall); + processQualifierType(PsiUtil.captureToplevelWildcards(upperBound, methodCall), processor, manager, methodCall); } } else { diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting8/CapturedWildcardPassedThroughMethodCallChain.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting8/CapturedWildcardPassedThroughMethodCallChain.java new file mode 100644 index 000000000000..5208754f1d44 --- /dev/null +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting8/CapturedWildcardPassedThroughMethodCallChain.java @@ -0,0 +1,16 @@ + +class TableModelBuilder> { + public Self addColumns() { + return null; + } + + public Self addAndGet() { + return null; + } + + public void leave() {} + + void foo(TableModelBuilder m) { + m.addColumns().addAndGet() .leave(); + } +} diff --git a/java/java-tests/testSrc/com/intellij/codeInsight/daemon/lambda/GenericsHighlighting8Test.java b/java/java-tests/testSrc/com/intellij/codeInsight/daemon/lambda/GenericsHighlighting8Test.java index ae6977d8a644..fa24d75aa9e1 100644 --- a/java/java-tests/testSrc/com/intellij/codeInsight/daemon/lambda/GenericsHighlighting8Test.java +++ b/java/java-tests/testSrc/com/intellij/codeInsight/daemon/lambda/GenericsHighlighting8Test.java @@ -970,4 +970,8 @@ public class GenericsHighlighting8Test extends LightDaemonAnalyzerTestCase { public void testCapturedWildcardPackageLocalAccess() throws Exception { doTest(); } + + public void testCapturedWildcardPassedThroughMethodCallChain() throws Exception { + doTest(); + } }