mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-01-08 15:09:39 +07:00
Allow assign to () and [] (PY-27041)
This commit is contained in:
@@ -730,7 +730,6 @@ ANN.cant.aug.assign.to.tuple.or.generator=Augmented assign to tuple literal or g
|
||||
ANN.cant.assign.to.generator=Assign to generator expression not possible
|
||||
ANN.cant.assign.to.operator=Can't assign to operator
|
||||
ANN.cant.assign.to.parens=Can't assign to ()
|
||||
ANN.cant.assign.to.brackets=Can't assign to []
|
||||
ANN.cant.aug.assign.to.list.or.comprh=Augmented assign to list literal or comprehension not possible
|
||||
ANN.cant.assign.to.comprh=Can't assign to list comprehension
|
||||
ANN.cant.assign.to.dict.comprh=Can't assign to dict comprehension
|
||||
|
||||
@@ -130,7 +130,7 @@ public class AssignTargetAnnotator extends PyAnnotator {
|
||||
|
||||
@Override
|
||||
public void visitPyTupleExpression(final PyTupleExpression node) {
|
||||
if (node.isEmpty()) {
|
||||
if (node.isEmpty() && LanguageLevel.forElement(node).isPython2()) {
|
||||
getHolder().createErrorAnnotation(node, message("ANN.cant.assign.to.parens"));
|
||||
}
|
||||
else if (myOp == Operation.AugAssign) {
|
||||
@@ -153,10 +153,7 @@ public class AssignTargetAnnotator extends PyAnnotator {
|
||||
|
||||
@Override
|
||||
public void visitPyListLiteralExpression(final PyListLiteralExpression node) {
|
||||
if (node.isEmpty()) {
|
||||
getHolder().createErrorAnnotation(node, message("ANN.cant.assign.to.brackets"));
|
||||
}
|
||||
else if (myOp == Operation.AugAssign) {
|
||||
if (myOp == Operation.AugAssign) {
|
||||
getHolder().createErrorAnnotation(node, message("ANN.cant.aug.assign.to.list.or.comprh"));
|
||||
}
|
||||
else {
|
||||
@@ -197,10 +194,12 @@ public class AssignTargetAnnotator extends PyAnnotator {
|
||||
checkLiteral(node);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void visitPyNumericLiteralExpression(final PyNumericLiteralExpression node) {
|
||||
checkLiteral(node);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void visitPyStringLiteralExpression(final PyStringLiteralExpression node) {
|
||||
checkLiteral(node);
|
||||
}
|
||||
@@ -209,6 +208,7 @@ public class AssignTargetAnnotator extends PyAnnotator {
|
||||
getHolder().createErrorAnnotation(node, message(myOp == Operation.Delete? "ANN.cant.delete.literal" : "ANN.cant.assign.to.literal"));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void visitPyLambdaExpression(final PyLambdaExpression node) {
|
||||
getHolder().createErrorAnnotation(node, message("ANN.cant.assign.to.lambda"));
|
||||
}
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
result = <error descr="Can't assign to operator">a < c and c</error> = 4
|
||||
|
||||
<error descr="Can't assign to ()">()</error> = 123
|
||||
<error descr="Can't assign to []">[]</error> = 1
|
||||
[] = 1
|
||||
[<error descr="Can't assign to literal">1</error>] = 1
|
||||
<error descr="Can't assign to literal">{}</error> = 1
|
||||
<error descr="Can't assign to literal">{1, 2, 3}</error> = 1
|
||||
|
||||
@@ -9,3 +9,6 @@ a, *b, c = seq
|
||||
<error descr="assignment to keyword">False</error> = 1
|
||||
<error descr="assignment to keyword">None</error> = 0
|
||||
<error descr="assignment to keyword">__debug__</error> = -1
|
||||
|
||||
() = []
|
||||
[] = []
|
||||
|
||||
Reference in New Issue
Block a user