GrClassReferenceType.rawType() should return raw type even if type is not resolved

This commit is contained in:
Max Medvedev
2014-06-10 15:50:30 +04:00
parent 2e95615121
commit beaa51876c
6 changed files with 10 additions and 8 deletions
@@ -208,9 +208,7 @@ public class GrReferenceAdjuster implements ReferenceAdjuster {
PsiResolveHelper helper = JavaPsiFacade.getInstance(ref.getProject()).getResolveHelper();
if (ref instanceof GrReferenceElement) {
final String classNameText = ((GrReferenceElement)ref).getClassNameText();
if (classNameText != null) {
return helper.resolveReferencedClass(classNameText, ref);
}
return helper.resolveReferencedClass(classNameText, ref);
}
return null;
}
@@ -47,7 +47,7 @@ public interface GrReferenceElement<Q extends PsiElement> extends GroovyPsiEleme
@Nullable
GrTypeArgumentList getTypeArgumentList();
@Nullable
@NotNull
String getClassNameText();
PsiElement handleElementRenameSimple(String newElementName) throws IncorrectOperationException;
@@ -108,13 +108,16 @@ public class GrClassReferenceType extends PsiClassType {
@Override
@NotNull
public PsiClassType rawType() {
final PsiElementFactory factory = JavaPsiFacade.getElementFactory(myReferenceElement.getProject());
final PsiClass clazz = resolve();
if (clazz != null) {
final PsiElementFactory factory = JavaPsiFacade.getElementFactory(clazz.getProject());
return factory.createType(clazz, factory.createRawSubstitutor(clazz));
}
return this;
else {
String qName = myReferenceElement.getClassNameText();
return factory.createTypeByFQClassName(qName, myReferenceElement.getResolveScope());
}
}
@NotNull
@@ -183,6 +183,7 @@ public abstract class GrReferenceElementImpl<Q extends PsiElement> extends Groov
PsiImplUtil.setQualifier(this, newQualifier);
}
@NotNull
@Override
public String getClassNameText() {
String cachedQName = myCachedQName;
@@ -91,6 +91,7 @@ public class GrLightClassReferenceElement extends LightElement implements GrCode
return null;
}
@NotNull
@Override
public String getClassNameText() {
return myClassName;
@@ -154,7 +154,6 @@ public class GroovyShellConsoleImpl extends LanguageConsoleImpl {
GrCodeReferenceElement reference = anImport.getImportReference();
if (reference == null) return null;
String qname = reference.getClassNameText();
if (qname == null) return null;
buffer.append(qname);
if (!anImport.isOnDemand()) {
String importedName = anImport.getImportedName();