[jvm-lang] update JvmSubstitutor API, add JvmSubstitutor.getParameters()

This commit is contained in:
Daniil Ovchinnikov
2017-09-12 15:18:21 +02:00
parent 29cd9f9a39
commit 3bd17f6768
2 changed files with 14 additions and 0 deletions
@@ -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<JvmTypeParameter> getTypeParameters();
@Nullable
JvmType substitute(@NotNull JvmTypeParameter typeParameter);
}
@@ -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<JvmTypeParameter> getTypeParameters() {
return new SmartList<>(mySubstitutor.getSubstitutionMap().keySet());
}
@Nullable
@Override
public JvmType substitute(@NotNull JvmTypeParameter typeParameter) {