[groovy] type calculators: refactor old implementations to use new API

This commit is contained in:
Daniil Ovchinnikov
2017-05-02 19:50:10 +03:00
parent 151fbba790
commit 43bdce2709
2 changed files with 11 additions and 6 deletions
@@ -1,5 +1,5 @@
/*
* Copyright 2000-2014 JetBrains s.r.o.
* Copyright 2000-2017 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -19,17 +19,22 @@ import com.intellij.psi.JavaPsiFacade;
import com.intellij.psi.PsiMethod;
import com.intellij.psi.PsiType;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.plugins.groovy.extensions.GroovyMethodInfo;
import org.jetbrains.plugins.groovy.lang.psi.api.statements.expressions.GrMethodCall;
import org.jetbrains.plugins.groovy.lang.psi.typeEnhancers.GrCallExpressionTypeCalculator;
import org.jetbrains.plugins.groovy.lang.typing.GrTypeCalculator;
/**
* @author Sergey Evdokimov
*/
public class GrDescriptorReturnTypeCalculator extends GrCallExpressionTypeCalculator {
public class GrDescriptorReturnTypeCalculator implements GrTypeCalculator<GrMethodCall> {
@Nullable
@Override
public PsiType calculateReturnType(@NotNull GrMethodCall callExpression, @NotNull PsiMethod method) {
public PsiType getType(@NotNull GrMethodCall callExpression) {
PsiMethod method = callExpression.resolveMethod();
if (method == null) return null;
for (GroovyMethodInfo methodInfo : GroovyMethodInfo.getInfos(method)) {
String returnType = methodInfo.getReturnType();
if (returnType != null) {
+2 -2
View File
@@ -157,13 +157,13 @@
<callExpressionTypeCalculator
implementation="org.jetbrains.plugins.groovy.lang.psi.impl.statements.expressions.path.DefaultCallExpressionTypeCalculator"
order="last"/>
<callExpressionTypeCalculator
implementation="org.jetbrains.plugins.groovy.lang.psi.impl.statements.expressions.path.GrDescriptorReturnTypeCalculator"/>
<callExpressionTypeCalculator
implementation="org.jetbrains.plugins.groovy.lang.psi.impl.statements.expressions.path.GrDGMTypeCalculator"/>
<typeCalculator forClass="org.jetbrains.plugins.groovy.lang.psi.api.statements.expressions.GrReferenceExpression"
implementationClass="org.jetbrains.plugins.groovy.lang.typing.GrClosureDelegateTypeCalculator"/>
<typeCalculator forClass="org.jetbrains.plugins.groovy.lang.psi.api.statements.expressions.GrMethodCall"
implementationClass="org.jetbrains.plugins.groovy.lang.psi.impl.statements.expressions.path.GrDescriptorReturnTypeCalculator"/>
<typeCalculator forClass="org.jetbrains.plugins.groovy.lang.psi.api.auxiliary.GrListOrMap" order="last"
implementationClass="org.jetbrains.plugins.groovy.lang.typing.DefaultListOrMapTypeCalculator"/>