mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
Export only one entry point to PyTypeCheckerInspectionProblemRegistrar
This commit is contained in:
committed by
Semyon Proshev
parent
7079ed83cf
commit
8a5373099c
@@ -186,14 +186,9 @@ public class PyTypeCheckerInspection extends PyInspection {
|
||||
.map(this::analyzeCallee)
|
||||
.toList();
|
||||
|
||||
if (matchedCalleeResultsExist(calleesResults)) return;
|
||||
|
||||
if (calleesResults.size() == 1) {
|
||||
PyTypeCheckerInspectionProblemRegistrar.registerSingleCalleeProblem(this, calleesResults.get(0), myTypeEvalContext);
|
||||
}
|
||||
else if (!calleesResults.isEmpty()) {
|
||||
if (!matchedCalleeResultsExist(calleesResults)) {
|
||||
PyTypeCheckerInspectionProblemRegistrar
|
||||
.registerMultiCalleeProblem(this, callSite, getArgumentTypes(calleesResults), calleesResults, myTypeEvalContext);
|
||||
.registerProblem(this, callSite, getArgumentTypes(calleesResults), calleesResults, myTypeEvalContext);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+25
-10
@@ -40,9 +40,22 @@ import java.util.stream.Collectors;
|
||||
|
||||
class PyTypeCheckerInspectionProblemRegistrar {
|
||||
|
||||
static void registerSingleCalleeProblem(@NotNull PyInspectionVisitor visitor,
|
||||
@NotNull PyTypeCheckerInspection.AnalyzeCalleeResults calleeResults,
|
||||
@NotNull TypeEvalContext context) {
|
||||
static void registerProblem(@NotNull PyInspectionVisitor visitor,
|
||||
@NotNull PyCallSiteExpression callSite,
|
||||
@NotNull List<PyType> argumentTypes,
|
||||
@NotNull List<PyTypeCheckerInspection.AnalyzeCalleeResults> calleesResults,
|
||||
@NotNull TypeEvalContext context) {
|
||||
if (calleesResults.size() == 1) {
|
||||
registerSingleCalleeProblem(visitor, calleesResults.get(0), context);
|
||||
}
|
||||
else if (!calleesResults.isEmpty()) {
|
||||
registerMultiCalleeProblem(visitor, callSite, argumentTypes, calleesResults, context);
|
||||
}
|
||||
}
|
||||
|
||||
private static void registerSingleCalleeProblem(@NotNull PyInspectionVisitor visitor,
|
||||
@NotNull PyTypeCheckerInspection.AnalyzeCalleeResults calleeResults,
|
||||
@NotNull TypeEvalContext context) {
|
||||
for (PyTypeCheckerInspection.AnalyzeArgumentResult argumentResult : calleeResults.getResults()) {
|
||||
if (argumentResult.isMatched()) continue;
|
||||
|
||||
@@ -52,14 +65,15 @@ class PyTypeCheckerInspectionProblemRegistrar {
|
||||
}
|
||||
}
|
||||
|
||||
static void registerMultiCalleeProblem(@NotNull PyInspectionVisitor visitor,
|
||||
@NotNull PyCallSiteExpression callSite,
|
||||
@NotNull List<PyType> argumentTypes,
|
||||
@NotNull List<PyTypeCheckerInspection.AnalyzeCalleeResults> calleesResults,
|
||||
@NotNull TypeEvalContext context) {
|
||||
private static void registerMultiCalleeProblem(@NotNull PyInspectionVisitor visitor,
|
||||
@NotNull PyCallSiteExpression callSite,
|
||||
@NotNull List<PyType> argumentTypes,
|
||||
@NotNull List<PyTypeCheckerInspection.AnalyzeCalleeResults> calleesResults,
|
||||
@NotNull TypeEvalContext context) {
|
||||
if (callSite instanceof PyBinaryExpression) {
|
||||
registerMultiCalleeProblemForBinaryExpression(visitor, (PyBinaryExpression)callSite, argumentTypes, calleesResults, context);
|
||||
} else {
|
||||
}
|
||||
else {
|
||||
visitor.registerProblem(getMultiCalleeElementToHighlight(callSite),
|
||||
getMultiCalleeProblemMessage(argumentTypes, calleesResults, context),
|
||||
getMultiCalleeHighlightType(calleesResults));
|
||||
@@ -123,7 +137,8 @@ class PyTypeCheckerInspectionProblemRegistrar {
|
||||
|
||||
if (preferredOperatorsResults.size() == 1) {
|
||||
registerSingleCalleeProblem(visitor, preferredOperatorsResults.get(0), context);
|
||||
} else {
|
||||
}
|
||||
else {
|
||||
visitor.registerProblem(allCalleesAreRightOperators ? binaryExpression.getLeftExpression() : binaryExpression.getRightExpression(),
|
||||
getMultiCalleeProblemMessage(argumentTypes, preferredOperatorsResults, context),
|
||||
getMultiCalleeHighlightType(preferredOperatorsResults));
|
||||
|
||||
Reference in New Issue
Block a user