From 3bd17f6768b9130f7aa57fda84abea19cc600877 Mon Sep 17 00:00:00 2001 From: Daniil Ovchinnikov Date: Tue, 12 Sep 2017 14:47:19 +0200 Subject: [PATCH] [jvm-lang] update JvmSubstitutor API, add JvmSubstitutor.getParameters() --- .../src/com/intellij/lang/jvm/types/JvmSubstitutor.java | 5 +++++ .../src/com/intellij/psi/PsiJvmSubstitutor.java | 9 +++++++++ 2 files changed, 14 insertions(+) diff --git a/java/java-psi-api/src/com/intellij/lang/jvm/types/JvmSubstitutor.java b/java/java-psi-api/src/com/intellij/lang/jvm/types/JvmSubstitutor.java index 73fd43e1da3e..e46d560634a8 100644 --- a/java/java-psi-api/src/com/intellij/lang/jvm/types/JvmSubstitutor.java +++ b/java/java-psi-api/src/com/intellij/lang/jvm/types/JvmSubstitutor.java @@ -19,8 +19,13 @@ import com.intellij.lang.jvm.JvmTypeParameter; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; +import java.util.Collection; + public interface JvmSubstitutor { + @NotNull + Collection getTypeParameters(); + @Nullable JvmType substitute(@NotNull JvmTypeParameter typeParameter); } diff --git a/java/java-psi-api/src/com/intellij/psi/PsiJvmSubstitutor.java b/java/java-psi-api/src/com/intellij/psi/PsiJvmSubstitutor.java index 6c8f715561f7..a3f4c57a3096 100644 --- a/java/java-psi-api/src/com/intellij/psi/PsiJvmSubstitutor.java +++ b/java/java-psi-api/src/com/intellij/psi/PsiJvmSubstitutor.java @@ -19,10 +19,13 @@ import com.intellij.lang.jvm.JvmTypeParameter; import com.intellij.lang.jvm.types.JvmSubstitutor; import com.intellij.lang.jvm.types.JvmType; import com.intellij.openapi.project.Project; +import com.intellij.util.SmartList; import org.jetbrains.annotations.ApiStatus.Experimental; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; +import java.util.Collection; + @Experimental public class PsiJvmSubstitutor implements JvmSubstitutor { @@ -34,6 +37,12 @@ public class PsiJvmSubstitutor implements JvmSubstitutor { mySubstitutor = substitutor; } + @NotNull + @Override + public Collection getTypeParameters() { + return new SmartList<>(mySubstitutor.getSubstitutionMap().keySet()); + } + @Nullable @Override public JvmType substitute(@NotNull JvmTypeParameter typeParameter) {