diff --git a/java/java-psi-api/src/com/intellij/psi/PsiSubstitutor.java b/java/java-psi-api/src/com/intellij/psi/PsiSubstitutor.java
index ddc301e0eabe..0fcc46ea3325 100644
--- a/java/java-psi-api/src/com/intellij/psi/PsiSubstitutor.java
+++ b/java/java-psi-api/src/com/intellij/psi/PsiSubstitutor.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2000-2009 JetBrains s.r.o.
+ * Copyright 2000-2013 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.
@@ -37,7 +37,9 @@ public interface PsiSubstitutor {
* Example: consider class List<E>. this
* inside class List has type List with EMPTY substitutor.
*/
+ @NotNull
PsiSubstitutor EMPTY = EmptySubstitutor.getInstance();
+ @NotNull
PsiSubstitutor UNKNOWN = EMPTY;
/**
@@ -61,7 +63,7 @@ public interface PsiSubstitutor {
//Should be used with great care, be sure to prevent infinite recursion that could arise
// from the use of recursively bounded type parameters
- PsiType substituteWithBoundsPromotion(PsiTypeParameter typeParameter);
+ PsiType substituteWithBoundsPromotion(@NotNull PsiTypeParameter typeParameter);
/**
* Creates a substitutor instance which provides the specified parameter to type mapping in addition
@@ -71,7 +73,8 @@ public interface PsiSubstitutor {
* @param mapping the type to which the parameter is mapped.
* @return the new substitutor instance.
*/
- PsiSubstitutor put(PsiTypeParameter classParameter, PsiType mapping);
+ @NotNull
+ PsiSubstitutor put(@NotNull PsiTypeParameter classParameter, PsiType mapping);
/**
* Creates a substitutor instance which maps the type parameters of the specified class to the
@@ -81,7 +84,8 @@ public interface PsiSubstitutor {
* @param mappings the types to which the parameters are mapped.
* @return the new substitutor instance.
*/
- PsiSubstitutor putAll(PsiClass parentClass, PsiType[] mappings);
+ @NotNull
+ PsiSubstitutor putAll(@NotNull PsiClass parentClass, PsiType[] mappings);
/**
* Creates a substitutor instance containing all mappings from this substitutor and the
@@ -90,7 +94,8 @@ public interface PsiSubstitutor {
* @param another the substitutor to get the mappings from.
* @return the new substitutor instance.
*/
- PsiSubstitutor putAll(PsiSubstitutor another);
+ @NotNull
+ PsiSubstitutor putAll(@NotNull PsiSubstitutor another);
/**
* Returns the map from type parameters to types used for substitution by this substitutor.
diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/EmptySubstitutorImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/EmptySubstitutorImpl.java
index 9a327a846a04..dc8a2e8eeef8 100644
--- a/java/java-psi-impl/src/com/intellij/psi/impl/EmptySubstitutorImpl.java
+++ b/java/java-psi-impl/src/com/intellij/psi/impl/EmptySubstitutorImpl.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2000-2009 JetBrains s.r.o.
+ * Copyright 2000-2013 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.
@@ -38,26 +38,29 @@ public final class EmptySubstitutorImpl extends EmptySubstitutor {
}
@Override
- public PsiType substituteWithBoundsPromotion(PsiTypeParameter typeParameter) {
+ public PsiType substituteWithBoundsPromotion(@NotNull PsiTypeParameter typeParameter) {
return JavaPsiFacade.getInstance(typeParameter.getProject()).getElementFactory().createType(typeParameter);
}
+ @NotNull
@Override
- public PsiSubstitutor put(PsiTypeParameter classParameter, PsiType mapping){
+ public PsiSubstitutor put(@NotNull PsiTypeParameter classParameter, PsiType mapping){
if (mapping != null && !mapping.isValid()) {
LOG.error("Invalid type in substitutor: " + mapping);
}
return new PsiSubstitutorImpl(classParameter, mapping);
}
+ @NotNull
@Override
- public PsiSubstitutor putAll(PsiClass parentClass, PsiType[] mappings){
+ public PsiSubstitutor putAll(@NotNull PsiClass parentClass, PsiType[] mappings){
if(!parentClass.hasTypeParameters()) return this;
return new PsiSubstitutorImpl(parentClass, mappings);
}
+ @NotNull
@Override
- public PsiSubstitutor putAll(PsiSubstitutor another) {
+ public PsiSubstitutor putAll(@NotNull PsiSubstitutor another) {
return another;
}
diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/PsiSubstitutorImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/PsiSubstitutorImpl.java
index 94f6627ebe4b..1b2dadbecbb6 100644
--- a/java/java-psi-impl/src/com/intellij/psi/impl/PsiSubstitutorImpl.java
+++ b/java/java-psi-impl/src/com/intellij/psi/impl/PsiSubstitutorImpl.java
@@ -86,7 +86,7 @@ public class PsiSubstitutorImpl implements PsiSubstitutor {
return mySubstitutionMap.containsKey(typeParameter);
}
- private PsiType getFromMap(PsiTypeParameter typeParameter) {
+ private PsiType getFromMap(@NotNull PsiTypeParameter typeParameter) {
if (typeParameter instanceof LightTypeParameter) {
typeParameter = ((LightTypeParameter)typeParameter).getDelegate();
}
@@ -105,7 +105,7 @@ public class PsiSubstitutorImpl implements PsiSubstitutor {
}
@Override
- public PsiType substituteWithBoundsPromotion(PsiTypeParameter typeParameter) {
+ public PsiType substituteWithBoundsPromotion(@NotNull PsiTypeParameter typeParameter) {
return addBounds(substitute(typeParameter), typeParameter);
}
@@ -306,7 +306,7 @@ public class PsiSubstitutorImpl implements PsiSubstitutor {
return result;
}
- private PsiType substituteTypeParameter(final PsiTypeParameter typeParameter) {
+ private PsiType substituteTypeParameter(@NotNull PsiTypeParameter typeParameter) {
PsiType t = getFromMap(typeParameter);
if (myKind == SubstituteKind.SIMPLE) {
return t;
@@ -350,7 +350,7 @@ public class PsiSubstitutorImpl implements PsiSubstitutor {
}
}
- private PsiType addBounds(PsiType substituted, final PsiTypeParameter typeParameter) {
+ private PsiType addBounds(PsiType substituted, @NotNull PsiTypeParameter typeParameter) {
PsiType oldSubstituted = substituted;
PsiElement captureContext = null;
if (substituted instanceof PsiCapturedWildcardType) {
@@ -432,6 +432,7 @@ public class PsiSubstitutorImpl implements PsiSubstitutor {
return new PsiSubstitutorImpl(mySubstitutionMap);
}
+ @NotNull
@Override
public PsiSubstitutor put(@NotNull PsiTypeParameter typeParameter, PsiType mapping) {
PsiSubstitutorImpl ret = clone();
@@ -461,6 +462,7 @@ public class PsiSubstitutorImpl implements PsiSubstitutor {
}
}
+ @NotNull
@Override
public PsiSubstitutor putAll(@NotNull PsiClass parentClass, PsiType[] mappings) {
PsiSubstitutorImpl substitutor = clone();
@@ -468,8 +470,9 @@ public class PsiSubstitutorImpl implements PsiSubstitutor {
return substitutor;
}
+ @NotNull
@Override
- public PsiSubstitutor putAll(PsiSubstitutor another) {
+ public PsiSubstitutor putAll(@NotNull PsiSubstitutor another) {
if (another instanceof EmptySubstitutorImpl) return this;
final PsiSubstitutorImpl anotherImpl = (PsiSubstitutorImpl)another;
PsiSubstitutorImpl substitutor = clone();