Untie JavaTypeSubstitutor.EMPTY from PsiSubstitutor
This commit is contained in:
+3
@@ -35,6 +35,9 @@ public interface JavaTypeParameter extends JavaClassifier, JavaNamedElement {
|
|||||||
@Nullable
|
@Nullable
|
||||||
JavaTypeParameterListOwner getOwner();
|
JavaTypeParameterListOwner getOwner();
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
JavaType getType();
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
JavaTypeProvider getTypeProvider();
|
JavaTypeProvider getTypeProvider();
|
||||||
}
|
}
|
||||||
|
|||||||
+7
-4
@@ -16,10 +16,7 @@
|
|||||||
|
|
||||||
package org.jetbrains.jet.lang.resolve.java.structure;
|
package org.jetbrains.jet.lang.resolve.java.structure;
|
||||||
|
|
||||||
import com.intellij.psi.PsiClass;
|
import com.intellij.psi.*;
|
||||||
import com.intellij.psi.PsiMethod;
|
|
||||||
import com.intellij.psi.PsiTypeParameter;
|
|
||||||
import com.intellij.psi.PsiTypeParameterListOwner;
|
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
import org.jetbrains.jet.lang.resolve.name.Name;
|
import org.jetbrains.jet.lang.resolve.name.Name;
|
||||||
@@ -74,6 +71,12 @@ public class JavaTypeParameterImpl extends JavaClassifierImpl implements JavaTyp
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
@Override
|
||||||
|
public JavaType getType() {
|
||||||
|
return JavaTypeImpl.create(JavaPsiFacade.getInstance(getPsi().getProject()).getElementFactory().createType(getPsi()));
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@NotNull
|
@NotNull
|
||||||
public JavaTypeProvider getTypeProvider() {
|
public JavaTypeProvider getTypeProvider() {
|
||||||
|
|||||||
+25
-2
@@ -16,14 +16,37 @@
|
|||||||
|
|
||||||
package org.jetbrains.jet.lang.resolve.java.structure;
|
package org.jetbrains.jet.lang.resolve.java.structure;
|
||||||
|
|
||||||
import com.intellij.psi.PsiSubstitutor;
|
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
|
||||||
|
import java.util.Collections;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
public interface JavaTypeSubstitutor {
|
public interface JavaTypeSubstitutor {
|
||||||
JavaTypeSubstitutor EMPTY = new JavaTypeSubstitutorImpl(PsiSubstitutor.EMPTY);
|
JavaTypeSubstitutor EMPTY = new JavaTypeSubstitutor() {
|
||||||
|
@NotNull
|
||||||
|
@Override
|
||||||
|
public JavaType substitute(@NotNull JavaType type) {
|
||||||
|
return type;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Nullable
|
||||||
|
@Override
|
||||||
|
public JavaType substitute(@NotNull JavaTypeParameter typeParameter) {
|
||||||
|
return typeParameter.getType();
|
||||||
|
}
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
@Override
|
||||||
|
public Map<JavaTypeParameter, JavaType> getSubstitutionMap() {
|
||||||
|
return Collections.emptyMap();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return "Empty JavaTypeSubstitutor";
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
JavaType substitute(@NotNull JavaType type);
|
JavaType substitute(@NotNull JavaType type);
|
||||||
|
|||||||
Reference in New Issue
Block a user