enable diamonds with anonymous (IDEA-139098)

This commit is contained in:
Anna Kozlova
2015-09-09 16:47:53 +03:00
parent ebdc625624
commit 9a6264dcc0
3 changed files with 18 additions and 1 deletions
@@ -121,7 +121,7 @@ public class PsiDiamondTypeImpl extends PsiDiamondType {
public static DiamondInferenceResult resolveInferredTypes(PsiNewExpression newExpression,
PsiElement context) {
final PsiAnonymousClass anonymousClass = newExpression.getAnonymousClass();
if (anonymousClass != null) {
if (anonymousClass != null && !PsiUtil.isLanguageLevel9OrHigher(newExpression)) {
final PsiElement resolve = anonymousClass.getBaseClassReference().resolve();
if (resolve instanceof PsiClass) {
return PsiDiamondTypeImpl.DiamondInferenceResult.ANONYMOUS_INNER_RESULT;
@@ -0,0 +1,15 @@
class Pos {
class Member<X> {}
static class Nested<X> {}
void testSimple() {
Member<?> m1 = new Member<>() {};
Nested<?> m2 = new Nested<>() {};
}
void testQualified() {
Member<?> m1 = this.new Member<>() {};
Nested<?> m2 = new Pos.Nested<>() {};
}
}
@@ -48,5 +48,7 @@ public class LightAdvHighlightingJdk9Test extends LightDaemonAnalyzerTestCase {
public void testUnderscore() { doTest(false, false); }
public void testTryWithResources() { doTest(false, false); }
public void testDiamondsWithAnonymous() { doTest(false, false);}
public void testValueTypes() { setLanguageLevel(LanguageLevel.JDK_X); doTest(false, false); }
}