From 016ad69b856877f7e8e8075d93a5c0eb6c3af8b8 Mon Sep 17 00:00:00 2001 From: peter Date: Wed, 23 Mar 2011 18:14:54 +0100 Subject: [PATCH] added @NotNulls to help diagnose EA-26264, cleanup --- .../SmartTypePointerManagerImpl.java | 2 +- .../intellij/psi/SmartTypePointerManager.java | 2 +- .../expressions/ChooseTypeExpression.java | 5 +- .../GroovyExpectedTypesProvider.java | 1 + .../psi/expectedTypes/SubtypeConstraint.java | 17 ++----- .../expectedTypes/SupertypeConstraint.java | 21 ++------ .../psi/expectedTypes/TypeConstraint.java | 5 +- .../lang/psi/expectedTypes/TypeEquals.java | 50 ------------------- .../statements/expressions/TypesUtil.java | 2 + 9 files changed, 20 insertions(+), 85 deletions(-) delete mode 100644 plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/expectedTypes/TypeEquals.java diff --git a/java/java-impl/src/com/intellij/psi/impl/smartPointers/SmartTypePointerManagerImpl.java b/java/java-impl/src/com/intellij/psi/impl/smartPointers/SmartTypePointerManagerImpl.java index ae32fccd1998..0d59b5ed8367 100644 --- a/java/java-impl/src/com/intellij/psi/impl/smartPointers/SmartTypePointerManagerImpl.java +++ b/java/java-impl/src/com/intellij/psi/impl/smartPointers/SmartTypePointerManagerImpl.java @@ -49,7 +49,7 @@ public class SmartTypePointerManagerImpl extends SmartTypePointerManager { } @NotNull - public SmartTypePointer createSmartTypePointer(PsiType type) { + public SmartTypePointer createSmartTypePointer(@NotNull PsiType type) { return type.accept(new SmartTypeCreatingVisitor()); } diff --git a/java/openapi/src/com/intellij/psi/SmartTypePointerManager.java b/java/openapi/src/com/intellij/psi/SmartTypePointerManager.java index 7c46254a519d..2624506a0b57 100644 --- a/java/openapi/src/com/intellij/psi/SmartTypePointerManager.java +++ b/java/openapi/src/com/intellij/psi/SmartTypePointerManager.java @@ -29,5 +29,5 @@ public abstract class SmartTypePointerManager { } @NotNull - public abstract SmartTypePointer createSmartTypePointer(PsiType type); + public abstract SmartTypePointer createSmartTypePointer(@NotNull PsiType type); } \ No newline at end of file diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/editor/template/expressions/ChooseTypeExpression.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/editor/template/expressions/ChooseTypeExpression.java index 5d78bdff42f6..b2cc84051433 100644 --- a/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/editor/template/expressions/ChooseTypeExpression.java +++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/editor/template/expressions/ChooseTypeExpression.java @@ -29,7 +29,6 @@ import org.jetbrains.plugins.groovy.lang.psi.api.auxiliary.modifiers.GrModifier; import org.jetbrains.plugins.groovy.lang.psi.expectedTypes.SubtypeConstraint; import org.jetbrains.plugins.groovy.lang.psi.expectedTypes.SupertypeConstraint; import org.jetbrains.plugins.groovy.lang.psi.expectedTypes.TypeConstraint; -import org.jetbrains.plugins.groovy.lang.psi.expectedTypes.TypeEquals; import java.util.LinkedHashSet; import java.util.Set; @@ -52,9 +51,7 @@ public class ChooseTypeExpression extends Expression { Set result = new LinkedHashSet(); for (TypeConstraint constraint : constraints) { - if (constraint instanceof TypeEquals) { - result.add(PsiTypeLookupItem.createLookupItem(constraint.getType(), null)); - } else if (constraint instanceof SubtypeConstraint) { + if (constraint instanceof SubtypeConstraint) { result.add(PsiTypeLookupItem.createLookupItem(constraint.getDefaultType(), null)); } else if (constraint instanceof SupertypeConstraint) { processSupertypes(constraint.getType(), result); diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/expectedTypes/GroovyExpectedTypesProvider.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/expectedTypes/GroovyExpectedTypesProvider.java index 57e8e0283299..d1b609dfafa5 100644 --- a/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/expectedTypes/GroovyExpectedTypesProvider.java +++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/expectedTypes/GroovyExpectedTypesProvider.java @@ -272,6 +272,7 @@ public class GroovyExpectedTypesProvider { expression, PsiType.EMPTY_ARRAY).length > 0; } + @NotNull @Override public PsiType getDefaultType() { return PsiType.INT; diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/expectedTypes/SubtypeConstraint.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/expectedTypes/SubtypeConstraint.java index 80821405f521..70b418b2a3bf 100644 --- a/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/expectedTypes/SubtypeConstraint.java +++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/expectedTypes/SubtypeConstraint.java @@ -20,6 +20,7 @@ import com.intellij.psi.PsiElement; import com.intellij.psi.PsiManager; import com.intellij.psi.PsiType; import com.intellij.psi.search.GlobalSearchScope; +import org.jetbrains.annotations.NotNull; import org.jetbrains.plugins.groovy.lang.psi.impl.statements.expressions.TypesUtil; import static org.jetbrains.plugins.groovy.lang.psi.impl.statements.expressions.TypesUtil.createType; @@ -30,7 +31,7 @@ import static org.jetbrains.plugins.groovy.lang.psi.impl.statements.expressions. public class SubtypeConstraint extends TypeConstraint { private final PsiType myDefaultType; - protected SubtypeConstraint(PsiType type, PsiType defaultType) { + protected SubtypeConstraint(@NotNull PsiType type, @NotNull PsiType defaultType) { super(type); myDefaultType = defaultType; } @@ -39,24 +40,16 @@ public class SubtypeConstraint extends TypeConstraint { return TypesUtil.isAssignableByMethodCallConversion(getType(), type, manager, scope); } + @NotNull public PsiType getDefaultType() { return myDefaultType; } - public static SubtypeConstraint create (PsiType type, PsiType defaultType) { - return new SubtypeConstraint(type, defaultType); - } - - public static SubtypeConstraint create (String fqName, String defaultFqName, PsiElement context) { - return new SubtypeConstraint(createType(fqName, context), - createType(defaultFqName, context)); - } - - public static SubtypeConstraint create (PsiType type) { + public static SubtypeConstraint create(@NotNull PsiType type) { return new SubtypeConstraint(type, type); } - public static SubtypeConstraint create (String fqName, PsiElement context) { + public static SubtypeConstraint create(String fqName, PsiElement context) { PsiClassType type = createType(fqName, context); return new SubtypeConstraint(type, type); } diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/expectedTypes/SupertypeConstraint.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/expectedTypes/SupertypeConstraint.java index f982d7a069a2..1cbbc9d463fd 100644 --- a/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/expectedTypes/SupertypeConstraint.java +++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/expectedTypes/SupertypeConstraint.java @@ -15,22 +15,19 @@ */ package org.jetbrains.plugins.groovy.lang.psi.expectedTypes; -import com.intellij.psi.PsiClassType; -import com.intellij.psi.PsiElement; import com.intellij.psi.PsiManager; import com.intellij.psi.PsiType; import com.intellij.psi.search.GlobalSearchScope; +import org.jetbrains.annotations.NotNull; import org.jetbrains.plugins.groovy.lang.psi.impl.statements.expressions.TypesUtil; -import static org.jetbrains.plugins.groovy.lang.psi.impl.statements.expressions.TypesUtil.createType; - /** * @author ven */ public class SupertypeConstraint extends TypeConstraint { private final PsiType myDefaultType; - protected SupertypeConstraint(PsiType type, PsiType defaultType) { + protected SupertypeConstraint(@NotNull PsiType type, @NotNull PsiType defaultType) { super(type); myDefaultType = defaultType; } @@ -39,25 +36,17 @@ public class SupertypeConstraint extends TypeConstraint { return TypesUtil.isAssignableByMethodCallConversion(type, getType(), manager, scope); } + @NotNull public PsiType getDefaultType() { return myDefaultType; } - public static SupertypeConstraint create (PsiType type, PsiType defaultType) { + public static SupertypeConstraint create(@NotNull PsiType type, @NotNull PsiType defaultType) { return new SupertypeConstraint(type, defaultType); } - public static SupertypeConstraint create (String fqName, String defaultFqName, PsiElement context) { - return new SupertypeConstraint(createType(fqName, context), - createType(defaultFqName, context)); - } - - public static SupertypeConstraint create (PsiType type) { + public static SupertypeConstraint create(@NotNull PsiType type) { return new SupertypeConstraint(type, type); } - public static SupertypeConstraint create (String fqName, PsiElement context) { - PsiClassType type = createType(fqName, context); - return new SupertypeConstraint(type, type); - } } diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/expectedTypes/TypeConstraint.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/expectedTypes/TypeConstraint.java index b0820455d8c3..78aa8407756e 100644 --- a/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/expectedTypes/TypeConstraint.java +++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/expectedTypes/TypeConstraint.java @@ -18,6 +18,7 @@ package org.jetbrains.plugins.groovy.lang.psi.expectedTypes; import com.intellij.psi.PsiManager; import com.intellij.psi.PsiType; import com.intellij.psi.search.GlobalSearchScope; +import org.jetbrains.annotations.NotNull; /** * @author ven @@ -29,12 +30,14 @@ public abstract class TypeConstraint { public abstract boolean satisfied(PsiType type, PsiManager manager, GlobalSearchScope scope); + @NotNull public abstract PsiType getDefaultType(); - protected TypeConstraint(PsiType type) { + protected TypeConstraint(@NotNull PsiType type) { myType = type; } + @NotNull public PsiType getType() { return myType; } diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/expectedTypes/TypeEquals.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/expectedTypes/TypeEquals.java deleted file mode 100644 index 2f45163941d3..000000000000 --- a/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/expectedTypes/TypeEquals.java +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Copyright 2000-2009 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. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.jetbrains.plugins.groovy.lang.psi.expectedTypes; - -import com.intellij.psi.PsiClassType; -import com.intellij.psi.PsiElement; -import com.intellij.psi.PsiManager; -import com.intellij.psi.PsiType; -import com.intellij.psi.search.GlobalSearchScope; - -import static org.jetbrains.plugins.groovy.lang.psi.impl.statements.expressions.TypesUtil.createType; - -/** - * @author ven - */ -public class TypeEquals extends TypeConstraint { - protected TypeEquals(PsiType type) { - super(type); - } - - public boolean satisfied(PsiType type, PsiManager manager, GlobalSearchScope scope){ - return type.equals(myType); - } - - public PsiType getDefaultType() { - return getType(); - } - - public static TypeEquals create (PsiType type) { - return new TypeEquals(type); - } - - public static TypeEquals create (String fqName, PsiElement context) { - PsiClassType type = createType(fqName, context); - return new TypeEquals(type); - } -} \ No newline at end of file diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/impl/statements/expressions/TypesUtil.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/impl/statements/expressions/TypesUtil.java index 7ea842423694..fe04a35201e6 100644 --- a/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/impl/statements/expressions/TypesUtil.java +++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/impl/statements/expressions/TypesUtil.java @@ -318,6 +318,7 @@ public class TypesUtil { return result; } + @NotNull public static PsiClassType createType(String fqName, @NotNull PsiElement context) { return createTypeByFQClassName(fqName, context); } @@ -447,6 +448,7 @@ public class TypesUtil { return PsiSubstitutorImpl.createSubstitutor(result); } + @NotNull public static PsiClassType createTypeByFQClassName(@NotNull String fqName, @NotNull PsiElement context) { return GroovyPsiManager.getInstance(context.getProject()).createTypeByFQClassName(fqName, context.getResolveScope()); }