diff --git a/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/GroovyBundle.properties b/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/GroovyBundle.properties index 0aa2747c507e..58258caa5acf 100644 --- a/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/GroovyBundle.properties +++ b/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/GroovyBundle.properties @@ -231,7 +231,6 @@ dynamic.properties.table.no.arguments=Arguments list is empty. assignment.expected='=' expected tuple.cant.be.placed.in.class=Multiple assignments are not allowed for fields singleton.class.should.have.private.constructor=Class with '@Singleton' annotation should have private constructor -qualified.new.of.static.class=Qualified new of static class unknown.class=unknown class ''{0}'' is.not.enclosing.class=''{0}'' is not an enclosing class package.definition.cannot.have.modifiers=Package definition cannot have modifiers diff --git a/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/annotator/GroovyAnnotator.java b/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/annotator/GroovyAnnotator.java index 00dee1e90bd8..6804cadeb430 100644 --- a/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/annotator/GroovyAnnotator.java +++ b/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/annotator/GroovyAnnotator.java @@ -1236,12 +1236,6 @@ public class GroovyAnnotator extends GroovyElementVisitor { : GroovyBundle.message("cannot.instantiate.abstract.class", clazz.getName()); myHolder.createErrorAnnotation(refElement, message); } - return; - } - if (newExpression.getQualifier() != null) { - if (clazz.hasModifierProperty(PsiModifier.STATIC)) { - myHolder.createErrorAnnotation(newExpression, GroovyBundle.message("qualified.new.of.static.class")); - } } } } diff --git a/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/codeInspection/untypedUnresolvedAccess/GrUnresolvedAccessChecker.java b/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/codeInspection/untypedUnresolvedAccess/GrUnresolvedAccessChecker.java index ef9dafc585a5..22e3e1c38578 100644 --- a/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/codeInspection/untypedUnresolvedAccess/GrUnresolvedAccessChecker.java +++ b/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/codeInspection/untypedUnresolvedAccess/GrUnresolvedAccessChecker.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2014 JetBrains s.r.o. + * Copyright 2000-2016 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -159,17 +159,15 @@ public class GrUnresolvedAccessChecker { GrNewExpression newExpression = (GrNewExpression)refElement.getParent(); if (resolved instanceof PsiClass) { PsiClass clazz = (PsiClass)resolved; - if (newExpression.getQualifier() == null) { - final PsiClass outerClass = clazz.getContainingClass(); - if (com.intellij.psi.util.PsiUtil.isInnerClass(clazz) && - outerClass != null && - newExpression.getArgumentList() != null && - !PsiUtil.hasEnclosingInstanceInScope(outerClass, newExpression, true) && - !hasEnclosingInstanceInArgList(newExpression.getArgumentList(), outerClass)) { - String qname = clazz.getQualifiedName(); - LOG.assertTrue(qname != null, clazz.getText()); - return createAnnotationForRef(refElement, inStaticContext, GroovyBundle.message("cannot.reference.non.static", qname)); - } + final PsiClass outerClass = clazz.getContainingClass(); + if (com.intellij.psi.util.PsiUtil.isInnerClass(clazz) && + outerClass != null && + newExpression.getArgumentList() != null && + !PsiUtil.hasEnclosingInstanceInScope(outerClass, newExpression, true) && + !hasEnclosingInstanceInArgList(newExpression.getArgumentList(), outerClass)) { + String qname = clazz.getQualifiedName(); + LOG.assertTrue(qname != null, clazz.getText()); + return createAnnotationForRef(refElement, inStaticContext, GroovyBundle.message("cannot.reference.non.static", qname)); } } } diff --git a/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/psi/api/statements/expressions/GrNewExpression.java b/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/psi/api/statements/expressions/GrNewExpression.java index 08022244faf3..3cc155096061 100644 --- a/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/psi/api/statements/expressions/GrNewExpression.java +++ b/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/psi/api/statements/expressions/GrNewExpression.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2014 JetBrains s.r.o. + * Copyright 2000-2016 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -27,8 +27,6 @@ import org.jetbrains.plugins.groovy.lang.psi.api.types.GrTypeElement; * @author ilyas */ public interface GrNewExpression extends GrCallExpression, GrConstructorCall { - @Nullable - GrExpression getQualifier(); @Nullable GrCodeReferenceElement getReferenceElement(); diff --git a/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/psi/impl/statements/expressions/GrNewExpressionImpl.java b/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/psi/impl/statements/expressions/GrNewExpressionImpl.java index 74f1863aa2be..79b5e0cc694b 100644 --- a/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/psi/impl/statements/expressions/GrNewExpressionImpl.java +++ b/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/psi/impl/statements/expressions/GrNewExpressionImpl.java @@ -141,17 +141,6 @@ public class GrNewExpressionImpl extends GrCallExpressionImpl implements GrNewEx return super.getArgumentList(); } - @Override - @Nullable - public GrExpression getQualifier() { - final PsiElement[] children = getChildren(); - for (PsiElement child : children) { - if (child instanceof GrExpression) return (GrExpression)child; - if (PsiKeyword.NEW.equals(child.getText())) return null; - } - return null; - } - @Override public GrCodeReferenceElement getReferenceElement() { final GrAnonymousClassDefinition anonymous = getAnonymousClassDefinition(); diff --git a/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/psi/impl/statements/typedef/GrAnonymousClassDefinitionImpl.java b/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/psi/impl/statements/typedef/GrAnonymousClassDefinitionImpl.java index c52ab02af339..5dccafd651d9 100644 --- a/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/psi/impl/statements/typedef/GrAnonymousClassDefinitionImpl.java +++ b/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/psi/impl/statements/typedef/GrAnonymousClassDefinitionImpl.java @@ -27,7 +27,6 @@ import org.jetbrains.plugins.groovy.lang.parser.GroovyElementTypes; import org.jetbrains.plugins.groovy.lang.psi.GroovyElementVisitor; import org.jetbrains.plugins.groovy.lang.psi.GroovyPsiElementFactory; import org.jetbrains.plugins.groovy.lang.psi.api.statements.arguments.GrArgumentList; -import org.jetbrains.plugins.groovy.lang.psi.api.statements.expressions.GrNewExpression; import org.jetbrains.plugins.groovy.lang.psi.api.statements.typedef.GrAnonymousClassDefinition; import org.jetbrains.plugins.groovy.lang.psi.api.statements.typedef.GrExtendsClause; import org.jetbrains.plugins.groovy.lang.psi.api.statements.typedef.GrImplementsClause; @@ -83,13 +82,7 @@ public class GrAnonymousClassDefinitionImpl extends GrTypeDefinitionImpl impleme @Override public boolean isInQualifiedNew() { - final GrTypeDefinitionStub stub = getStub(); - if (stub != null) { - return stub.isAnonymousInQualifiedNew(); - } - - final PsiElement parent = getParent(); - return parent instanceof GrNewExpression && ((GrNewExpression)parent).getQualifier() != null; + return false; } @Override @@ -101,14 +94,10 @@ public class GrAnonymousClassDefinitionImpl extends GrTypeDefinitionImpl impleme @Override @NotNull public PsiClassType getBaseClassType() { - if (isInQualifiedNew()) { - return createClassType(); - } - PsiClassType type = SoftReference.dereference(myCachedBaseType); if (type != null && type.isValid()) return type; - type = createClassType(); + type = new GrClassReferenceType(getBaseClassReferenceGroovy()); myCachedBaseType = new SoftReference(type); return type; } @@ -119,11 +108,6 @@ public class GrAnonymousClassDefinitionImpl extends GrTypeDefinitionImpl impleme return null; } - @NotNull - private PsiClassType createClassType() { - return new GrClassReferenceType(getBaseClassReferenceGroovy()); - } - @Nullable private PsiClass getBaseClass() { return getBaseClassType().resolve(); diff --git a/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/psi/impl/statements/typedef/GrEnumConstantInitializerImpl.java b/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/psi/impl/statements/typedef/GrEnumConstantInitializerImpl.java index 66bc99d0bf0b..874b259707b7 100644 --- a/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/psi/impl/statements/typedef/GrEnumConstantInitializerImpl.java +++ b/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/psi/impl/statements/typedef/GrEnumConstantInitializerImpl.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2014 JetBrains s.r.o. + * Copyright 2000-2016 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -50,11 +50,6 @@ public class GrEnumConstantInitializerImpl extends GrAnonymousClassDefinitionImp return (GrEnumConstant)getParent(); } - @Override - public boolean isInQualifiedNew() { - return false; - } - @NotNull @Override public GrCodeReferenceElement getBaseClassReferenceGroovy() { diff --git a/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/psi/impl/types/GrCodeReferenceElementImpl.java b/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/psi/impl/types/GrCodeReferenceElementImpl.java index 09a295aac524..4d5d112a6f1e 100644 --- a/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/psi/impl/types/GrCodeReferenceElementImpl.java +++ b/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/psi/impl/types/GrCodeReferenceElementImpl.java @@ -22,7 +22,6 @@ import com.intellij.openapi.util.text.StringUtil; import com.intellij.psi.*; import com.intellij.psi.impl.source.resolve.ResolveCache; import com.intellij.psi.scope.ElementClassHint; -import com.intellij.psi.util.PsiTreeUtil; import com.intellij.util.ArrayUtil; import com.intellij.util.IncorrectOperationException; import org.jetbrains.annotations.NotNull; @@ -35,7 +34,6 @@ import org.jetbrains.plugins.groovy.lang.psi.GroovyFile; import org.jetbrains.plugins.groovy.lang.psi.GroovyPsiElementFactory; import org.jetbrains.plugins.groovy.lang.psi.api.GroovyResolveResult; import org.jetbrains.plugins.groovy.lang.psi.api.auxiliary.modifiers.annotation.GrAnnotation; -import org.jetbrains.plugins.groovy.lang.psi.api.statements.expressions.GrExpression; import org.jetbrains.plugins.groovy.lang.psi.api.statements.expressions.GrNewExpression; import org.jetbrains.plugins.groovy.lang.psi.api.statements.typedef.GrAnonymousClassDefinition; import org.jetbrains.plugins.groovy.lang.psi.api.toplevel.imports.GrImportStatement; @@ -115,7 +113,6 @@ public class GrCodeReferenceElementImpl extends GrReferenceElementImpl result = new ArrayList(); - PsiResolveHelper helper = JavaPsiFacade.getInstance(ref.getProject()).getResolveHelper(); - - for (final PsiClass innerClass : allInnerClasses) { - if (refName.equals(innerClass.getName())) { - result.add(new GroovyResolveResultImpl(innerClass, helper.isAccessible(innerClass, ref, null))); - } - } - return result.toArray(new GroovyResolveResult[result.size()]); - } } return GroovyResolveResult.EMPTY_ARRAY; diff --git a/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/psi/stubs/GrTypeDefinitionStub.java b/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/psi/stubs/GrTypeDefinitionStub.java index 9ffadd856cf6..33444fd2496d 100644 --- a/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/psi/stubs/GrTypeDefinitionStub.java +++ b/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/psi/stubs/GrTypeDefinitionStub.java @@ -34,7 +34,6 @@ public class GrTypeDefinitionStub extends StubBase implements private static final int INTERFACE = 0x02; private static final int ENUM = 0x04; private static final int ANNOTATION = 0x08; - private static final int IS_IN_QUALIFIED_NEW = 0x10; private static final int DEPRECATED_BY_DOC = 0x20; private static final int TRAIT = 0x40; @@ -85,10 +84,6 @@ public class GrTypeDefinitionStub extends StubBase implements return (myFlags & ANONYMOUS) != 0; } - public boolean isAnonymousInQualifiedNew() { - return (myFlags & IS_IN_QUALIFIED_NEW) != 0; - } - public boolean isInterface() { return (myFlags & INTERFACE) != 0; } @@ -114,9 +109,6 @@ public class GrTypeDefinitionStub extends StubBase implements if (typeDefinition.isAnonymous()) { flags |= ANONYMOUS; assert typeDefinition instanceof GrAnonymousClassDefinition; - if (((GrAnonymousClassDefinition)typeDefinition).isInQualifiedNew()) { - flags |= IS_IN_QUALIFIED_NEW; - } } if (typeDefinition.isAnnotationType()) flags |= ANNOTATION; if (typeDefinition.isInterface()) flags |= INTERFACE; diff --git a/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/psi/stubs/elements/GrStubFileElementType.java b/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/psi/stubs/elements/GrStubFileElementType.java index 9383b920b450..69b98179d9ab 100644 --- a/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/psi/stubs/elements/GrStubFileElementType.java +++ b/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/psi/stubs/elements/GrStubFileElementType.java @@ -62,7 +62,7 @@ public class GrStubFileElementType extends IStubFileElementType { @Override public int getStubVersion() { - return super.getStubVersion() + 26; + return super.getStubVersion() + 27; } @Override diff --git a/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/psi/stubs/hierarchy/GrStubIndexer.java b/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/psi/stubs/hierarchy/GrStubIndexer.java index b158348e8494..55843458723e 100644 --- a/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/psi/stubs/hierarchy/GrStubIndexer.java +++ b/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/psi/stubs/hierarchy/GrStubIndexer.java @@ -71,10 +71,7 @@ public class GrStubIndexer { @Nullable private static Decl processMember(StubElement el, Set namesCache) { if (el instanceof GrTypeDefinitionStub) { - GrTypeDefinitionStub classStub = (GrTypeDefinitionStub)el; - if (!classStub.isAnonymousInQualifiedNew()) { - return processClassDecl(classStub, namesCache); - } + return processClassDecl((GrTypeDefinitionStub)el, namesCache); } ArrayList innerList = new ArrayList(); for (StubElement childElement : el.getChildrenStubs()) { diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/intentions/style/ReplaceAbstractClassInstanceByMapIntention.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/intentions/style/ReplaceAbstractClassInstanceByMapIntention.java index 82f73ee15a8d..5dbf68b8b734 100644 --- a/plugins/groovy/src/org/jetbrains/plugins/groovy/intentions/style/ReplaceAbstractClassInstanceByMapIntention.java +++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/intentions/style/ReplaceAbstractClassInstanceByMapIntention.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2014 JetBrains s.r.o. + * Copyright 2000-2016 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -168,8 +168,7 @@ public class ReplaceAbstractClassInstanceByMapIntention extends Intention { public boolean satisfiedBy(PsiElement element) { if (element instanceof GrCodeReferenceElement && element.getParent() instanceof GrAnonymousClassDefinition) { final GrAnonymousClassDefinition anonymous = ((GrAnonymousClassDefinition)element.getParent()); - GrNewExpression newExpression = (GrNewExpression)anonymous.getParent(); - if (newExpression.getQualifier() == null && anonymous.getFields().length == 0) { + if (anonymous.getFields().length == 0) { return true; } } diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/completion/CompleteCodeReferenceElement.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/completion/CompleteCodeReferenceElement.java index 26a2d9cf294d..606a1061a584 100644 --- a/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/completion/CompleteCodeReferenceElement.java +++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/completion/CompleteCodeReferenceElement.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2014 JetBrains s.r.o. + * Copyright 2000-2016 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -138,7 +138,6 @@ public class CompleteCodeReferenceElement { } case CLASS_OR_PACKAGE: - case CLASS_IN_QUALIFIED_NEW: case CLASS: { GrCodeReferenceElement qualifier = myRef.getQualifier(); if (qualifier != null) { diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/refactoring/convertToJava/ExpressionGenerator.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/refactoring/convertToJava/ExpressionGenerator.java index fed8c59dc024..e2b109dc32e4 100644 --- a/plugins/groovy/src/org/jetbrains/plugins/groovy/refactoring/convertToJava/ExpressionGenerator.java +++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/refactoring/convertToJava/ExpressionGenerator.java @@ -215,12 +215,6 @@ public class ExpressionGenerator extends Generator { builder = this.builder; } - final GrExpression qualifier = newExpression.getQualifier(); - if (qualifier != null) { - qualifier.accept(this); - builder.append('.'); - } - final GrTypeElement typeElement = newExpression.getTypeElement(); final GrArrayDeclaration arrayDeclaration = newExpression.getArrayDeclaration(); final GrCodeReferenceElement referenceElement = newExpression.getReferenceElement();