mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-04-20 13:31:28 +07:00
[python] Cleanup supported/unsupported versions xmls
- Drop support for python 3.5 & 3.6 in compatibility inspection - Fix and remove some outdated tests - Remove xmls for long-unsupported python 2.6 & 3.5 - Regenerate versions.xml - Remove mentions of OS-specific modules GitOrigin-RevId: 3265dd1de8a4f7a41119e10c95bb705ca5845efe
This commit is contained in:
committed by
intellij-monorepo-bot
parent
a653f3cd1f
commit
75b1ecd244
File diff suppressed because it is too large
Load Diff
@@ -744,7 +744,6 @@ INSP.compatibility.feature.allow.new.lines.in.f-strings=allow new lines in expre
|
||||
INSP.compatibility.feature.allow.deep.expression.nesting.in.f-strings=allow nesting expressions in format specifiers this deep
|
||||
INSP.compatibility.feature.allow.backslashes.in.f-strings=allow backslashes inside expression parts of f-strings
|
||||
INSP.compatibility.feature.line.comments.in.f-strings=allow comments inside expression parts of f-strings
|
||||
INSP.compatibility.py35.does.not.support.yield.inside.async.functions=Python version 3.5 does not support 'yield' inside async functions
|
||||
INSP.compatibility.feature.support.yield.from=support this syntax. Delegating to a subgenerator is available since Python 3.3; use explicit iteration over subgenerator instead.
|
||||
INSP.compatibility.pre35.versions.do.not.allow.return.with.argument.inside.generator=Python versions < 3.3 do not allow 'return' with argument inside generator.
|
||||
INSP.compatibility.feature.support.ellipsis.outside.slices=support '...' outside of sequence slicings
|
||||
@@ -758,8 +757,6 @@ INSP.compatibility.positional.argument.after.keyword.argument=Positional argumen
|
||||
INSP.compatibility.positional.argument.after.kwargs=Positional argument after **expression
|
||||
INSP.compatibility.feature.allow.trailing.comma.after.kwargs=allow a trailing comma after **expression
|
||||
INSP.compatibility.feature.allow.trailing.comma.after.positional.vararg=allow a trailing comma after *expression
|
||||
INSP.compatibility.py35.does.not.support.async.inside.comprehensions.and.generator.expressions=Python version 3.5 does not support 'async' inside comprehensions and generator expressions
|
||||
INSP.compatibility.py35.does.not.support.await.inside.comprehensions=Python version 3.5 does not support 'await' inside comprehensions
|
||||
INSP.compatibility.feature.support.positional.only.parameters=support positional-only parameters
|
||||
INSP.compatibility.support.equality.signs.in.fstrings=support equality signs in f-strings
|
||||
INSP.compatibility.feature.support.assignment.expressions=support assignment expressions
|
||||
|
||||
@@ -79,7 +79,7 @@ public class PyCompatibilityInspection extends PyInspection {
|
||||
@NotNull
|
||||
public static final List<LanguageLevel> SUPPORTED_LEVELS = StreamEx
|
||||
.of(LanguageLevel.values())
|
||||
.filter(v -> v == LanguageLevel.PYTHON27 || v.isAtLeast(LanguageLevel.PYTHON35))
|
||||
.filter(v -> v == LanguageLevel.PYTHON27 || v.isAtLeast(LanguageLevel.PYTHON37))
|
||||
.toImmutableList();
|
||||
|
||||
@NotNull
|
||||
|
||||
@@ -14,7 +14,6 @@ import com.intellij.openapi.util.TextRange;
|
||||
import com.intellij.openapi.util.text.StringUtil;
|
||||
import com.intellij.psi.*;
|
||||
import com.intellij.psi.tree.IElementType;
|
||||
import com.intellij.psi.tree.TokenSet;
|
||||
import com.intellij.psi.util.PsiTreeUtil;
|
||||
import com.intellij.psi.util.QualifiedName;
|
||||
import com.intellij.util.ArrayUtil;
|
||||
@@ -22,7 +21,6 @@ import com.intellij.util.containers.ContainerUtil;
|
||||
import com.jetbrains.python.PyNames;
|
||||
import com.jetbrains.python.PyPsiBundle;
|
||||
import com.jetbrains.python.PyTokenTypes;
|
||||
import com.jetbrains.python.codeInsight.dataflow.scope.ScopeUtil;
|
||||
import com.jetbrains.python.codeInsight.imports.AddImportHelper;
|
||||
import com.jetbrains.python.codeInsight.typing.PyTypingTypeProvider;
|
||||
import com.jetbrains.python.inspections.quickfix.*;
|
||||
@@ -37,7 +35,6 @@ import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.function.Predicate;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
/**
|
||||
* User : catherine
|
||||
@@ -428,25 +425,9 @@ public abstract class CompatibilityVisitor extends PyAnnotator {
|
||||
@Override
|
||||
public void visitPyYieldExpression(@NotNull PyYieldExpression node) {
|
||||
super.visitPyYieldExpression(node);
|
||||
|
||||
Optional
|
||||
.ofNullable(ScopeUtil.getScopeOwner(node))
|
||||
.map(owner -> PyUtil.as(owner, PyFunction.class))
|
||||
.filter(function -> function.isAsync() && function.isAsyncAllowed())
|
||||
.ifPresent(
|
||||
function -> {
|
||||
if (!node.isDelegating() &&
|
||||
registerForLanguageLevel(LanguageLevel.PYTHON35) &&
|
||||
myVersionsToProcess.contains(LanguageLevel.PYTHON35)) {
|
||||
registerProblem(node, PyPsiBundle.message("INSP.compatibility.py35.does.not.support.yield.inside.async.functions"));
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
if (!node.isDelegating()) {
|
||||
return;
|
||||
}
|
||||
|
||||
registerForAllMatchingVersions(level -> level.isPython2() && registerForLanguageLevel(level),
|
||||
PyPsiBundle.message("INSP.compatibility.feature.support.yield.from"),
|
||||
node);
|
||||
@@ -664,32 +645,6 @@ public abstract class CompatibilityVisitor extends PyAnnotator {
|
||||
@Override
|
||||
public void visitPyComprehensionElement(@NotNull PyComprehensionElement node) {
|
||||
super.visitPyComprehensionElement(node);
|
||||
|
||||
if (registerForLanguageLevel(LanguageLevel.PYTHON35) && myVersionsToProcess.contains(LanguageLevel.PYTHON35)) {
|
||||
Arrays
|
||||
.stream(node.getNode().getChildren(TokenSet.create(PyTokenTypes.ASYNC_KEYWORD)))
|
||||
.filter(Objects::nonNull)
|
||||
.map(ASTNode::getPsi)
|
||||
.forEach(element -> registerProblem(element,
|
||||
PyPsiBundle.message("INSP.compatibility.py35.does.not.support.async.inside.comprehensions.and.generator.expressions")));
|
||||
|
||||
final Stream<PyPrefixExpression> resultPrefixExpressions = PsiTreeUtil
|
||||
.collectElementsOfType(node.getResultExpression(), PyPrefixExpression.class)
|
||||
.stream();
|
||||
|
||||
final Stream<PyPrefixExpression> ifComponentsPrefixExpressions = node.getIfComponents()
|
||||
.stream()
|
||||
.map(ifComponent -> PsiTreeUtil.collectElementsOfType(ifComponent.getTest(), PyPrefixExpression.class))
|
||||
.flatMap(Collection::stream);
|
||||
|
||||
Stream.concat(resultPrefixExpressions, ifComponentsPrefixExpressions)
|
||||
.filter(expression -> expression.getOperator() == PyTokenTypes.AWAIT_KEYWORD && expression.getOperand() != null)
|
||||
.map(expression -> expression.getNode().findChildByType(PyTokenTypes.AWAIT_KEYWORD))
|
||||
.filter(Objects::nonNull)
|
||||
.map(ASTNode::getPsi)
|
||||
.forEach(element -> registerProblem(element,
|
||||
PyPsiBundle.message("INSP.compatibility.py35.does.not.support.await.inside.comprehensions")));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -1,16 +0,0 @@
|
||||
async def asyncgen():
|
||||
<error descr="Python version 3.5 does not support 'yield' inside async functions">yield 10</error>
|
||||
async def run():
|
||||
{i <error descr="Python version 3.5 does not support 'async' inside comprehensions and generator expressions">async</error> for i in asyncgen()}
|
||||
[i <error descr="Python version 3.5 does not support 'async' inside comprehensions and generator expressions">async</error> for i in asyncgen()]
|
||||
{i: i ** 2 <error descr="Python version 3.5 does not support 'async' inside comprehensions and generator expressions">async</error> for i in asyncgen()}
|
||||
(i ** 2 <error descr="Python version 3.5 does not support 'async' inside comprehensions and generator expressions">async</error> for i in asyncgen())
|
||||
list(i <error descr="Python version 3.5 does not support 'async' inside comprehensions and generator expressions">async</error> for i in asyncgen())
|
||||
|
||||
dataset = {data for line in gen()
|
||||
<error descr="Python version 3.5 does not support 'async' inside comprehensions and generator expressions">async</error> for data in line
|
||||
if check(data)}
|
||||
|
||||
dataset = {data <error descr="Python version 3.5 does not support 'async' inside comprehensions and generator expressions">async</error> for line in asyncgen()
|
||||
<error descr="Python version 3.5 does not support 'async' inside comprehensions and generator expressions">async</error> for data in line
|
||||
if check(data)}
|
||||
@@ -1,82 +0,0 @@
|
||||
async def f11(x):
|
||||
y = {await<error descr="Expression expected">:</error> 10 for await<error descr="Expression expected"> </error>in []} # fail
|
||||
await x
|
||||
|
||||
|
||||
def f12(x):
|
||||
y = {await: 10 for await in []}
|
||||
return x
|
||||
|
||||
|
||||
async def f21(x):
|
||||
y = {mapper(await<error descr="Expression expected">)</error>: 10 for await<error descr="Expression expected"> </error>in []} # fail
|
||||
await x
|
||||
|
||||
|
||||
def f22(x):
|
||||
y = {mapper(await): 10 for await in []}
|
||||
return x
|
||||
|
||||
|
||||
async def f31(x):
|
||||
await<error descr="Expression expected"> </error>= [] # fail
|
||||
y = {i: 10 for i in await<error descr="Expression expected">}</error> # fail
|
||||
await x
|
||||
|
||||
|
||||
def f32(x):
|
||||
await = []
|
||||
y = {i: 10 for i in await}
|
||||
return x
|
||||
|
||||
|
||||
async def f41(x):
|
||||
y = {<error descr="Python version 3.5 does not support 'await' inside comprehensions">await</error> z: 10 for z in []} # fail
|
||||
await x
|
||||
|
||||
|
||||
async def f42(x):
|
||||
y = {mapper(<error descr="Python version 3.5 does not support 'await' inside comprehensions">await</error> z): 10 for z in []} # fail
|
||||
await x
|
||||
|
||||
|
||||
async def f43(x):
|
||||
y = {z: 10 for <error descr="Cannot assign to await expression">await z</error> in []} # fail
|
||||
await x
|
||||
|
||||
|
||||
async def f44(x):
|
||||
y = {z: 10 for z in await x}
|
||||
await x
|
||||
|
||||
|
||||
async def f51():
|
||||
await<error descr="Expression expected"> </error>= 5 # fail
|
||||
return {await<error descr="Expression expected">:</error> 10} # fail
|
||||
|
||||
|
||||
def f52():
|
||||
await = 5
|
||||
return {await: 10}
|
||||
|
||||
|
||||
async def f61():
|
||||
await<error descr="Expression expected"> </error>= 5 # fail
|
||||
return {"a": 10, await<error descr="Expression expected">:</error> 10, "b": 10} # fail
|
||||
|
||||
|
||||
def f62():
|
||||
await = 5
|
||||
return {"a": 10, await: 10, "b": 10}
|
||||
|
||||
|
||||
async def f71(x):
|
||||
return {await x: 10}
|
||||
|
||||
|
||||
async def f72(x):
|
||||
return {"a": 10, await x: 10, "b": 10}
|
||||
|
||||
async def f81(x):
|
||||
{fun: <error descr="Python version 3.5 does not support 'await' inside comprehensions">await</error> fun() for fun in funcs if <error descr="Python version 3.5 does not support 'await' inside comprehensions">await</error> smth}
|
||||
{fun: <error descr="Python version 3.5 does not support 'await' inside comprehensions">await</error> fun() <error descr="Python version 3.5 does not support 'async' inside comprehensions and generator expressions">async</error> for fun in funcs if <error descr="Python version 3.5 does not support 'await' inside comprehensions">await</error> smth}
|
||||
@@ -30,16 +30,6 @@ def f32(x):
|
||||
return x
|
||||
|
||||
|
||||
async def f41(x):
|
||||
y = (<error descr="Python version 3.5 does not support 'await' inside comprehensions">await</error> z for z in []) # fail
|
||||
await x
|
||||
|
||||
|
||||
async def f42(x):
|
||||
y = (mapper(<error descr="Python version 3.5 does not support 'await' inside comprehensions">await</error> z) for z in []) # fail
|
||||
await x
|
||||
|
||||
|
||||
async def f43(x):
|
||||
y = (z for <error descr="Cannot assign to await expression">await z</error> in []) # fail
|
||||
await x
|
||||
|
||||
@@ -1,82 +0,0 @@
|
||||
async def f11(x):
|
||||
y = [await<error descr="Expression expected"> </error>for await<error descr="Expression expected"> </error>in []] # fail
|
||||
await x
|
||||
|
||||
|
||||
def f12(x):
|
||||
y = [await for await in []]
|
||||
return x
|
||||
|
||||
|
||||
async def f21(x):
|
||||
y = [mapper(await<error descr="Expression expected">)</error> for await<error descr="Expression expected"> </error>in []] # fail
|
||||
await x
|
||||
|
||||
|
||||
def f22(x):
|
||||
y = [mapper(await) for await in []]
|
||||
return x
|
||||
|
||||
|
||||
async def f31(x):
|
||||
await<error descr="Expression expected"> </error>= [] # fail
|
||||
y = [i for i in await<error descr="Expression expected">]</error> # fail
|
||||
await x
|
||||
|
||||
|
||||
def f32(x):
|
||||
await = []
|
||||
y = [i for i in await]
|
||||
return x
|
||||
|
||||
|
||||
async def f41(x):
|
||||
y = [<error descr="Python version 3.5 does not support 'await' inside comprehensions">await</error> z for z in []] # fail
|
||||
await x
|
||||
|
||||
|
||||
async def f42(x):
|
||||
y = [mapper(<error descr="Python version 3.5 does not support 'await' inside comprehensions">await</error> z) for z in []] # fail
|
||||
await x
|
||||
|
||||
|
||||
async def f43(x):
|
||||
y = [z for <error descr="Cannot assign to await expression">await z</error> in []] # fail
|
||||
await x
|
||||
|
||||
|
||||
async def f44(x):
|
||||
y = [z for z in await x]
|
||||
await x
|
||||
|
||||
|
||||
async def f51():
|
||||
await<error descr="Expression expected"> </error>= 5 # fail
|
||||
return [await<error descr="Expression expected">]</error> # fail
|
||||
|
||||
|
||||
def f52():
|
||||
await = 5
|
||||
return [await]
|
||||
|
||||
|
||||
async def f61():
|
||||
await<error descr="Expression expected"> </error>= 5 # fail
|
||||
return ["a", await<error descr="Expression expected">,</error> "b"] # fail
|
||||
|
||||
|
||||
def f62():
|
||||
await = 5
|
||||
return ["a", await, "b"]
|
||||
|
||||
|
||||
async def f71(x):
|
||||
return [await x]
|
||||
|
||||
|
||||
async def f72(x):
|
||||
return ["a", await x, "b"]
|
||||
|
||||
async def f81(x):
|
||||
[<error descr="Python version 3.5 does not support 'await' inside comprehensions">await</error> fun() for fun in funcs if <error descr="Python version 3.5 does not support 'await' inside comprehensions">await</error> smth]
|
||||
[<error descr="Python version 3.5 does not support 'await' inside comprehensions">await</error> fun() <error descr="Python version 3.5 does not support 'async' inside comprehensions and generator expressions">async</error> for fun in funcs if <error descr="Python version 3.5 does not support 'await' inside comprehensions">await</error> smth]
|
||||
@@ -1,82 +0,0 @@
|
||||
async def f11(x):
|
||||
y = {await<error descr="Expression expected"> </error>for await<error descr="Expression expected"> </error>in []} # fail
|
||||
await x
|
||||
|
||||
|
||||
def f12(x):
|
||||
y = {await for await in []}
|
||||
return x
|
||||
|
||||
|
||||
async def f21(x):
|
||||
y = {mapper(await<error descr="Expression expected">)</error> for await<error descr="Expression expected"> </error>in []} # fail
|
||||
await x
|
||||
|
||||
|
||||
def f22(x):
|
||||
y = {mapper(await) for await in []}
|
||||
return x
|
||||
|
||||
|
||||
async def f31(x):
|
||||
await<error descr="Expression expected"> </error>= [] # fail
|
||||
y = {i for i in await<error descr="Expression expected">}</error> # fail
|
||||
await x
|
||||
|
||||
|
||||
def f32(x):
|
||||
await = []
|
||||
y = {i for i in await}
|
||||
return x
|
||||
|
||||
|
||||
async def f41(x):
|
||||
y = {<error descr="Python version 3.5 does not support 'await' inside comprehensions">await</error> z for z in []} # fail
|
||||
await x
|
||||
|
||||
|
||||
async def f42(x):
|
||||
y = {mapper(<error descr="Python version 3.5 does not support 'await' inside comprehensions">await</error> z) for z in []} # fail
|
||||
await x
|
||||
|
||||
|
||||
async def f43(x):
|
||||
y = {z for <error descr="Cannot assign to await expression">await z</error> in []} # fail
|
||||
await x
|
||||
|
||||
|
||||
async def f44(x):
|
||||
y = {z for z in await x}
|
||||
await x
|
||||
|
||||
|
||||
async def f51():
|
||||
await<error descr="Expression expected"> </error>= 5 # fail
|
||||
return {await<error descr="Expression expected">}</error> # fail
|
||||
|
||||
|
||||
def f52():
|
||||
await = 5
|
||||
return {await}
|
||||
|
||||
|
||||
async def f61():
|
||||
await<error descr="Expression expected"> </error>= 5 # fail
|
||||
return {"a", await<error descr="Expression expected">,</error> "b"} # fail
|
||||
|
||||
|
||||
def f62():
|
||||
await = 5
|
||||
return {"a", await, "b"}
|
||||
|
||||
|
||||
async def f71(x):
|
||||
return {await x}
|
||||
|
||||
|
||||
async def f72(x):
|
||||
return {"a", await x, "b"}
|
||||
|
||||
async def f81(x):
|
||||
{<error descr="Python version 3.5 does not support 'await' inside comprehensions">await</error> fun() for fun in funcs if <error descr="Python version 3.5 does not support 'await' inside comprehensions">await</error> smth}
|
||||
{<error descr="Python version 3.5 does not support 'await' inside comprehensions">await</error> fun() <error descr="Python version 3.5 does not support 'async' inside comprehensions and generator expressions">async</error> for fun in funcs if <error descr="Python version 3.5 does not support 'await' inside comprehensions">await</error> smth}
|
||||
@@ -1 +1 @@
|
||||
<error descr="Python version 3.5 does not support a trailing 'L'"><error descr="Python version 3.5 does not support this syntax. It requires '0o' prefix for octal literals">01234L</error></error>
|
||||
<error descr="Python version 3.6 does not support a trailing 'L'"><error descr="Python version 3.6 does not support this syntax. It requires '0o' prefix for octal literals">01234L</error></error>
|
||||
@@ -1,58 +0,0 @@
|
||||
# hex
|
||||
<error descr="Python version 3.5 does not support underscores in numeric literals">0xCAFE_F00D</error>
|
||||
|
||||
# oct
|
||||
<error descr="Python version 3.5 does not support underscores in numeric literals">0o1_23</error>
|
||||
<error descr="Python version 3.5 does not support this syntax. It requires '0o' prefix for octal literals"><error descr="Python version 3.5 does not support underscores in numeric literals">01_23</error></error>
|
||||
|
||||
# bin
|
||||
<error descr="Python version 3.5 does not support underscores in numeric literals">0b_0011_1111_0100_1110</error>
|
||||
|
||||
# dec
|
||||
<error descr="Python version 3.5 does not support underscores in numeric literals">10_000_000</error>
|
||||
|
||||
# pointfloat
|
||||
<error descr="Python version 3.5 does not support underscores in numeric literals">10_00.00_23</error>
|
||||
<error descr="Python version 3.5 does not support underscores in numeric literals">10_00.</error>
|
||||
|
||||
# exponentfloat
|
||||
<error descr="Python version 3.5 does not support underscores in numeric literals">10_00.00_23e1_2</error>
|
||||
<error descr="Python version 3.5 does not support underscores in numeric literals">10_00.00_23E1_2</error>
|
||||
<error descr="Python version 3.5 does not support underscores in numeric literals">10_00.e1_2</error>
|
||||
<error descr="Python version 3.5 does not support underscores in numeric literals">10_00.E1_2</error>
|
||||
|
||||
<error descr="Python version 3.5 does not support underscores in numeric literals">10_00.00_23e+1_2</error>
|
||||
<error descr="Python version 3.5 does not support underscores in numeric literals">10_00.00_23E+1_2</error>
|
||||
<error descr="Python version 3.5 does not support underscores in numeric literals">10_00.e+1_2</error>
|
||||
<error descr="Python version 3.5 does not support underscores in numeric literals">10_00.E+1_2</error>
|
||||
|
||||
<error descr="Python version 3.5 does not support underscores in numeric literals">10_00.00_23e-1_2</error>
|
||||
<error descr="Python version 3.5 does not support underscores in numeric literals">10_00.00_23E-1_2</error>
|
||||
<error descr="Python version 3.5 does not support underscores in numeric literals">10_00.e-1_2</error>
|
||||
<error descr="Python version 3.5 does not support underscores in numeric literals">10_00.E-1_2</error>
|
||||
|
||||
|
||||
<error descr="Python version 3.5 does not support underscores in numeric literals">10_0000_23e1_2</error>
|
||||
<error descr="Python version 3.5 does not support underscores in numeric literals">10_0000_23E1_2</error>
|
||||
<error descr="Python version 3.5 does not support underscores in numeric literals">10_00e1_2</error>
|
||||
<error descr="Python version 3.5 does not support underscores in numeric literals">10_00E1_2</error>
|
||||
|
||||
<error descr="Python version 3.5 does not support underscores in numeric literals">10_0000_23e+1_2</error>
|
||||
<error descr="Python version 3.5 does not support underscores in numeric literals">10_0000_23E+1_2</error>
|
||||
<error descr="Python version 3.5 does not support underscores in numeric literals">10_00e+1_2</error>
|
||||
<error descr="Python version 3.5 does not support underscores in numeric literals">10_00E+1_2</error>
|
||||
|
||||
<error descr="Python version 3.5 does not support underscores in numeric literals">10_0000_23e-1_2</error>
|
||||
<error descr="Python version 3.5 does not support underscores in numeric literals">10_0000_23E-1_2</error>
|
||||
<error descr="Python version 3.5 does not support underscores in numeric literals">10_00e-1_2</error>
|
||||
<error descr="Python version 3.5 does not support underscores in numeric literals">10_00E-1_2</error>
|
||||
|
||||
# imag
|
||||
<error descr="Python version 3.5 does not support underscores in numeric literals">10_00.00_23j</error>
|
||||
<error descr="Python version 3.5 does not support underscores in numeric literals">10_00.00_23J</error>
|
||||
|
||||
<error descr="Python version 3.5 does not support underscores in numeric literals">10_00.00_23e1_2j</error>
|
||||
<error descr="Python version 3.5 does not support underscores in numeric literals">10_00.00_23e1_2J</error>
|
||||
|
||||
<error descr="Python version 3.5 does not support underscores in numeric literals">10_000_000j</error>
|
||||
<error descr="Python version 3.5 does not support underscores in numeric literals">10_000_000J</error>
|
||||
@@ -1,4 +1,4 @@
|
||||
def func(xs):
|
||||
yield 42, <error descr="Python version 3.5 does not support unpacking without parentheses in yield statements">*xs</error>
|
||||
yield 42, <error descr="Python version 3.6 does not support unpacking without parentheses in yield statements">*xs</error>
|
||||
yield from 42, <error descr="Can't use starred expression here">*xs</error>
|
||||
return 42, <error descr="Python version 3.5 does not support unpacking without parentheses in return statements">*xs</error>
|
||||
return 42, <error descr="Python version 3.6 does not support unpacking without parentheses in return statements">*xs</error>
|
||||
@@ -1,8 +0,0 @@
|
||||
class C:
|
||||
x<error descr="Python version 3.5 does not support variable annotations">: int</error>
|
||||
y<error descr="Python version 3.5 does not support variable annotations">: None</error> = 42
|
||||
|
||||
def m(self, d):
|
||||
x<error descr="Python version 3.5 does not support variable annotations">: List[bool]</error>
|
||||
d['foo']<error descr="Python version 3.5 does not support variable annotations">: str</error>
|
||||
(d['bar'])<error descr="Python version 3.5 does not support variable annotations">: float</error>
|
||||
@@ -1,5 +0,0 @@
|
||||
async def foo(x):
|
||||
await x
|
||||
<error descr="Python version 3.5 does not support 'yield' inside async functions">yield x</error>
|
||||
<error descr="Python does not support 'yield from' inside async functions">yield from x</error>
|
||||
<error descr="non-empty 'return' inside asynchronous generator">return x</error>
|
||||
@@ -1,2 +1,2 @@
|
||||
<warning descr="Python versions 3.5, 3.6, 3.7, 3.8, 3.9, 3.10, 3.11, 3.12, 3.13 do not support this syntax. The print statement has been replaced with a print() function">print 'foo'</warning>
|
||||
<warning descr="Python versions 3.5, 3.6, 3.7, 3.8, 3.9, 3.10, 3.11, 3.12, 3.13 do not support this syntax. The print statement has been replaced with a print() function">print 'bar'</warning>
|
||||
<warning descr="Python versions 3.7, 3.8, 3.9, 3.10, 3.11, 3.12, 3.13 do not support this syntax. The print statement has been replaced with a print() function">print 'foo'</warning>
|
||||
<warning descr="Python versions 3.7, 3.8, 3.9, 3.10, 3.11, 3.12, 3.13 do not support this syntax. The print statement has been replaced with a print() function">print 'bar'</warning>
|
||||
@@ -1,13 +1,13 @@
|
||||
# Handle a matched regex
|
||||
if (<warning descr="Python versions 2.7, 3.5, 3.6, 3.7 do not support assignment expressions">match := pattern.search(data)</warning>) is not None:
|
||||
if (<warning descr="Python versions 2.7, 3.7 do not support assignment expressions">match := pattern.search(data)</warning>) is not None:
|
||||
pass
|
||||
|
||||
# A loop that can't be trivially rewritten using 2-arg iter()
|
||||
while <warning descr="Python versions 2.7, 3.5, 3.6, 3.7 do not support assignment expressions">chunk := file.read(8192)</warning>:
|
||||
while <warning descr="Python versions 2.7, 3.7 do not support assignment expressions">chunk := file.read(8192)</warning>:
|
||||
pass
|
||||
|
||||
# Reuse a value that's expensive to compute
|
||||
[<warning descr="Python versions 2.7, 3.5, 3.6, 3.7 do not support assignment expressions">y := f(x)</warning>, y**2, y**3]
|
||||
[<warning descr="Python versions 2.7, 3.7 do not support assignment expressions">y := f(x)</warning>, y**2, y**3]
|
||||
|
||||
# Share a subexpression between a comprehension filter clause and its output
|
||||
filtered_data = [y for x in data if (<warning descr="Python versions 2.7, 3.5, 3.6, 3.7 do not support assignment expressions">y := f(x)</warning>) is not None]
|
||||
filtered_data = [y for x in data if (<warning descr="Python versions 2.7, 3.7 do not support assignment expressions">y := f(x)</warning>) is not None]
|
||||
@@ -1,16 +1,16 @@
|
||||
<warning descr="Python version 2.7 does not support this syntax">async</warning> def asyncgen():
|
||||
<warning descr="Python version 3.5 does not support 'yield' inside async functions">yield 10</warning>
|
||||
yield 10
|
||||
<warning descr="Python version 2.7 does not support this syntax">async</warning> def run():
|
||||
{i <warning descr="Python version 3.5 does not support 'async' inside comprehensions and generator expressions">async</warning> for i in asyncgen()}
|
||||
[i <warning descr="Python version 3.5 does not support 'async' inside comprehensions and generator expressions">async</warning> for i in asyncgen()]
|
||||
{i: i ** 2 <warning descr="Python version 3.5 does not support 'async' inside comprehensions and generator expressions">async</warning> for i in asyncgen()}
|
||||
(i ** 2 <warning descr="Python version 3.5 does not support 'async' inside comprehensions and generator expressions">async</warning> for i in asyncgen())
|
||||
list(i <warning descr="Python version 3.5 does not support 'async' inside comprehensions and generator expressions">async</warning> for i in asyncgen())
|
||||
{i async for i in asyncgen()}
|
||||
[i async for i in asyncgen()]
|
||||
{i: i ** 2 async for i in asyncgen()}
|
||||
(i ** 2 async for i in asyncgen())
|
||||
list(i async for i in asyncgen())
|
||||
|
||||
dataset = {data for line in gen()
|
||||
<warning descr="Python version 3.5 does not support 'async' inside comprehensions and generator expressions">async</warning> for data in line
|
||||
async for data in line
|
||||
if check(data)}
|
||||
|
||||
dataset = {data <warning descr="Python version 3.5 does not support 'async' inside comprehensions and generator expressions">async</warning> for line in asyncgen()
|
||||
<warning descr="Python version 3.5 does not support 'async' inside comprehensions and generator expressions">async</warning> for data in line
|
||||
dataset = {data async for line in asyncgen()
|
||||
async for data in line
|
||||
if check(data)}
|
||||
@@ -1,16 +1,16 @@
|
||||
<warning descr="Python version 2.7 does not support this syntax">async</warning> def async2():
|
||||
[<warning descr="Python version 2.7 does not support this syntax"><warning descr="Python version 3.5 does not support 'await' inside comprehensions">await</warning> fun()</warning> for fun in funcs]
|
||||
{<warning descr="Python version 2.7 does not support this syntax"><warning descr="Python version 3.5 does not support 'await' inside comprehensions">await</warning> fun()</warning> for fun in funcs}
|
||||
{fun: <warning descr="Python version 2.7 does not support this syntax"><warning descr="Python version 3.5 does not support 'await' inside comprehensions">await</warning> fun()</warning> for fun in funcs}
|
||||
[<warning descr="Python version 2.7 does not support this syntax">await fun()</warning> for fun in funcs]
|
||||
{<warning descr="Python version 2.7 does not support this syntax">await fun()</warning> for fun in funcs}
|
||||
{fun: <warning descr="Python version 2.7 does not support this syntax">await fun()</warning> for fun in funcs}
|
||||
|
||||
[<warning descr="Python version 2.7 does not support this syntax"><warning descr="Python version 3.5 does not support 'await' inside comprehensions">await</warning> fun()</warning> for fun in funcs if <warning descr="Python version 2.7 does not support this syntax"><warning descr="Python version 3.5 does not support 'await' inside comprehensions">await</warning> smth</warning>]
|
||||
{<warning descr="Python version 2.7 does not support this syntax"><warning descr="Python version 3.5 does not support 'await' inside comprehensions">await</warning> fun()</warning> for fun in funcs if <warning descr="Python version 2.7 does not support this syntax"><warning descr="Python version 3.5 does not support 'await' inside comprehensions">await</warning> smth</warning>}
|
||||
{fun: <warning descr="Python version 2.7 does not support this syntax"><warning descr="Python version 3.5 does not support 'await' inside comprehensions">await</warning> fun()</warning> for fun in funcs if <warning descr="Python version 2.7 does not support this syntax"><warning descr="Python version 3.5 does not support 'await' inside comprehensions">await</warning> smth</warning>}
|
||||
[<warning descr="Python version 2.7 does not support this syntax">await fun()</warning> for fun in funcs if <warning descr="Python version 2.7 does not support this syntax">await smth</warning>]
|
||||
{<warning descr="Python version 2.7 does not support this syntax">await fun()</warning> for fun in funcs if <warning descr="Python version 2.7 does not support this syntax">await smth</warning>}
|
||||
{fun: <warning descr="Python version 2.7 does not support this syntax">await fun()</warning> for fun in funcs if <warning descr="Python version 2.7 does not support this syntax">await smth</warning>}
|
||||
|
||||
[<warning descr="Python version 2.7 does not support this syntax"><warning descr="Python version 3.5 does not support 'await' inside comprehensions">await</warning> fun()</warning> <warning descr="Python version 3.5 does not support 'async' inside comprehensions and generator expressions">async</warning> for fun in funcs]
|
||||
{<warning descr="Python version 2.7 does not support this syntax"><warning descr="Python version 3.5 does not support 'await' inside comprehensions">await</warning> fun()</warning> <warning descr="Python version 3.5 does not support 'async' inside comprehensions and generator expressions">async</warning> for fun in funcs}
|
||||
{fun: <warning descr="Python version 2.7 does not support this syntax"><warning descr="Python version 3.5 does not support 'await' inside comprehensions">await</warning> fun()</warning> <warning descr="Python version 3.5 does not support 'async' inside comprehensions and generator expressions">async</warning> for fun in funcs}
|
||||
[<warning descr="Python version 2.7 does not support this syntax">await fun()</warning> async for fun in funcs]
|
||||
{<warning descr="Python version 2.7 does not support this syntax">await fun()</warning> async for fun in funcs}
|
||||
{fun: <warning descr="Python version 2.7 does not support this syntax">await fun()</warning> async for fun in funcs}
|
||||
|
||||
[<warning descr="Python version 2.7 does not support this syntax"><warning descr="Python version 3.5 does not support 'await' inside comprehensions">await</warning> fun()</warning> <warning descr="Python version 3.5 does not support 'async' inside comprehensions and generator expressions">async</warning> for fun in funcs if <warning descr="Python version 2.7 does not support this syntax"><warning descr="Python version 3.5 does not support 'await' inside comprehensions">await</warning> smth</warning>]
|
||||
{<warning descr="Python version 2.7 does not support this syntax"><warning descr="Python version 3.5 does not support 'await' inside comprehensions">await</warning> fun()</warning> <warning descr="Python version 3.5 does not support 'async' inside comprehensions and generator expressions">async</warning> for fun in funcs if <warning descr="Python version 2.7 does not support this syntax"><warning descr="Python version 3.5 does not support 'await' inside comprehensions">await</warning> smth</warning>}
|
||||
{fun: <warning descr="Python version 2.7 does not support this syntax"><warning descr="Python version 3.5 does not support 'await' inside comprehensions">await</warning> fun()</warning> <warning descr="Python version 3.5 does not support 'async' inside comprehensions and generator expressions">async</warning> for fun in funcs if <warning descr="Python version 2.7 does not support this syntax"><warning descr="Python version 3.5 does not support 'await' inside comprehensions">await</warning> smth</warning>}
|
||||
[<warning descr="Python version 2.7 does not support this syntax">await fun()</warning> async for fun in funcs if <warning descr="Python version 2.7 does not support this syntax">await smth</warning>]
|
||||
{<warning descr="Python version 2.7 does not support this syntax">await fun()</warning> async for fun in funcs if <warning descr="Python version 2.7 does not support this syntax">await smth</warning>}
|
||||
{fun: <warning descr="Python version 2.7 does not support this syntax">await fun()</warning> async for fun in funcs if <warning descr="Python version 2.7 does not support this syntax">await smth</warning>}
|
||||
@@ -1,4 +1,4 @@
|
||||
print(<warning descr="Python versions 3.5, 3.6, 3.7, 3.8, 3.9, 3.10, 3.11, 3.12, 3.13 do not support <>, use != instead">a <> b</warning>)
|
||||
print(<warning descr="Python versions 3.7, 3.8, 3.9, 3.10, 3.11, 3.12, 3.13 do not support <>, use != instead">a <> b</warning>)
|
||||
|
||||
if <warning descr="Python versions 3.5, 3.6, 3.7, 3.8, 3.9, 3.10, 3.11, 3.12, 3.13 do not support <>, use != instead">a <> 2</warning>:
|
||||
if <warning descr="Python versions 3.7, 3.8, 3.9, 3.10, 3.11, 3.12, 3.13 do not support <>, use != instead">a <> 2</warning>:
|
||||
var = a
|
||||
@@ -1 +1 @@
|
||||
<warning descr="Python versions 3.5, 3.6, 3.7, 3.8, 3.9, 3.10, 3.11, 3.12, 3.13 do not have type long. Use int instead.">long("abc")</warning>
|
||||
<warning descr="Python versions 3.7, 3.8, 3.9, 3.10, 3.11, 3.12, 3.13 do not have type long. Use int instead.">long("abc")</warning>
|
||||
@@ -2,7 +2,7 @@ class A(B):
|
||||
def __init__(self):
|
||||
<warning descr="Python version 2.7 does not support this syntax. super() should have arguments in Python 2">super()</warning>
|
||||
|
||||
<warning descr="Python versions 3.5, 3.6, 3.7, 3.8, 3.9, 3.10, 3.11, 3.12, 3.13 do not have method cmp">cmp()</warning>
|
||||
<warning descr="Python versions 3.5, 3.6, 3.7, 3.8, 3.9, 3.10, 3.11, 3.12, 3.13 do not have method reduce">reduce()</warning>
|
||||
<warning descr="Python versions 3.7, 3.8, 3.9, 3.10, 3.11, 3.12, 3.13 do not have method cmp">cmp()</warning>
|
||||
<warning descr="Python versions 3.7, 3.8, 3.9, 3.10, 3.11, 3.12, 3.13 do not have method reduce">reduce()</warning>
|
||||
|
||||
<warning descr="Python versions 3.5, 3.6, 3.7, 3.8, 3.9, 3.10, 3.11, 3.12, 3.13 do not have method buffer">buffer()</warning>
|
||||
<warning descr="Python versions 3.7, 3.8, 3.9, 3.10, 3.11, 3.12, 3.13 do not have method buffer">buffer()</warning>
|
||||
@@ -1,3 +1,3 @@
|
||||
import math
|
||||
print(<warning descr="Python versions 2.7, 3.5 do not support a 'F' prefix">f</warning>'{math.pi <warning descr="Python versions 2.7, 3.5, 3.6, 3.7 do not support equality signs in f-strings">=</warning>:.2f}')
|
||||
print(<warning descr="Python versions 2.7, 3.5 do not support a 'F' prefix">f</warning>'{<warning descr="Python versions 2.7, 3.5 do not support a 'F' prefix">f</warning>"{3.1415<warning descr="Python versions 2.7, 3.5, 3.6, 3.7 do not support equality signs in f-strings">=</warning>:.1f}":*^20}')
|
||||
print(<warning descr="Python version 2.7 does not support a 'F' prefix">f</warning>'{math.pi <warning descr="Python versions 2.7, 3.7 do not support equality signs in f-strings">=</warning>:.2f}')
|
||||
print(<warning descr="Python version 2.7 does not support a 'F' prefix">f</warning>'{<warning descr="Python version 2.7 does not support a 'F' prefix">f</warning>"{3.1415<warning descr="Python versions 2.7, 3.7 do not support equality signs in f-strings">=</warning>:.1f}":*^20}')
|
||||
@@ -1,4 +1,4 @@
|
||||
try:
|
||||
do_smth()
|
||||
<warning descr="Python versions 3.5, 3.6, 3.7, 3.8, 3.9, 3.10, 3.11, 3.12, 3.13 do not support this syntax">except ImportError, ImportWarning:
|
||||
<warning descr="Python versions 3.7, 3.8, 3.9, 3.10, 3.11, 3.12, 3.13 do not support this syntax">except ImportError, ImportWarning:
|
||||
do()</warning>
|
||||
@@ -1,9 +1,9 @@
|
||||
<warning descr="Python versions 2.7, 3.5, 3.6, 3.7, 3.8 do not support arbitrary expressions as a decorator">@x[0][1]</warning>
|
||||
<warning descr="Python versions 2.7, 3.7, 3.8 do not support arbitrary expressions as a decorator">@x[0][1]</warning>
|
||||
@my_decorator
|
||||
def say_whee():
|
||||
print("Whee!")
|
||||
|
||||
<warning descr="Python versions 2.7, 3.5, 3.6, 3.7, 3.8 do not support arbitrary expressions as a decorator">@foo[0].wrapper</warning>
|
||||
<warning descr="Python versions 2.7, 3.7, 3.8 do not support arbitrary expressions as a decorator">@foo[0].wrapper</warning>
|
||||
@foo.bar()
|
||||
def say_whee():
|
||||
print("Whee!")
|
||||
@@ -1 +1 @@
|
||||
from <warning descr="Python versions 3.5, 3.6, 3.7, 3.8, 3.9, 3.10, 3.11, 3.12, 3.13 do not have module Bastion">Bastion</warning> import BastionClass
|
||||
from <warning descr="Python versions 3.7, 3.8, 3.9, 3.10, 3.11, 3.12, 3.13 do not have module Bastion">Bastion</warning> import BastionClass
|
||||
@@ -1,4 +1,4 @@
|
||||
import <warning descr="Python versions 3.5, 3.6, 3.7, 3.8, 3.9, 3.10, 3.11, 3.12, 3.13 do not have module Bastion">Bastion</warning>
|
||||
import <warning descr="Python versions 3.7, 3.8, 3.9, 3.10, 3.11, 3.12, 3.13 do not have module Bastion">Bastion</warning>
|
||||
|
||||
from <warning descr="Python version 2.7 does not have module asyncio">asyncio</warning> import Queue
|
||||
from io import StringIO
|
||||
@@ -1,3 +1,3 @@
|
||||
<error descr="Python version 2.7 does not have module builtins">import builtins</error>
|
||||
|
||||
<warning descr="Python versions 3.5, 3.6, 3.7, 3.8, 3.9, 3.10, 3.11, 3.12, 3.13 do not have module __builtin__">import __builtin__</warning>
|
||||
<warning descr="Python versions 3.7, 3.8, 3.9, 3.10, 3.11, 3.12, 3.13 do not have module __builtin__">import __builtin__</warning>
|
||||
@@ -1 +1 @@
|
||||
var = [x for x in <warning descr="Python versions 3.5, 3.6, 3.7, 3.8, 3.9, 3.10, 3.11, 3.12, 3.13 do not support this syntax in list comprehensions">1, 2, 3</warning>]
|
||||
var = [x for x in <warning descr="Python versions 3.7, 3.8, 3.9, 3.10, 3.11, 3.12, 3.13 do not support this syntax in list comprehensions">1, 2, 3</warning>]
|
||||
@@ -1,8 +1,8 @@
|
||||
a = <error descr="Python does not support a trailing 'u'">12u</error>
|
||||
b = <warning descr="Python versions 3.5, 3.6, 3.7, 3.8, 3.9, 3.10, 3.11, 3.12, 3.13 do not support a trailing 'l'">12l</warning>
|
||||
b = <warning descr="Python versions 3.7, 3.8, 3.9, 3.10, 3.11, 3.12, 3.13 do not support a trailing 'l'">12l</warning>
|
||||
c = <error descr="Python does not support a trailing 'll'">12ll</error>
|
||||
d = <error descr="Python does not support a trailing 'U'">12U</error>
|
||||
e = <warning descr="Python versions 3.5, 3.6, 3.7, 3.8, 3.9, 3.10, 3.11, 3.12, 3.13 do not support a trailing 'L'">12L</warning>
|
||||
e = <warning descr="Python versions 3.7, 3.8, 3.9, 3.10, 3.11, 3.12, 3.13 do not support a trailing 'L'">12L</warning>
|
||||
f = <error descr="Python does not support a trailing 'LL'">12LL</error>
|
||||
g = <error descr="Python does not support a trailing 'ul'">0x12ful</error>
|
||||
h = <error descr="Python does not support a trailing 'uL'">0X12fuL</error>
|
||||
@@ -20,4 +20,4 @@ s = <error descr="Python does not support a trailing 'llu'">12llu</error>
|
||||
t = <error descr="Python does not support a trailing 'llU'">12llU</error>
|
||||
u = <error descr="Python does not support a trailing 'LLu'">12LLu</error>
|
||||
v = <error descr="Python does not support a trailing 'LLU'">12LLU</error>
|
||||
w = <warning descr="Python versions 3.5, 3.6, 3.7, 3.8, 3.9, 3.10, 3.11, 3.12, 3.13 do not support this syntax. It requires '0o' prefix for octal literals">04</warning><error descr="End of statement expected">8</error>
|
||||
w = <warning descr="Python versions 3.7, 3.8, 3.9, 3.10, 3.11, 3.12, 3.13 do not support this syntax. It requires '0o' prefix for octal literals">04</warning><error descr="End of statement expected">8</error>
|
||||
@@ -1,7 +1,7 @@
|
||||
with <warning descr="Python versions 2.7, 3.5, 3.6, 3.7, 3.8 do not support parenthesized context expressions">(</warning>
|
||||
with <warning descr="Python versions 2.7, 3.7, 3.8 do not support parenthesized context expressions">(</warning>
|
||||
foo() as baz,
|
||||
foo() as bar
|
||||
<warning descr="Python versions 2.7, 3.5, 3.6, 3.7, 3.8 do not support parenthesized context expressions">)</warning>:
|
||||
<warning descr="Python versions 2.7, 3.7, 3.8 do not support parenthesized context expressions">)</warning>:
|
||||
pass
|
||||
|
||||
with (foo()) as baz:
|
||||
@@ -10,8 +10,8 @@ with (foo()) as baz:
|
||||
with (foo()):
|
||||
pass
|
||||
|
||||
with <warning descr="Python versions 2.7, 3.5, 3.6, 3.7, 3.8 do not support parenthesized context expressions">(</warning>foo(),<warning descr="Python versions 2.7, 3.5, 3.6, 3.7, 3.8 do not support parenthesized context expressions">)</warning>:
|
||||
with <warning descr="Python versions 2.7, 3.7, 3.8 do not support parenthesized context expressions">(</warning>foo(),<warning descr="Python versions 2.7, 3.7, 3.8 do not support parenthesized context expressions">)</warning>:
|
||||
pass
|
||||
|
||||
with <warning descr="Python versions 2.7, 3.5, 3.6, 3.7, 3.8 do not support parenthesized context expressions">(</warning>foo(), bar()<warning descr="Python versions 2.7, 3.5, 3.6, 3.7, 3.8 do not support parenthesized context expressions">)</warning>:
|
||||
with <warning descr="Python versions 2.7, 3.7, 3.8 do not support parenthesized context expressions">(</warning>foo(), bar()<warning descr="Python versions 2.7, 3.7, 3.8 do not support parenthesized context expressions">)</warning>:
|
||||
pass
|
||||
|
||||
@@ -1 +1 @@
|
||||
<warning descr="Python versions 3.5, 3.6, 3.7, 3.8, 3.9, 3.10, 3.11, 3.12, 3.13 do not support this syntax. The print statement has been replaced with a print() function">print "One value"</warning>
|
||||
<warning descr="Python versions 3.7, 3.8, 3.9, 3.10, 3.11, 3.12, 3.13 do not support this syntax. The print statement has been replaced with a print() function">print "One value"</warning>
|
||||
@@ -1,4 +1,4 @@
|
||||
try:
|
||||
a
|
||||
except :
|
||||
<warning descr="Python versions 3.5, 3.6, 3.7, 3.8, 3.9, 3.10, 3.11, 3.12, 3.13 do not support this syntax">raise ImportError, ImportWarning</warning>
|
||||
<warning descr="Python versions 3.7, 3.8, 3.9, 3.10, 3.11, 3.12, 3.13 do not support this syntax">raise ImportError, ImportWarning</warning>
|
||||
|
||||
@@ -1 +1 @@
|
||||
a = <warning descr="Python versions 3.5, 3.6, 3.7, 3.8, 3.9, 3.10, 3.11, 3.12, 3.13 do not support backquotes, use repr() instead">`imp.acquire_lock()`</warning>
|
||||
a = <warning descr="Python versions 3.7, 3.8, 3.9, 3.10, 3.11, 3.12, 3.13 do not support backquotes, use repr() instead">`imp.acquire_lock()`</warning>
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
|
||||
# Supported in Python 3.11
|
||||
a[1, <warning descr="Python version 2.7 does not support starred expressions in tuples, lists, and sets"><warning descr="Python versions 3.5, 3.6, 3.7, 3.8, 3.9, 3.10 do not support starred expressions in subscriptions">*x</warning></warning>, 3]
|
||||
a[1, <warning descr="Python version 2.7 does not support starred expressions in tuples, lists, and sets"><warning descr="Python versions 3.5, 3.6, 3.7, 3.8, 3.9, 3.10 do not support starred expressions in subscriptions">*x</warning></warning>]
|
||||
a[1, <warning descr="Python version 2.7 does not support starred expressions in tuples, lists, and sets"><warning descr="Python versions 3.5, 3.6, 3.7, 3.8, 3.9, 3.10 do not support starred expressions in subscriptions">*x</warning></warning>, <warning descr="Python version 2.7 does not support starred expressions in tuples, lists, and sets"><warning descr="Python versions 3.5, 3.6, 3.7, 3.8, 3.9, 3.10 do not support starred expressions in subscriptions">*x</warning></warning>]
|
||||
a[1:2, <warning descr="Python version 2.7 does not support starred expressions in tuples, lists, and sets"><warning descr="Python versions 3.5, 3.6, 3.7, 3.8, 3.9, 3.10 do not support starred expressions in subscriptions">*x</warning></warning>]
|
||||
a[1, <warning descr="Python version 2.7 does not support starred expressions in tuples, lists, and sets"><warning descr="Python versions 3.7, 3.8, 3.9, 3.10 do not support starred expressions in subscriptions">*x</warning></warning>, 3]
|
||||
a[1, <warning descr="Python version 2.7 does not support starred expressions in tuples, lists, and sets"><warning descr="Python versions 3.7, 3.8, 3.9, 3.10 do not support starred expressions in subscriptions">*x</warning></warning>]
|
||||
a[1, <warning descr="Python version 2.7 does not support starred expressions in tuples, lists, and sets"><warning descr="Python versions 3.7, 3.8, 3.9, 3.10 do not support starred expressions in subscriptions">*x</warning></warning>, <warning descr="Python version 2.7 does not support starred expressions in tuples, lists, and sets"><warning descr="Python versions 3.7, 3.8, 3.9, 3.10 do not support starred expressions in subscriptions">*x</warning></warning>]
|
||||
a[1:2, <warning descr="Python version 2.7 does not support starred expressions in tuples, lists, and sets"><warning descr="Python versions 3.7, 3.8, 3.9, 3.10 do not support starred expressions in subscriptions">*x</warning></warning>]
|
||||
|
||||
# Not supported
|
||||
a[(<error descr="Can't use starred expression here">*x</error>)]
|
||||
|
||||
@@ -1,18 +1,18 @@
|
||||
|
||||
# Supported in Python 3.11
|
||||
def f(*args: <warning descr="Python versions 2.7, 3.5, 3.6, 3.7, 3.8, 3.9, 3.10 do not support starred expressions in type annotations">*Ts</warning>): pass
|
||||
def f(*args: <warning descr="Python versions 2.7, 3.5, 3.6, 3.7, 3.8, 3.9, 3.10 do not support starred expressions in type annotations">*tuple[int, ...]</warning>): pass
|
||||
def f(*args: <warning descr="Python versions 2.7, 3.5, 3.6, 3.7, 3.8, 3.9, 3.10 do not support starred expressions in type annotations">*tuple[int, <warning descr="Python version 2.7 does not support starred expressions in tuples, lists, and sets"><warning descr="Python versions 3.5, 3.6, 3.7, 3.8, 3.9, 3.10 do not support starred expressions in subscriptions">*Ts</warning></warning>]</warning>): pass
|
||||
def f(*args: <warning descr="Python versions 2.7, 3.7, 3.8, 3.9, 3.10 do not support starred expressions in type annotations">*Ts</warning>): pass
|
||||
def f(*args: <warning descr="Python versions 2.7, 3.7, 3.8, 3.9, 3.10 do not support starred expressions in type annotations">*tuple[int, ...]</warning>): pass
|
||||
def f(*args: <warning descr="Python versions 2.7, 3.7, 3.8, 3.9, 3.10 do not support starred expressions in type annotations">*tuple[int, <warning descr="Python version 2.7 does not support starred expressions in tuples, lists, and sets"><warning descr="Python versions 3.7, 3.8, 3.9, 3.10 do not support starred expressions in subscriptions">*Ts</warning></warning>]</warning>): pass
|
||||
|
||||
def f() -> tuple[<warning descr="Python version 2.7 does not support starred expressions in tuples, lists, and sets"><warning descr="Python versions 3.5, 3.6, 3.7, 3.8, 3.9, 3.10 do not support starred expressions in subscriptions">*Ts</warning></warning>]: pass
|
||||
def f() -> tuple[int, <warning descr="Python version 2.7 does not support starred expressions in tuples, lists, and sets"><warning descr="Python versions 3.5, 3.6, 3.7, 3.8, 3.9, 3.10 do not support starred expressions in subscriptions">*Ts</warning></warning>]: pass
|
||||
def f() -> tuple[int, <warning descr="Python version 2.7 does not support starred expressions in tuples, lists, and sets"><warning descr="Python versions 3.5, 3.6, 3.7, 3.8, 3.9, 3.10 do not support starred expressions in subscriptions">*tuple[int, ...]</warning></warning>]: pass
|
||||
def f() -> tuple[<warning descr="Python version 2.7 does not support starred expressions in tuples, lists, and sets"><warning descr="Python versions 3.7, 3.8, 3.9, 3.10 do not support starred expressions in subscriptions">*Ts</warning></warning>]: pass
|
||||
def f() -> tuple[int, <warning descr="Python version 2.7 does not support starred expressions in tuples, lists, and sets"><warning descr="Python versions 3.7, 3.8, 3.9, 3.10 do not support starred expressions in subscriptions">*Ts</warning></warning>]: pass
|
||||
def f() -> tuple[int, <warning descr="Python version 2.7 does not support starred expressions in tuples, lists, and sets"><warning descr="Python versions 3.7, 3.8, 3.9, 3.10 do not support starred expressions in subscriptions">*tuple[int, ...]</warning></warning>]: pass
|
||||
|
||||
x<warning descr="Python versions 2.7, 3.5 do not support variable annotations">: tuple[<warning descr="Python version 2.7 does not support starred expressions in tuples, lists, and sets"><warning descr="Python versions 3.5, 3.6, 3.7, 3.8, 3.9, 3.10 do not support starred expressions in subscriptions">*Ts</warning></warning>]</warning>
|
||||
x<warning descr="Python versions 2.7, 3.5 do not support variable annotations">: tuple[int, <warning descr="Python version 2.7 does not support starred expressions in tuples, lists, and sets"><warning descr="Python versions 3.5, 3.6, 3.7, 3.8, 3.9, 3.10 do not support starred expressions in subscriptions">*Ts</warning></warning>]</warning>
|
||||
x<warning descr="Python versions 2.7, 3.5 do not support variable annotations">: tuple[int, <warning descr="Python version 2.7 does not support starred expressions in tuples, lists, and sets"><warning descr="Python versions 3.5, 3.6, 3.7, 3.8, 3.9, 3.10 do not support starred expressions in subscriptions">*tuple[str, ...]</warning></warning>]</warning>
|
||||
x<warning descr="Python version 2.7 does not support variable annotations">: tuple[<warning descr="Python version 2.7 does not support starred expressions in tuples, lists, and sets"><warning descr="Python versions 3.7, 3.8, 3.9, 3.10 do not support starred expressions in subscriptions">*Ts</warning></warning>]</warning>
|
||||
x<warning descr="Python version 2.7 does not support variable annotations">: tuple[int, <warning descr="Python version 2.7 does not support starred expressions in tuples, lists, and sets"><warning descr="Python versions 3.7, 3.8, 3.9, 3.10 do not support starred expressions in subscriptions">*Ts</warning></warning>]</warning>
|
||||
x<warning descr="Python version 2.7 does not support variable annotations">: tuple[int, <warning descr="Python version 2.7 does not support starred expressions in tuples, lists, and sets"><warning descr="Python versions 3.7, 3.8, 3.9, 3.10 do not support starred expressions in subscriptions">*tuple[str, ...]</warning></warning>]</warning>
|
||||
|
||||
# Error in Python 3.11
|
||||
def f(x: <error descr="Can't use starred expression here">*b</error>): pass
|
||||
def f8(**kwargs: <error descr="Can't use starred expression here">*a</error>): pass
|
||||
x<warning descr="Python versions 2.7, 3.5 do not support variable annotations">: <error descr="Can't use starred expression here">*b</error></warning>
|
||||
x<warning descr="Python version 2.7 does not support variable annotations">: <error descr="Can't use starred expression here">*b</error></warning>
|
||||
@@ -2,15 +2,15 @@ a = u"String"
|
||||
|
||||
# Python 3.6
|
||||
|
||||
a = <error descr="Python version 2.7 does not support a 'F' prefix"><warning descr="Python version 3.5 does not support a 'F' prefix">f</warning></error>""
|
||||
a = <error descr="Python version 2.7 does not support a 'F' prefix"><warning descr="Python version 3.5 does not support a 'F' prefix">F</warning></error>""
|
||||
a = <error descr="Python version 2.7 does not support a 'RF' prefix"><warning descr="Python version 3.5 does not support a 'RF' prefix">rf</warning></error>""
|
||||
a = <error descr="Python version 2.7 does not support a 'FR' prefix"><warning descr="Python version 3.5 does not support a 'FR' prefix">fr</warning></error>""
|
||||
a = <error descr="Python version 2.7 does not support a 'FU' prefix"><warning descr="Python versions 3.5, 3.6, 3.7, 3.8, 3.9, 3.10, 3.11, 3.12, 3.13 do not support a 'FU' prefix">fu</warning></error>""
|
||||
a = <error descr="Python version 2.7 does not support a 'UF' prefix"><warning descr="Python versions 3.5, 3.6, 3.7, 3.8, 3.9, 3.10, 3.11, 3.12, 3.13 do not support a 'UF' prefix">uf</warning></error>""
|
||||
a = <error descr="Python version 2.7 does not support a 'BF' prefix"><warning descr="Python versions 3.5, 3.6, 3.7, 3.8, 3.9, 3.10, 3.11, 3.12, 3.13 do not support a 'BF' prefix">bf</warning></error>""
|
||||
a = <error descr="Python version 2.7 does not support a 'FB' prefix"><warning descr="Python versions 3.5, 3.6, 3.7, 3.8, 3.9, 3.10, 3.11, 3.12, 3.13 do not support a 'FB' prefix">fb</warning></error>""
|
||||
a = <error descr="Python version 2.7 does not support a 'UFR' prefix"><warning descr="Python versions 3.5, 3.6, 3.7, 3.8, 3.9, 3.10, 3.11, 3.12, 3.13 do not support a 'UFR' prefix">ufr</warning></error>""
|
||||
a = <error descr="Python version 2.7 does not support a 'F' prefix">f</error>""
|
||||
a = <error descr="Python version 2.7 does not support a 'F' prefix">F</error>""
|
||||
a = <error descr="Python version 2.7 does not support a 'RF' prefix">rf</error>""
|
||||
a = <error descr="Python version 2.7 does not support a 'FR' prefix">fr</error>""
|
||||
a = <error descr="Python version 2.7 does not support a 'FU' prefix"><warning descr="Python versions 3.7, 3.8, 3.9, 3.10, 3.11, 3.12, 3.13 do not support a 'FU' prefix">fu</warning></error>""
|
||||
a = <error descr="Python version 2.7 does not support a 'UF' prefix"><warning descr="Python versions 3.7, 3.8, 3.9, 3.10, 3.11, 3.12, 3.13 do not support a 'UF' prefix">uf</warning></error>""
|
||||
a = <error descr="Python version 2.7 does not support a 'BF' prefix"><warning descr="Python versions 3.7, 3.8, 3.9, 3.10, 3.11, 3.12, 3.13 do not support a 'BF' prefix">bf</warning></error>""
|
||||
a = <error descr="Python version 2.7 does not support a 'FB' prefix"><warning descr="Python versions 3.7, 3.8, 3.9, 3.10, 3.11, 3.12, 3.13 do not support a 'FB' prefix">fb</warning></error>""
|
||||
a = <error descr="Python version 2.7 does not support a 'UFR' prefix"><warning descr="Python versions 3.7, 3.8, 3.9, 3.10, 3.11, 3.12, 3.13 do not support a 'UFR' prefix">ufr</warning></error>""
|
||||
|
||||
# python 3.3
|
||||
|
||||
@@ -35,7 +35,7 @@ a = b""
|
||||
|
||||
a = u""
|
||||
a = r""
|
||||
a = <warning descr="Python versions 3.5, 3.6, 3.7, 3.8, 3.9, 3.10, 3.11, 3.12, 3.13 do not support a 'UR' prefix">ur</warning>""
|
||||
a = <warning descr="Python versions 3.7, 3.8, 3.9, 3.10, 3.11, 3.12, 3.13 do not support a 'UR' prefix">ur</warning>""
|
||||
a = b""
|
||||
a = br""
|
||||
|
||||
@@ -43,14 +43,14 @@ a = br""
|
||||
|
||||
a = u""
|
||||
a = r""
|
||||
a = <warning descr="Python versions 3.5, 3.6, 3.7, 3.8, 3.9, 3.10, 3.11, 3.12, 3.13 do not support a 'UR' prefix">ur</warning>""
|
||||
a = <warning descr="Python versions 3.7, 3.8, 3.9, 3.10, 3.11, 3.12, 3.13 do not support a 'UR' prefix">ur</warning>""
|
||||
|
||||
# combined, PY-32321
|
||||
b = <warning descr="Python versions 3.5, 3.6, 3.7, 3.8, 3.9, 3.10, 3.11, 3.12, 3.13 do not allow to mix bytes and non-bytes literals">u"" b""</warning>
|
||||
b = <warning descr="Python versions 3.5, 3.6, 3.7, 3.8, 3.9, 3.10, 3.11, 3.12, 3.13 do not allow to mix bytes and non-bytes literals">r"" b""</warning>
|
||||
b = <warning descr="Python versions 3.5, 3.6, 3.7, 3.8, 3.9, 3.10, 3.11, 3.12, 3.13 do not allow to mix bytes and non-bytes literals"><error descr="Python version 2.7 does not support a 'F' prefix"><warning descr="Python version 3.5 does not support a 'F' prefix">f</warning></error>"" b""</warning>
|
||||
b = <warning descr="Python versions 3.7, 3.8, 3.9, 3.10, 3.11, 3.12, 3.13 do not allow to mix bytes and non-bytes literals">u"" b""</warning>
|
||||
b = <warning descr="Python versions 3.7, 3.8, 3.9, 3.10, 3.11, 3.12, 3.13 do not allow to mix bytes and non-bytes literals">r"" b""</warning>
|
||||
b = <warning descr="Python versions 3.7, 3.8, 3.9, 3.10, 3.11, 3.12, 3.13 do not allow to mix bytes and non-bytes literals"><error descr="Python version 2.7 does not support a 'F' prefix">f</error>"" b""</warning>
|
||||
|
||||
# never was available
|
||||
a = <error descr="Python version 2.7 does not support a 'RR' prefix"><warning descr="Python versions 3.5, 3.6, 3.7, 3.8, 3.9, 3.10, 3.11, 3.12, 3.13 do not support a 'RR' prefix">rr</warning></error>""
|
||||
a = <error descr="Python version 2.7 does not support a 'BB' prefix"><warning descr="Python versions 3.5, 3.6, 3.7, 3.8, 3.9, 3.10, 3.11, 3.12, 3.13 do not support a 'BB' prefix">bb</warning></error>""
|
||||
a = <error descr="Python version 2.7 does not support a 'UU' prefix"><warning descr="Python versions 3.5, 3.6, 3.7, 3.8, 3.9, 3.10, 3.11, 3.12, 3.13 do not support a 'UU' prefix">uu</warning></error>""
|
||||
a = <error descr="Python version 2.7 does not support a 'RR' prefix"><warning descr="Python versions 3.7, 3.8, 3.9, 3.10, 3.11, 3.12, 3.13 do not support a 'RR' prefix">rr</warning></error>""
|
||||
a = <error descr="Python version 2.7 does not support a 'BB' prefix"><warning descr="Python versions 3.7, 3.8, 3.9, 3.10, 3.11, 3.12, 3.13 do not support a 'BB' prefix">bb</warning></error>""
|
||||
a = <error descr="Python version 2.7 does not support a 'UU' prefix"><warning descr="Python versions 3.7, 3.8, 3.9, 3.10, 3.11, 3.12, 3.13 do not support a 'UU' prefix">uu</warning></error>""
|
||||
@@ -1 +1 @@
|
||||
<error descr="Python version 3.11 does not support type alias statements" textAttributesKey="ERRORS_ATTRIBUTES"><warning descr="Python versions 2.7, 3.5, 3.6, 3.7, 3.8, 3.9, 3.10, 3.11 do not support type alias statements" textAttributesKey="WARNING_ATTRIBUTES">type MyType = str</warning></error>
|
||||
<error descr="Python version 3.11 does not support type alias statements" textAttributesKey="ERRORS_ATTRIBUTES"><warning descr="Python versions 2.7, 3.7, 3.8, 3.9, 3.10, 3.11 do not support type alias statements" textAttributesKey="WARNING_ATTRIBUTES">type MyType = str</warning></error>
|
||||
@@ -1,3 +1,3 @@
|
||||
class Clazz<error descr="Python version 3.11 does not support this syntax" textAttributesKey="ERRORS_ATTRIBUTES"><warning descr="Python versions 2.7, 3.5, 3.6, 3.7, 3.8, 3.9, 3.10, 3.11 do not support this syntax" textAttributesKey="WARNING_ATTRIBUTES">[T]</warning></error>:
|
||||
def foo<error descr="Python version 3.11 does not support this syntax" textAttributesKey="ERRORS_ATTRIBUTES"><warning descr="Python versions 2.7, 3.5, 3.6, 3.7, 3.8, 3.9, 3.10, 3.11 do not support this syntax" textAttributesKey="WARNING_ATTRIBUTES">[U]</warning></error>(self):
|
||||
class Clazz<error descr="Python version 3.11 does not support this syntax" textAttributesKey="ERRORS_ATTRIBUTES"><warning descr="Python versions 2.7, 3.7, 3.8, 3.9, 3.10, 3.11 do not support this syntax" textAttributesKey="WARNING_ATTRIBUTES">[T]</warning></error>:
|
||||
def foo<error descr="Python version 3.11 does not support this syntax" textAttributesKey="ERRORS_ATTRIBUTES"><warning descr="Python versions 2.7, 3.7, 3.8, 3.9, 3.10, 3.11 do not support this syntax" textAttributesKey="WARNING_ATTRIBUTES">[U]</warning></error>(self):
|
||||
pass
|
||||
@@ -1,58 +1,58 @@
|
||||
# hex
|
||||
<warning descr="Python versions 2.7, 3.5 do not support underscores in numeric literals">0xCAFE_F00D</warning>
|
||||
<warning descr="Python version 2.7 does not support underscores in numeric literals">0xCAFE_F00D</warning>
|
||||
|
||||
# oct
|
||||
<warning descr="Python versions 2.7, 3.5 do not support underscores in numeric literals">0o1_23</warning>
|
||||
<error descr="Python version 3.6 does not support this syntax. It requires '0o' prefix for octal literals"><warning descr="Python versions 2.7, 3.5 do not support underscores in numeric literals"><warning descr="Python versions 3.5, 3.7, 3.8, 3.9, 3.10, 3.11, 3.12, 3.13 do not support this syntax. It requires '0o' prefix for octal literals">01_23</warning></warning></error>
|
||||
<warning descr="Python version 2.7 does not support underscores in numeric literals">0o1_23</warning>
|
||||
<error descr="Python version 3.6 does not support this syntax. It requires '0o' prefix for octal literals"><warning descr="Python version 2.7 does not support underscores in numeric literals"><warning descr="Python versions 3.7, 3.8, 3.9, 3.10, 3.11, 3.12, 3.13 do not support this syntax. It requires '0o' prefix for octal literals">01_23</warning></warning></error>
|
||||
|
||||
# bin
|
||||
<warning descr="Python versions 2.7, 3.5 do not support underscores in numeric literals">0b_0011_1111_0100_1110</warning>
|
||||
<warning descr="Python version 2.7 does not support underscores in numeric literals">0b_0011_1111_0100_1110</warning>
|
||||
|
||||
# dec
|
||||
<warning descr="Python versions 2.7, 3.5 do not support underscores in numeric literals">10_000_000</warning>
|
||||
<warning descr="Python version 2.7 does not support underscores in numeric literals">10_000_000</warning>
|
||||
|
||||
# pointfloat
|
||||
<warning descr="Python versions 2.7, 3.5 do not support underscores in numeric literals">10_00.00_23</warning>
|
||||
<warning descr="Python versions 2.7, 3.5 do not support underscores in numeric literals">10_00.</warning>
|
||||
<warning descr="Python version 2.7 does not support underscores in numeric literals">10_00.00_23</warning>
|
||||
<warning descr="Python version 2.7 does not support underscores in numeric literals">10_00.</warning>
|
||||
|
||||
# exponentfloat
|
||||
<warning descr="Python versions 2.7, 3.5 do not support underscores in numeric literals">10_00.00_23e1_2</warning>
|
||||
<warning descr="Python versions 2.7, 3.5 do not support underscores in numeric literals">10_00.00_23E1_2</warning>
|
||||
<warning descr="Python versions 2.7, 3.5 do not support underscores in numeric literals">10_00.e1_2</warning>
|
||||
<warning descr="Python versions 2.7, 3.5 do not support underscores in numeric literals">10_00.E1_2</warning>
|
||||
<warning descr="Python version 2.7 does not support underscores in numeric literals">10_00.00_23e1_2</warning>
|
||||
<warning descr="Python version 2.7 does not support underscores in numeric literals">10_00.00_23E1_2</warning>
|
||||
<warning descr="Python version 2.7 does not support underscores in numeric literals">10_00.e1_2</warning>
|
||||
<warning descr="Python version 2.7 does not support underscores in numeric literals">10_00.E1_2</warning>
|
||||
|
||||
<warning descr="Python versions 2.7, 3.5 do not support underscores in numeric literals">10_00.00_23e+1_2</warning>
|
||||
<warning descr="Python versions 2.7, 3.5 do not support underscores in numeric literals">10_00.00_23E+1_2</warning>
|
||||
<warning descr="Python versions 2.7, 3.5 do not support underscores in numeric literals">10_00.e+1_2</warning>
|
||||
<warning descr="Python versions 2.7, 3.5 do not support underscores in numeric literals">10_00.E+1_2</warning>
|
||||
<warning descr="Python version 2.7 does not support underscores in numeric literals">10_00.00_23e+1_2</warning>
|
||||
<warning descr="Python version 2.7 does not support underscores in numeric literals">10_00.00_23E+1_2</warning>
|
||||
<warning descr="Python version 2.7 does not support underscores in numeric literals">10_00.e+1_2</warning>
|
||||
<warning descr="Python version 2.7 does not support underscores in numeric literals">10_00.E+1_2</warning>
|
||||
|
||||
<warning descr="Python versions 2.7, 3.5 do not support underscores in numeric literals">10_00.00_23e-1_2</warning>
|
||||
<warning descr="Python versions 2.7, 3.5 do not support underscores in numeric literals">10_00.00_23E-1_2</warning>
|
||||
<warning descr="Python versions 2.7, 3.5 do not support underscores in numeric literals">10_00.e-1_2</warning>
|
||||
<warning descr="Python versions 2.7, 3.5 do not support underscores in numeric literals">10_00.E-1_2</warning>
|
||||
<warning descr="Python version 2.7 does not support underscores in numeric literals">10_00.00_23e-1_2</warning>
|
||||
<warning descr="Python version 2.7 does not support underscores in numeric literals">10_00.00_23E-1_2</warning>
|
||||
<warning descr="Python version 2.7 does not support underscores in numeric literals">10_00.e-1_2</warning>
|
||||
<warning descr="Python version 2.7 does not support underscores in numeric literals">10_00.E-1_2</warning>
|
||||
|
||||
|
||||
<warning descr="Python versions 2.7, 3.5 do not support underscores in numeric literals">10_0000_23e1_2</warning>
|
||||
<warning descr="Python versions 2.7, 3.5 do not support underscores in numeric literals">10_0000_23E1_2</warning>
|
||||
<warning descr="Python versions 2.7, 3.5 do not support underscores in numeric literals">10_00e1_2</warning>
|
||||
<warning descr="Python versions 2.7, 3.5 do not support underscores in numeric literals">10_00E1_2</warning>
|
||||
<warning descr="Python version 2.7 does not support underscores in numeric literals">10_0000_23e1_2</warning>
|
||||
<warning descr="Python version 2.7 does not support underscores in numeric literals">10_0000_23E1_2</warning>
|
||||
<warning descr="Python version 2.7 does not support underscores in numeric literals">10_00e1_2</warning>
|
||||
<warning descr="Python version 2.7 does not support underscores in numeric literals">10_00E1_2</warning>
|
||||
|
||||
<warning descr="Python versions 2.7, 3.5 do not support underscores in numeric literals">10_0000_23e+1_2</warning>
|
||||
<warning descr="Python versions 2.7, 3.5 do not support underscores in numeric literals">10_0000_23E+1_2</warning>
|
||||
<warning descr="Python versions 2.7, 3.5 do not support underscores in numeric literals">10_00e+1_2</warning>
|
||||
<warning descr="Python versions 2.7, 3.5 do not support underscores in numeric literals">10_00E+1_2</warning>
|
||||
<warning descr="Python version 2.7 does not support underscores in numeric literals">10_0000_23e+1_2</warning>
|
||||
<warning descr="Python version 2.7 does not support underscores in numeric literals">10_0000_23E+1_2</warning>
|
||||
<warning descr="Python version 2.7 does not support underscores in numeric literals">10_00e+1_2</warning>
|
||||
<warning descr="Python version 2.7 does not support underscores in numeric literals">10_00E+1_2</warning>
|
||||
|
||||
<warning descr="Python versions 2.7, 3.5 do not support underscores in numeric literals">10_0000_23e-1_2</warning>
|
||||
<warning descr="Python versions 2.7, 3.5 do not support underscores in numeric literals">10_0000_23E-1_2</warning>
|
||||
<warning descr="Python versions 2.7, 3.5 do not support underscores in numeric literals">10_00e-1_2</warning>
|
||||
<warning descr="Python versions 2.7, 3.5 do not support underscores in numeric literals">10_00E-1_2</warning>
|
||||
<warning descr="Python version 2.7 does not support underscores in numeric literals">10_0000_23e-1_2</warning>
|
||||
<warning descr="Python version 2.7 does not support underscores in numeric literals">10_0000_23E-1_2</warning>
|
||||
<warning descr="Python version 2.7 does not support underscores in numeric literals">10_00e-1_2</warning>
|
||||
<warning descr="Python version 2.7 does not support underscores in numeric literals">10_00E-1_2</warning>
|
||||
|
||||
# imag
|
||||
<warning descr="Python versions 2.7, 3.5 do not support underscores in numeric literals">10_00.00_23j</warning>
|
||||
<warning descr="Python versions 2.7, 3.5 do not support underscores in numeric literals">10_00.00_23J</warning>
|
||||
<warning descr="Python version 2.7 does not support underscores in numeric literals">10_00.00_23j</warning>
|
||||
<warning descr="Python version 2.7 does not support underscores in numeric literals">10_00.00_23J</warning>
|
||||
|
||||
<warning descr="Python versions 2.7, 3.5 do not support underscores in numeric literals">10_00.00_23e1_2j</warning>
|
||||
<warning descr="Python versions 2.7, 3.5 do not support underscores in numeric literals">10_00.00_23e1_2J</warning>
|
||||
<warning descr="Python version 2.7 does not support underscores in numeric literals">10_00.00_23e1_2j</warning>
|
||||
<warning descr="Python version 2.7 does not support underscores in numeric literals">10_00.00_23e1_2J</warning>
|
||||
|
||||
<warning descr="Python versions 2.7, 3.5 do not support underscores in numeric literals">10_000_000j</warning>
|
||||
<warning descr="Python versions 2.7, 3.5 do not support underscores in numeric literals">10_000_000J</warning>
|
||||
<warning descr="Python version 2.7 does not support underscores in numeric literals">10_000_000j</warning>
|
||||
<warning descr="Python version 2.7 does not support underscores in numeric literals">10_000_000J</warning>
|
||||
@@ -1,7 +1,7 @@
|
||||
def gen(xs):
|
||||
yield 42, <warning descr="Python version 2.7 does not support starred expressions in tuples, lists, and sets"><warning descr="Python versions 3.5, 3.6, 3.7 do not support unpacking without parentheses in yield statements">*xs</warning></warning>
|
||||
yield 42, <warning descr="Python version 2.7 does not support starred expressions in tuples, lists, and sets"><warning descr="Python version 3.7 does not support unpacking without parentheses in yield statements">*xs</warning></warning>
|
||||
<warning descr="Python version 2.7 does not support this syntax. Delegating to a subgenerator is available since Python 3.3; use explicit iteration over subgenerator instead.">yield from 42, <error descr="Can't use starred expression here"><warning descr="Python version 2.7 does not support starred expressions in tuples, lists, and sets">*xs</warning></error></warning>
|
||||
|
||||
|
||||
def func(xs):
|
||||
return 42, <warning descr="Python version 2.7 does not support starred expressions in tuples, lists, and sets"><warning descr="Python versions 3.5, 3.6, 3.7 do not support unpacking without parentheses in return statements">*xs</warning></warning>
|
||||
return 42, <warning descr="Python version 2.7 does not support starred expressions in tuples, lists, and sets"><warning descr="Python version 3.7 does not support unpacking without parentheses in return statements">*xs</warning></warning>
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
class C:
|
||||
x<warning descr="Python versions 2.7, 3.5 do not support variable annotations">: int</warning>
|
||||
y<warning descr="Python versions 2.7, 3.5 do not support variable annotations">: None</warning> = 42
|
||||
x<warning descr="Python version 2.7 does not support variable annotations">: int</warning>
|
||||
y<warning descr="Python version 2.7 does not support variable annotations">: None</warning> = 42
|
||||
|
||||
def m(self, d):
|
||||
x<warning descr="Python versions 2.7, 3.5 do not support variable annotations">: List[bool]</warning>
|
||||
d['foo']<warning descr="Python versions 2.7, 3.5 do not support variable annotations">: str</warning>
|
||||
(d['bar'])<warning descr="Python versions 2.7, 3.5 do not support variable annotations">: float</warning>
|
||||
x<warning descr="Python version 2.7 does not support variable annotations">: List[bool]</warning>
|
||||
d['foo']<warning descr="Python version 2.7 does not support variable annotations">: str</warning>
|
||||
(d['bar'])<warning descr="Python version 2.7 does not support variable annotations">: float</warning>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<warning descr="Python version 2.7 does not support this syntax">async</warning> def foo(x):
|
||||
<warning descr="Python version 2.7 does not support this syntax">await x</warning>
|
||||
<warning descr="Python version 3.5 does not support 'yield' inside async functions">yield x</warning>
|
||||
yield x
|
||||
<error descr="Python does not support 'yield from' inside async functions"><warning descr="Python version 2.7 does not support this syntax. Delegating to a subgenerator is available since Python 3.3; use explicit iteration over subgenerator instead.">yield from x</warning></error>
|
||||
<error descr="non-empty 'return' inside asynchronous generator"><warning descr="Python versions < 3.3 do not allow 'return' with argument inside generator.">return x</warning></error>
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
<warning descr="Python versions 2.7, 3.5, 3.6, 3.7, 3.8, 3.9 do not support match statements">match</warning> 42:
|
||||
<warning descr="Python versions 2.7, 3.7, 3.8, 3.9 do not support match statements">match</warning> 42:
|
||||
case 42:
|
||||
pass
|
||||
|
||||
@@ -1 +1 @@
|
||||
print(<warning descr="Python versions 3.5, 3.6, 3.7, 3.8, 3.9, 3.10, 3.11, 3.12, 3.13 do not support <>, use != instead">a<caret> <> b</warning>)
|
||||
print(<warning descr="Python versions 3.7, 3.8, 3.9, 3.10, 3.11, 3.12, 3.13 do not support <>, use != instead">a<caret> <> b</warning>)
|
||||
@@ -1 +1 @@
|
||||
<warning descr="Python versions 3.5, 3.6, 3.7, 3.8, 3.9, 3.10, 3.11, 3.12, 3.13 do not support this syntax. The print statement has been replaced with a print() function">print "foo"</warning>
|
||||
<warning descr="Python versions 3.7, 3.8, 3.9, 3.10, 3.11, 3.12, 3.13 do not support this syntax. The print statement has been replaced with a print() function">print "foo"</warning>
|
||||
@@ -1,4 +1,4 @@
|
||||
class A:
|
||||
pass
|
||||
|
||||
assert isinstance(A(), <warning descr="Python versions 2.7, 3.5, 3.6, 3.7, 3.8, 3.9 do not allow writing union types as X | Y"><caret>int | str</warning>)
|
||||
assert isinstance(A(), <warning descr="Python versions 2.7, 3.7, 3.8, 3.9 do not allow writing union types as X | Y"><caret>int | str</warning>)
|
||||
@@ -1,4 +1,4 @@
|
||||
class A:
|
||||
pass
|
||||
|
||||
assert issubclass(A, <warning descr="Python versions 2.7, 3.5, 3.6, 3.7, 3.8, 3.9 do not allow writing union types as X | Y"><caret>int | str</warning>)
|
||||
assert issubclass(A, <warning descr="Python versions 2.7, 3.7, 3.8, 3.9 do not allow writing union types as X | Y"><caret>int | str</warning>)
|
||||
@@ -1,5 +1,5 @@
|
||||
from typing import Union
|
||||
|
||||
|
||||
def foo() -> <warning descr="Python versions 2.7, 3.5, 3.6, 3.7, 3.8, 3.9 do not allow writing union types as X | Y"><caret>int | Union[str, bool]</warning>:
|
||||
def foo() -> <warning descr="Python versions 2.7, 3.7, 3.8, 3.9 do not allow writing union types as X | Y"><caret>int | Union[str, bool]</warning>:
|
||||
return 42
|
||||
@@ -1,4 +1,4 @@
|
||||
from typing import Union
|
||||
|
||||
|
||||
a<warning descr="Python versions 2.7, 3.5 do not support variable annotations">: <warning descr="Python versions 2.7, 3.5, 3.6, 3.7, 3.8, 3.9 do not allow writing union types as X | Y"><caret>int | Union[str, bool]</warning></warning> = 42
|
||||
a<warning descr="Python version 2.7 does not support variable annotations">: <warning descr="Python versions 2.7, 3.7, 3.8, 3.9 do not allow writing union types as X | Y"><caret>int | Union[str, bool]</warning></warning> = 42
|
||||
@@ -1,4 +1,4 @@
|
||||
class A:
|
||||
pass
|
||||
|
||||
assert isinstance(A(), <warning descr="Python versions 2.7, 3.5, 3.6, 3.7, 3.8, 3.9 do not allow writing union types as X | Y"><caret>int | str</warning>)
|
||||
assert isinstance(A(), <warning descr="Python versions 2.7, 3.7, 3.8, 3.9 do not allow writing union types as X | Y"><caret>int | str</warning>)
|
||||
@@ -1,4 +1,4 @@
|
||||
class A:
|
||||
pass
|
||||
|
||||
assert issubclass(A, <warning descr="Python versions 2.7, 3.5, 3.6, 3.7, 3.8, 3.9 do not allow writing union types as X | Y"><caret>int | str</warning>)
|
||||
assert issubclass(A, <warning descr="Python versions 2.7, 3.7, 3.8, 3.9 do not allow writing union types as X | Y"><caret>int | str</warning>)
|
||||
@@ -1,2 +1,2 @@
|
||||
def foo() -> <warning descr="Python versions 2.7, 3.5, 3.6, 3.7, 3.8, 3.9 do not allow writing union types as X | Y"><caret>int | str</warning>:
|
||||
def foo() -> <warning descr="Python versions 2.7, 3.7, 3.8, 3.9 do not allow writing union types as X | Y"><caret>int | str</warning>:
|
||||
return 42
|
||||
@@ -1,2 +1,2 @@
|
||||
def foo() -> <warning descr="Python versions 2.7, 3.5, 3.6, 3.7, 3.8, 3.9 do not allow writing union types as X | Y"><caret>int | str | list[dict[int, str]] | set[list[int]] | dict[str, int]</warning>:
|
||||
def foo() -> <warning descr="Python versions 2.7, 3.7, 3.8, 3.9 do not allow writing union types as X | Y"><caret>int | str | list[dict[int, str]] | set[list[int]] | dict[str, int]</warning>:
|
||||
return 42
|
||||
@@ -1,2 +1,2 @@
|
||||
def foo() -> <warning descr="Python versions 2.7, 3.5, 3.6, 3.7, 3.8, 3.9 do not allow writing union types as X | Y"><caret>int | None | str</warning>:
|
||||
def foo() -> <warning descr="Python versions 2.7, 3.7, 3.8, 3.9 do not allow writing union types as X | Y"><caret>int | None | str</warning>:
|
||||
return 42
|
||||
@@ -1,2 +1,2 @@
|
||||
def foo() -> <warning descr="Python versions 2.7, 3.5, 3.6, 3.7, 3.8, 3.9 do not allow writing union types as X | Y">int<caret> | None</warning>:
|
||||
def foo() -> <warning descr="Python versions 2.7, 3.7, 3.8, 3.9 do not allow writing union types as X | Y">int<caret> | None</warning>:
|
||||
return 42
|
||||
@@ -1,2 +1,2 @@
|
||||
def foo() -> <warning descr="Python versions 2.7, 3.5, 3.6, 3.7, 3.8, 3.9 do not allow writing union types as X | Y"><caret>int | str | None</warning>:
|
||||
def foo() -> <warning descr="Python versions 2.7, 3.7, 3.8, 3.9 do not allow writing union types as X | Y"><caret>int | str | None</warning>:
|
||||
return 42
|
||||
@@ -1,2 +1,2 @@
|
||||
def foo() -> <warning descr="Python versions 2.7, 3.5, 3.6, 3.7, 3.8, 3.9 do not allow writing union types as X | Y">None | int<caret></warning>:
|
||||
def foo() -> <warning descr="Python versions 2.7, 3.7, 3.8, 3.9 do not allow writing union types as X | Y">None | int<caret></warning>:
|
||||
return 42
|
||||
@@ -1,4 +1,4 @@
|
||||
class A:
|
||||
pass
|
||||
|
||||
assert isinstance(A(), <warning descr="Python versions 2.7, 3.5, 3.6, 3.7, 3.8, 3.9 do not allow writing union types as X | Y">(int<caret> | str | (list[str] | bool | float)) | dict[str, int]</warning>)
|
||||
assert isinstance(A(), <warning descr="Python versions 2.7, 3.7, 3.8, 3.9 do not allow writing union types as X | Y">(int<caret> | str | (list[str] | bool | float)) | dict[str, int]</warning>)
|
||||
@@ -233,34 +233,20 @@ public class PythonHighlightingTest extends PyTestCase {
|
||||
}
|
||||
|
||||
public void testAsync() {
|
||||
doTest(LanguageLevel.PYTHON35, true, true);
|
||||
doTest(LanguageLevel.PYTHON36, true, true);
|
||||
}
|
||||
|
||||
public void testAwait() {
|
||||
doTest(LanguageLevel.PYTHON35, true, true);
|
||||
}
|
||||
|
||||
// PY-19679
|
||||
public void testAwaitInListPy35() {
|
||||
doTest(LanguageLevel.PYTHON35, true, false);
|
||||
doTest(LanguageLevel.PYTHON36, true, true);
|
||||
}
|
||||
|
||||
public void testAwaitInTuple() {
|
||||
doTest(LanguageLevel.PYTHON35, true, false);
|
||||
doTest(LanguageLevel.PYTHON36, true, false);
|
||||
}
|
||||
|
||||
public void testAwaitInGenerator() {
|
||||
doTest(LanguageLevel.PYTHON35, true, false);
|
||||
doTest(LanguageLevel.PYTHON36, true, false);
|
||||
}
|
||||
|
||||
public void testAwaitInSetPy35() {
|
||||
doTest(LanguageLevel.PYTHON35, true, false);
|
||||
}
|
||||
|
||||
public void testAwaitInDictPy35() {
|
||||
doTest(LanguageLevel.PYTHON35, true, false);
|
||||
}
|
||||
|
||||
// PY-20770
|
||||
public void testAwaitInListPy36() {
|
||||
doTest(LanguageLevel.PYTHON36, true, false);
|
||||
@@ -276,17 +262,13 @@ public class PythonHighlightingTest extends PyTestCase {
|
||||
doTest(LanguageLevel.PYTHON36, true, false);
|
||||
}
|
||||
|
||||
public void testYieldInsideAsyncDefPy35() {
|
||||
doTest(LanguageLevel.PYTHON35, false, false);
|
||||
}
|
||||
|
||||
// PY-20770
|
||||
public void testYieldInsideAsyncDefPy36() {
|
||||
doTest(LanguageLevel.PYTHON36, true, false);
|
||||
}
|
||||
|
||||
public void testUnpackingStar() {
|
||||
doTest(LanguageLevel.PYTHON35, false, false);
|
||||
doTest(LanguageLevel.PYTHON36, false, false);
|
||||
}
|
||||
|
||||
// PY-52930
|
||||
@@ -336,7 +318,7 @@ public class PythonHighlightingTest extends PyTestCase {
|
||||
|
||||
// PY-35961
|
||||
public void testUnpackingInNonParenthesizedTuplesInReturnAndYieldBefore38() {
|
||||
doTest(LanguageLevel.PYTHON35, false, false);
|
||||
doTest(LanguageLevel.PYTHON36, false, false);
|
||||
}
|
||||
|
||||
// PY-35961
|
||||
@@ -357,7 +339,7 @@ public class PythonHighlightingTest extends PyTestCase {
|
||||
|
||||
// PY-19775
|
||||
public void testAsyncBuiltinMethods() {
|
||||
doTest(LanguageLevel.PYTHON35, true, false);
|
||||
doTest(LanguageLevel.PYTHON36, true, false);
|
||||
}
|
||||
|
||||
// PY-28017
|
||||
@@ -371,15 +353,7 @@ public class PythonHighlightingTest extends PyTestCase {
|
||||
}
|
||||
|
||||
public void testImplicitOctLongInteger() {
|
||||
doTest(LanguageLevel.PYTHON35, true, false);
|
||||
}
|
||||
|
||||
public void testUnderscoresInNumericLiterals() {
|
||||
doTest(LanguageLevel.PYTHON35, true, false);
|
||||
}
|
||||
|
||||
public void testVariableAnnotations() {
|
||||
doTest(LanguageLevel.PYTHON35, true, false);
|
||||
doTest(LanguageLevel.PYTHON36, true, false);
|
||||
}
|
||||
|
||||
public void testIllegalVariableAnnotationTarget() {
|
||||
@@ -390,11 +364,6 @@ public class PythonHighlightingTest extends PyTestCase {
|
||||
doTest();
|
||||
}
|
||||
|
||||
// PY-20770
|
||||
public void testAsyncComprehensionsPy35() {
|
||||
doTest(LanguageLevel.PYTHON35, true, false);
|
||||
}
|
||||
|
||||
// PY-20770
|
||||
public void testAsyncComprehensionsPy36() {
|
||||
doTest(LanguageLevel.PYTHON36, true, false);
|
||||
@@ -623,12 +592,12 @@ public class PythonHighlightingTest extends PyTestCase {
|
||||
|
||||
// PY-26491
|
||||
public void testMultiplePositionalContainers() {
|
||||
doTest(LanguageLevel.PYTHON35, true, false);
|
||||
doTest(LanguageLevel.PYTHON36, true, false);
|
||||
}
|
||||
|
||||
// PY-26491
|
||||
public void testMultipleKeywordContainers() {
|
||||
doTest(LanguageLevel.PYTHON35, true, false);
|
||||
doTest(LanguageLevel.PYTHON36, true, false);
|
||||
}
|
||||
|
||||
// PY-26510
|
||||
|
||||
@@ -28,7 +28,7 @@ public class Py3CompatibilityInspectionTest extends PyInspectionTestCase {
|
||||
// PY-44974
|
||||
public void testBitwiseOrUnionOnReturnType() {
|
||||
doTestByText("""
|
||||
def foo() -> <warning descr="Python versions 2.7, 3.5, 3.6, 3.7, 3.8, 3.9 do not allow writing union types as X | Y">int | str</warning>:
|
||||
def foo() -> <warning descr="Python versions 2.7, 3.7, 3.8, 3.9 do not allow writing union types as X | Y">int | str</warning>:
|
||||
return 42
|
||||
""");
|
||||
}
|
||||
@@ -48,13 +48,13 @@ public class Py3CompatibilityInspectionTest extends PyInspectionTestCase {
|
||||
class A:
|
||||
pass
|
||||
|
||||
assert isinstance(A(), <warning descr="Python versions 2.7, 3.5, 3.6, 3.7, 3.8, 3.9 do not allow writing union types as X | Y">int | str</warning>)
|
||||
assert isinstance(A(), <warning descr="Python versions 2.7, 3.7, 3.8, 3.9 do not allow writing union types as X | Y">int | str</warning>)
|
||||
""");
|
||||
}
|
||||
|
||||
// PY-44974
|
||||
public void testBitwiseOrUnionInPrint() {
|
||||
doTestByText("print(<warning descr=\"Python versions 2.7, 3.5, 3.6, 3.7, 3.8, 3.9 do not allow writing union types as X | Y\">int | str | dict</warning>)");
|
||||
doTestByText("print(<warning descr=\"Python versions 2.7, 3.7, 3.8, 3.9 do not allow writing union types as X | Y\">int | str | dict</warning>)");
|
||||
}
|
||||
|
||||
// PY-44974
|
||||
@@ -69,7 +69,7 @@ public class Py3CompatibilityInspectionTest extends PyInspectionTestCase {
|
||||
// PY-44974
|
||||
public void testBitwiseOrUnionInParenthesizedUnionOfUnions() {
|
||||
doTestByText("""
|
||||
def foo() -> <warning descr="Python versions 2.7, 3.5, 3.6, 3.7, 3.8, 3.9 do not allow writing union types as X | Y">int | ((list | dict) | (float | str))</warning>:
|
||||
def foo() -> <warning descr="Python versions 2.7, 3.7, 3.8, 3.9 do not allow writing union types as X | Y">int | ((list | dict) | (float | str))</warning>:
|
||||
pass
|
||||
""");
|
||||
}
|
||||
|
||||
@@ -226,7 +226,7 @@ public class PyCompatibilityInspectionTest extends PyInspectionTestCase {
|
||||
runWithLanguageLevel(
|
||||
LanguageLevel.PYTHON38,
|
||||
() -> doTestByText(
|
||||
"def f(pos1, <warning descr=\"Python versions 2.7, 3.5, 3.6, 3.7 do not support positional-only parameters\">/</warning>, pos_or_kwd, *, kwd1):\n" +
|
||||
"def f(pos1, <warning descr=\"Python versions 2.7, 3.7 do not support positional-only parameters\">/</warning>, pos_or_kwd, *, kwd1):\n" +
|
||||
" pass"
|
||||
)
|
||||
);
|
||||
@@ -246,7 +246,7 @@ public class PyCompatibilityInspectionTest extends PyInspectionTestCase {
|
||||
try:
|
||||
print("a")
|
||||
finally:
|
||||
<warning descr="Python versions 2.7, 3.5, 3.6, 3.7 do not support 'continue' inside 'finally' clause">continue</warning>""")
|
||||
<warning descr="Python versions 2.7, 3.7 do not support 'continue' inside 'finally' clause">continue</warning>""")
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user