[groovy] static trait method generic return type fixed (& test)

This commit is contained in:
Daniil Ovchinnikov
2015-08-25 18:39:08 +03:00
parent 530cb96829
commit 6193a63ddb
2 changed files with 19 additions and 0 deletions
@@ -17,13 +17,22 @@ package org.jetbrains.plugins.groovy.lang.psi.impl.synthetic;
import com.intellij.psi.PsiMethod;
import com.intellij.psi.PsiSubstitutor;
import com.intellij.psi.PsiType;
/**
* Created by Max Medvedev on 25/04/14
*/
public class GrTraitMethod extends GrMethodWrapper {
private final PsiSubstitutor mySubstitutor;
protected GrTraitMethod(PsiMethod method, PsiSubstitutor substitutor) {
super(method, substitutor);
mySubstitutor = substitutor;
}
@Override
public PsiType getReturnType() {
return mySubstitutor.substitute(super.getReturnType());
}
public static GrTraitMethod create(PsiMethod method, PsiSubstitutor substitutor) {
@@ -2222,4 +2222,14 @@ class X {
''', PsiMethod)
}
void 'test static trait method generic return type'() {
def method = resolveByText('''
trait GenericSourceTrait<E> {
static E someOtherStaticMethod() {null}
}
class SourceConcrete implements GenericSourceTrait<String> {})
SourceConcrete.someOtherStatic<caret>Method()
''', GrTraitMethod)
assertEquals "java.lang.String", method.returnType.canonicalText
}
}