mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
renamed resolveWithoutImplicits to getResolveContext (which is more meaningfull)
This commit is contained in:
@@ -73,11 +73,11 @@ public class PyArgumentEqualDefaultInspection extends PyInspection {
|
||||
if (list == null) {
|
||||
return;
|
||||
}
|
||||
Callable func = node.resolveCalleeFunction(resolveWithoutImplicits());
|
||||
Callable func = node.resolveCalleeFunction(getResolveContext());
|
||||
if (func != null && hasSpecialCasedDefaults(func, node)) {
|
||||
return;
|
||||
}
|
||||
CallArgumentsMapping result = list.analyzeCall(resolveWithoutImplicits());
|
||||
CallArgumentsMapping result = list.analyzeCall(getResolveContext());
|
||||
checkArguments(result, node.getArguments());
|
||||
}
|
||||
|
||||
@@ -141,10 +141,10 @@ public class PyArgumentEqualDefaultInspection extends PyInspection {
|
||||
}
|
||||
else {
|
||||
PsiReference keyRef = key instanceof PyReferenceExpression
|
||||
? ((PyReferenceExpression) key).getReference(resolveWithoutImplicits())
|
||||
? ((PyReferenceExpression) key).getReference(getResolveContext())
|
||||
: key.getReference();
|
||||
PsiReference defRef = defaultValue instanceof PyReferenceExpression
|
||||
? ((PyReferenceExpression) defaultValue).getReference(resolveWithoutImplicits())
|
||||
? ((PyReferenceExpression) defaultValue).getReference(getResolveContext())
|
||||
: defaultValue.getReference();
|
||||
if (keyRef != null && defRef != null) {
|
||||
PsiElement keyResolve = keyRef.resolve();
|
||||
|
||||
@@ -71,7 +71,7 @@ public class PyArgumentListInspection extends PyInspection {
|
||||
PyDecorator[] decorators = node.getDecorators();
|
||||
for (PyDecorator deco : decorators) {
|
||||
if (deco.hasArgumentList()) continue;
|
||||
final PyCallExpression.PyMarkedCallee markedCallee = deco.resolveCallee(resolveWithoutImplicits());
|
||||
final PyCallExpression.PyMarkedCallee markedCallee = deco.resolveCallee(getResolveContext());
|
||||
if (markedCallee != null && !markedCallee.isImplicitlyResolved()) {
|
||||
final Callable callable = markedCallee.getCallable();
|
||||
int firstParamOffset = markedCallee.getImplicitOffset();
|
||||
|
||||
@@ -90,7 +90,7 @@ public class PyCallByClassInspection extends PyInspection {
|
||||
PyClass qual_class = qual_class_type.getPyClass();
|
||||
final PyArgumentList arglist = call.getArgumentList();
|
||||
if (arglist != null) {
|
||||
CallArgumentsMapping analysis = arglist.analyzeCall(resolveWithoutImplicits());
|
||||
CallArgumentsMapping analysis = arglist.analyzeCall(getResolveContext());
|
||||
final PyCallExpression.PyMarkedCallee markedCallee = analysis.getMarkedCallee();
|
||||
if (markedCallee != null && markedCallee.getModifier() != STATICMETHOD) {
|
||||
final List<PyParameter> params = PyUtil.getParameters(markedCallee.getCallable(), myTypeEvalContext);
|
||||
|
||||
@@ -58,7 +58,7 @@ public class PyDeprecationInspection extends PyInspection {
|
||||
final PyExpression exceptClass = exceptPart.getExceptClass();
|
||||
if (exceptClass != null && "ImportError".equals(exceptClass.getText())) return;
|
||||
}
|
||||
PsiElement resolveResult = node.getReference(resolveWithoutImplicits()).resolve();
|
||||
PsiElement resolveResult = node.getReference(getResolveContext()).resolve();
|
||||
String deprecationMessage = null;
|
||||
if (resolveResult instanceof PyFunction) {
|
||||
deprecationMessage = ((PyFunction) resolveResult).getDeprecationMessage();
|
||||
|
||||
@@ -58,7 +58,7 @@ public class PyExceptClausesOrderInspection extends PyInspection {
|
||||
for (PyExceptPart exceptPart : exceptParts) {
|
||||
PyExpression exceptClass = exceptPart.getExceptClass();
|
||||
if (exceptClass instanceof PyReferenceExpression) {
|
||||
PsiElement element = ((PyReferenceExpression) exceptClass).followAssignmentsChain(resolveWithoutImplicits()).getElement();
|
||||
PsiElement element = ((PyReferenceExpression) exceptClass).followAssignmentsChain(getResolveContext()).getElement();
|
||||
if (element instanceof PyClass) {
|
||||
PyClass pyClass = (PyClass)element;
|
||||
if (exceptClasses.contains(pyClass)) {
|
||||
|
||||
@@ -60,7 +60,7 @@ public class PyExceptionInheritInspection extends PyInspection {
|
||||
if (expression instanceof PyCallExpression) {
|
||||
PyExpression callee = ((PyCallExpression)expression).getCallee();
|
||||
if (callee instanceof PyReferenceExpression) {
|
||||
PsiElement psiElement = ((PyReferenceExpression)callee).getReference(resolveWithoutImplicits()).resolve();
|
||||
PsiElement psiElement = ((PyReferenceExpression)callee).getReference(getResolveContext()).resolve();
|
||||
if (psiElement instanceof PyClass) {
|
||||
PyClass aClass = (PyClass) psiElement;
|
||||
for (PyClassLikeType type : aClass.getAncestorTypes(myTypeEvalContext)) {
|
||||
|
||||
@@ -52,7 +52,7 @@ public abstract class PyInspectionVisitor extends PyElementVisitor {
|
||||
myTypeEvalContext = context;
|
||||
}
|
||||
|
||||
protected PyResolveContext resolveWithoutImplicits() {
|
||||
protected PyResolveContext getResolveContext() {
|
||||
return PyResolveContext.noImplicits().withTypeEvalContext(myTypeEvalContext);
|
||||
}
|
||||
|
||||
|
||||
@@ -124,7 +124,7 @@ public class PyPropertyDefinitionInspection extends PyInspection {
|
||||
assert call != null : "Property has a null call assigned to it";
|
||||
final PyArgumentList arglist = call.getArgumentList();
|
||||
assert arglist != null : "Property call has null arglist";
|
||||
CallArgumentsMapping analysis = arglist.analyzeCall(resolveWithoutImplicits());
|
||||
CallArgumentsMapping analysis = arglist.analyzeCall(getResolveContext());
|
||||
// we assume fget, fset, fdel, doc names
|
||||
for (Map.Entry<PyExpression, PyNamedParameter> entry: analysis.getPlainMappedParams().entrySet()) {
|
||||
final String param_name = entry.getValue().getName();
|
||||
@@ -150,7 +150,7 @@ public class PyPropertyDefinitionInspection extends PyInspection {
|
||||
assert argument != null : "Parameter mapped to null argument";
|
||||
Callable callable = null;
|
||||
if (argument instanceof PyReferenceExpression) {
|
||||
PsiElement resolved = ((PyReferenceExpression)argument).getReference(resolveWithoutImplicits()).resolve();
|
||||
PsiElement resolved = ((PyReferenceExpression)argument).getReference(getResolveContext()).resolve();
|
||||
if (resolved instanceof Callable) {
|
||||
callable = (Callable)resolved;
|
||||
}
|
||||
|
||||
@@ -70,18 +70,20 @@ public class PyProtectedMemberInspection extends PyInspection {
|
||||
if (name != null && name.startsWith("_") && !name.startsWith("__") && !name.endsWith("__")) {
|
||||
final PyClass parentClass = getClassOwner(node);
|
||||
if (parentClass != null) {
|
||||
final PsiReference reference = node.getReference();
|
||||
final PsiElement resolvedExpression = reference.resolve();
|
||||
final PyClass resolvedClass = getClassOwner(resolvedExpression);
|
||||
if (parentClass.isSubclass(resolvedClass))
|
||||
return;
|
||||
|
||||
PyClass outerClass = getClassOwner(parentClass);
|
||||
while (outerClass != null) {
|
||||
if (outerClass.isSubclass(resolvedClass))
|
||||
final PsiReference reference = node.getReference(getResolveContext());
|
||||
if (reference != null) {
|
||||
final PsiElement resolvedExpression = reference.resolve();
|
||||
final PyClass resolvedClass = getClassOwner(resolvedExpression);
|
||||
if (parentClass.isSubclass(resolvedClass))
|
||||
return;
|
||||
|
||||
outerClass = getClassOwner(outerClass);
|
||||
PyClass outerClass = getClassOwner(parentClass);
|
||||
while (outerClass != null) {
|
||||
if (outerClass.isSubclass(resolvedClass))
|
||||
return;
|
||||
|
||||
outerClass = getClassOwner(outerClass);
|
||||
}
|
||||
}
|
||||
}
|
||||
final PyType type = myTypeEvalContext.getType(qualifier);
|
||||
|
||||
@@ -67,7 +67,7 @@ public class PyRaisingNewStyleClassInspection extends PyInspection {
|
||||
if (expression instanceof PyCallExpression) {
|
||||
final PyExpression callee = ((PyCallExpression)expression).getCallee();
|
||||
if (callee instanceof PyReferenceExpression) {
|
||||
final PsiElement psiElement = ((PyReferenceExpression)callee).getReference(resolveWithoutImplicits()).resolve();
|
||||
final PsiElement psiElement = ((PyReferenceExpression)callee).getReference(getResolveContext()).resolve();
|
||||
if (psiElement instanceof PyClass) {
|
||||
if (((PyClass)psiElement).isNewStyleClass()) {
|
||||
registerProblem(expression, "Raising a new style class");
|
||||
|
||||
@@ -112,14 +112,14 @@ public class PyStatementEffectInspection extends PyInspection {
|
||||
PyType type = myTypeEvalContext.getType(leftExpression);
|
||||
if (type != null &&
|
||||
!type.isBuiltin(myTypeEvalContext) &&
|
||||
type.resolveMember(method, null, AccessDirection.READ, resolveWithoutImplicits()) != null) {
|
||||
type.resolveMember(method, null, AccessDirection.READ, getResolveContext()) != null) {
|
||||
return true;
|
||||
}
|
||||
if (rightExpression != null) {
|
||||
type = myTypeEvalContext.getType(rightExpression);
|
||||
if (type != null) {
|
||||
String rmethod = "__r" + method.substring(2); // __add__ -> __radd__
|
||||
if (!type.isBuiltin(myTypeEvalContext) && type.resolveMember(rmethod, null, AccessDirection.READ, resolveWithoutImplicits()) != null) {
|
||||
if (!type.isBuiltin(myTypeEvalContext) && type.resolveMember(rmethod, null, AccessDirection.READ, getResolveContext()) != null) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -136,7 +136,7 @@ public class PyStatementEffectInspection extends PyInspection {
|
||||
}
|
||||
else if (expression instanceof PyReferenceExpression) {
|
||||
PyReferenceExpression referenceExpression = (PyReferenceExpression)expression;
|
||||
ResolveResult[] results = referenceExpression.getReference(resolveWithoutImplicits()).multiResolve(true);
|
||||
ResolveResult[] results = referenceExpression.getReference(getResolveContext()).multiResolve(true);
|
||||
for (ResolveResult res : results) {
|
||||
if (res.getElement() instanceof PyFunction) {
|
||||
registerProblem(expression, "Statement seems to have no effect and can be replaced with function call to have effect", new StatementEffectFunctionCallQuickFix());
|
||||
|
||||
@@ -81,7 +81,7 @@ public class PySuperArgumentsInspection extends PyInspection {
|
||||
|
||||
@Nullable
|
||||
private PyClass findClassOf(PyExpression argument) {
|
||||
PsiElement firstElement = ((PyReferenceExpression)argument).followAssignmentsChain(resolveWithoutImplicits()).getElement();
|
||||
PsiElement firstElement = ((PyReferenceExpression)argument).followAssignmentsChain(getResolveContext()).getElement();
|
||||
PyClass firstClass = null;
|
||||
if (firstElement instanceof PyClass) firstClass = (PyClass)firstElement;
|
||||
else if (firstElement instanceof PyExpression) {
|
||||
|
||||
@@ -59,7 +59,7 @@ public class PyTupleItemAssignmentInspection extends PyInspection {
|
||||
PySubscriptionExpression subscriptionExpression = (PySubscriptionExpression)targets[0];
|
||||
if (subscriptionExpression.getOperand() instanceof PyReferenceExpression) {
|
||||
PyReferenceExpression referenceExpression = (PyReferenceExpression)subscriptionExpression.getOperand();
|
||||
PsiElement element = referenceExpression.followAssignmentsChain(resolveWithoutImplicits()).getElement();
|
||||
PsiElement element = referenceExpression.followAssignmentsChain(getResolveContext()).getElement();
|
||||
if (element instanceof PyExpression) {
|
||||
PyExpression expression = (PyExpression)element;
|
||||
PyType type = myTypeEvalContext.getType(expression);
|
||||
|
||||
@@ -127,7 +127,7 @@ public class PyUnboundLocalVariableInspection extends PyInspection {
|
||||
if (!isFirstUnboundRead(node, owner)) {
|
||||
return;
|
||||
}
|
||||
final PsiPolyVariantReference ref = node.getReference(resolveWithoutImplicits());
|
||||
final PsiPolyVariantReference ref = node.getReference(getResolveContext());
|
||||
if (ref == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user