use of org.jetbrains.plugins.groovy.lang.psi.api.types.GrTypeElement in project intellij-community by JetBrains.
the class GrRemoveExceptionFix method findTypeElementInDisjunction.
@Nullable
private static GrTypeElement findTypeElementInDisjunction(Editor editor, PsiFile file) {
final int offset = editor.getCaretModel().getOffset();
final PsiElement at = file.findElementAt(offset);
final GrDisjunctionTypeElement disjunction = PsiTreeUtil.getParentOfType(at, GrDisjunctionTypeElement.class);
if (disjunction == null)
return null;
for (GrTypeElement element : disjunction.getTypeElements()) {
if (element.getTextRange().contains(offset)) {
return element;
}
}
return null;
}
use of org.jetbrains.plugins.groovy.lang.psi.api.types.GrTypeElement in project intellij-community by JetBrains.
the class GrReplacePrimitiveTypeWithWrapperFix method doFix.
@Override
protected void doFix(@NotNull Project project, @NotNull ProblemDescriptor descriptor) throws IncorrectOperationException {
final PsiElement element = descriptor.getPsiElement();
assert element instanceof GrTypeElement : element;
GrTypeElement typeElement = (GrTypeElement) element;
final PsiType type = typeElement.getType();
if (!(type instanceof PsiPrimitiveType))
return;
final PsiClassType boxed = ((PsiPrimitiveType) type).getBoxedType(typeElement);
if (boxed == null)
return;
final GrTypeElement newTypeElement = GroovyPsiElementFactory.getInstance(project).createTypeElement(boxed);
final PsiElement replaced = typeElement.replace(newTypeElement);
JavaCodeStyleManager.getInstance(project).shortenClassReferences(replaced);
}
use of org.jetbrains.plugins.groovy.lang.psi.api.types.GrTypeElement in project intellij-community by JetBrains.
the class GrWildcardTypeArgumentImpl method getType.
@Override
@NotNull
public PsiType getType() {
final GrTypeElement boundTypeElement = getBoundTypeElement();
if (boundTypeElement == null)
return PsiWildcardType.createUnbounded(getManager());
if (isExtends())
return PsiWildcardType.createExtends(getManager(), boundTypeElement.getType());
if (isSuper())
return PsiWildcardType.createSuper(getManager(), boundTypeElement.getType());
LOG.error("Untested case");
return null;
}
use of org.jetbrains.plugins.groovy.lang.psi.api.types.GrTypeElement in project intellij-community by JetBrains.
the class DuplicatesUtil method collectMethodDuplicates.
public static void collectMethodDuplicates(Map<GrMethod, List<GrMethod>> map, HashSet<GrMethod> duplicateMethodsWarning, HashSet<GrMethod> duplicateMethodsErrors) {
for (GrMethod method : map.keySet()) {
List<GrMethod> duplicateMethods = map.get(method);
if (duplicateMethods != null && duplicateMethods.size() > 1) {
HashMap<PsiType, GrMethod> duplicateMethodsToReturnTypeMap = new HashMap<>();
for (GrMethod duplicateMethod : duplicateMethods) {
GrTypeElement typeElement = duplicateMethod.getReturnTypeElementGroovy();
PsiType methodReturnType;
if (typeElement != null) {
methodReturnType = typeElement.getType();
} else {
methodReturnType = PsiType.NULL;
}
duplicateMethodsWarning.add(duplicateMethod);
GrMethod grMethodWithType = duplicateMethodsToReturnTypeMap.get(methodReturnType);
if (grMethodWithType != null) {
duplicateMethodsErrors.add(duplicateMethod);
duplicateMethodsErrors.add(grMethodWithType);
duplicateMethodsWarning.remove(duplicateMethod);
duplicateMethodsWarning.remove(grMethodWithType);
}
duplicateMethodsToReturnTypeMap.put(methodReturnType, duplicateMethod);
}
}
}
}
use of org.jetbrains.plugins.groovy.lang.psi.api.types.GrTypeElement in project intellij-community by JetBrains.
the class EquivalenceChecker method instanceofExpressionsAreEquivalent.
private static boolean instanceofExpressionsAreEquivalent(GrInstanceOfExpression expression1, GrInstanceOfExpression expression2) {
final GrExpression operand1 = expression1.getOperand();
final GrExpression operand2 = expression2.getOperand();
if (!expressionsAreEquivalent(operand1, operand2)) {
return false;
}
GrTypeElement typeElement1 = expression1.getTypeElement();
GrTypeElement typeElement2 = expression2.getTypeElement();
if (typeElement1 == null || typeElement2 == null)
return false;
final PsiType type1 = typeElement1.getType();
final PsiType type2 = typeElement2.getType();
return typesAreEquivalent(type1, type2);
}
Aggregations