From ef7c8b971a9c0b73f8f70554d1eed04e172cf456 Mon Sep 17 00:00:00 2001 From: Anna Kozlova Date: Thu, 15 May 2014 14:34:28 +0400 Subject: [PATCH] new inference: inference in terms of inference variable as type params (I) --- .../graphInference/InferenceVariable.java | 20 +++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/resolve/graphInference/InferenceVariable.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/resolve/graphInference/InferenceVariable.java index 13497e3d4557..a606e90e8a98 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/resolve/graphInference/InferenceVariable.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/resolve/graphInference/InferenceVariable.java @@ -15,27 +15,30 @@ */ package com.intellij.psi.impl.source.resolve.graphInference; +import com.intellij.psi.PsiElement; import com.intellij.psi.PsiType; import com.intellij.psi.PsiTypeParameter; +import com.intellij.psi.impl.light.LightTypeParameter; import java.util.*; /** * User: anna */ -public class InferenceVariable { +public class InferenceVariable extends LightTypeParameter { public PsiTypeParameter getParameter() { - return myParameter; + return getDelegate(); } private boolean myThrownBound = false; private final Map> myBounds = new HashMap>(); - private final PsiTypeParameter myParameter; private PsiType myInstantiation = PsiType.NULL; - public InferenceVariable(PsiTypeParameter parameter) { - myParameter = parameter; + + InferenceVariable(PsiTypeParameter parameter) { + super(parameter); } + public PsiType getInstantiation() { return myInstantiation; } @@ -117,12 +120,13 @@ public class InferenceVariable { myThrownBound = true; } - public void replaceBounds(InferenceBound boundType, LinkedHashSet bounds) { - + @Override + public boolean isEquivalentTo(PsiElement another) { + return this == another || getDelegate() == another; } @Override public String toString() { - return myParameter.toString(); + return getDelegate().toString(); } }