mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
Merge branch 'python-fixes'
This commit is contained in:
@@ -349,11 +349,29 @@ public class PyNamedParameterImpl extends PyBaseElementImpl<PyNamedParameterStub
|
||||
}
|
||||
|
||||
@Nullable
|
||||
private static PyNamedParameter getParameterByCallArgument(@NotNull PsiElement element, @NotNull TypeEvalContext context) {
|
||||
final PyCallExpression call = PsiTreeUtil.getParentOfType(element, PyCallExpression.class);
|
||||
if (call != null) {
|
||||
final PyArgumentList argumentList = call.getArgumentList();
|
||||
if (argumentList != null) {
|
||||
private PyNamedParameter getParameterByCallArgument(@NotNull PsiElement element, @NotNull TypeEvalContext context) {
|
||||
final PyArgumentList argumentList = PsiTreeUtil.getParentOfType(element, PyArgumentList.class);
|
||||
if (argumentList != null) {
|
||||
boolean elementIsArgument = false;
|
||||
for (PyExpression argument : argumentList.getArgumentExpressions()) {
|
||||
if (PyPsiUtils.flattenParens(argument) == element) {
|
||||
elementIsArgument = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
final PyCallExpression callExpression = argumentList.getCallExpression();
|
||||
if (elementIsArgument && callExpression != null) {
|
||||
final PyExpression callee = callExpression.getCallee();
|
||||
if (callee instanceof PyReferenceExpression) {
|
||||
final PyReferenceExpression calleeReferenceExpr = (PyReferenceExpression)callee;
|
||||
final PyExpression firstQualifier = PyPsiUtils.getFirstQualifier(calleeReferenceExpr);
|
||||
if (firstQualifier != null) {
|
||||
final PsiReference ref = firstQualifier.getReference();
|
||||
if (ref != null && ref.isReferenceTo(this)) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
final PyResolveContext resolveContext = PyResolveContext.noImplicits().withTypeEvalContext(context);
|
||||
final CallArgumentsMapping mapping = argumentList.analyzeCall(resolveContext);
|
||||
for (Map.Entry<PyExpression, PyNamedParameter> entry : mapping.getPlainMappedParams().entrySet()) {
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
def repl(s):
|
||||
if not isinstance(s, basestring):
|
||||
return s
|
||||
return s.replace(s.replace('a', 'b'), s)
|
||||
+5
@@ -505,6 +505,11 @@ public class PyUnresolvedReferencesInspectionTest extends PyInspectionTestCase {
|
||||
doTest();
|
||||
}
|
||||
|
||||
// PY-11541
|
||||
public void testBaseStringCheck() {
|
||||
doTest();
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
protected Class<? extends PyInspection> getInspectionClass() {
|
||||
|
||||
Reference in New Issue
Block a user