-- Test cases for parser errors. Each test case consists of two sections.
-- The first section contains [case NAME] followed by the input code, while
-- the second section contains [out] followed by the output from the parser.
--
-- The input file name in errors is "file".
--
-- Comments starting with "--" in this file will be ignored, except for lines
-- starting with "----" that are not ignored. The first two dashes of these
-- lines are interpreted as escapes and removed.

[case testInvalidFunction]
def f()
  pass
[out]
file:1: error: Invalid syntax

[case testUnexpectedIndent]
1
 2
[out]
file:2: error: Unexpected indent

[case testInconsistentIndent]
if x:
  1
   1
[out]
file:3: error: Unexpected indent

[case testInconsistentIndent2]
if x:
   1
  1
[out]
file:3: error: Unindent does not match any outer indentation level

[case testInvalidBinaryOp]
1>
a*
a+1*
[out]
file:1: error: Invalid syntax

[case testDoubleStar]
**a
[out]
file:1: error: Invalid syntax

[case testMissingSuperClass]
class A(:
  pass
[out]
file:1: error: Invalid syntax

[case testUnexpectedEof]
if 1:
[out]
file:1: error: Expected an indented block

[case testInvalidKeywordArguments1]
f(x=y, z)
[out]
file:1: error: Positional argument follows keyword argument

[case testInvalidKeywordArguments2]
f(**x, y)
[out]
file:1: error: Positional argument follows keyword argument unpacking

[case testInvalidBareAsteriskAndVarArgs2]
def f(*x: A, *) -> None: pass
[out]
file:1: error: Invalid syntax

[case testInvalidBareAsteriskAndVarArgs3]
def f(*, *x: A) -> None: pass
[out]
file:1: error: Invalid syntax

[case testInvalidBareAsteriskAndVarArgs4]
def f(*, **x: A) -> None: pass
[out]
file:1: error: Named arguments must follow bare *

[case testInvalidBareAsterisk1]
def f(*) -> None: pass
[out]
file:1: error: Named arguments must follow bare *

[case testInvalidBareAsterisk2]
def f(x, *) -> None: pass
[out]
file:1: error: Named arguments must follow bare *

[case testInvalidFuncDefArgs1]
def f(x = y, x): pass
[out]
file:1: error: Non-default argument follows default argument

[case testInvalidFuncDefArgs3]
def f(**x, y):
   pass
[out]
file:1: error: Invalid syntax

[case testInvalidFuncDefArgs4]
def f(**x, y=x):
    pass
[out]
file:1: error: Invalid syntax

[case testInvalidTypeComment]
0
x = 0 # type: A A
[out]
file:2: error: Syntax error in type comment "A A"

[case testInvalidTypeComment2]
0
x = 0 # type: A[
[out]
file:2: error: Syntax error in type comment "A["

[case testInvalidTypeComment3]
0
x = 0 # type:
[out]
file:2: error: Syntax error in type comment ""

[case testInvalidTypeComment4]
0
x = 0 # type: *
[out]
file:2: error: Syntax error in type comment "*"

[case testInvalidTypeComment5]
0
x = 0 # type:# some comment
[out]
file:2: error: Syntax error in type comment ""

[case testInvalidTypeComment6]
0
x = 0 # type: *# comment #6
[out]
file:2: error: Syntax error in type comment "*"

[case testInvalidTypeComment7]
0
x = 0 # type: A B #comment #7
[out]
file:2: error: Syntax error in type comment "A B"

[case testMissingBracket]
def foo(
[out]
file:1: error: '(' was never closed

[case testInvalidSignatureInComment1]
def f(): # type: x
  pass
[out]
file:1: error: Syntax error in type comment "x"
file:1: note: Suggestion: wrap argument types in parentheses

[case testInvalidSignatureInComment2]
def f(): # type:
  pass
[out]
file:1: error: Syntax error in type comment ""

[case testInvalidSignatureInComment3]
def f(): # type: (
  pass
[out]
file:1: error: Syntax error in type comment "("

[case testInvalidSignatureInComment4]
def f(): # type: (.
  pass
[out]
file:1: error: Syntax error in type comment "(."

[case testInvalidSignatureInComment5]
def f(): # type: (x
  pass
[out]
file:1: error: Syntax error in type comment "(x"

[case testInvalidSignatureInComment6]
def f(): # type: (x)
  pass
[out]
file:1: error: Syntax error in type comment "(x)"

[case testInvalidSignatureInComment7]
def f(): # type: (x) -
  pass
[out]
file:1: error: Syntax error in type comment "(x) -"

[case testInvalidSignatureInComment8]
def f(): # type: (x) ->
  pass
[out]
file:1: error: Syntax error in type comment "(x) ->"

[case testInvalidSignatureInComment9]
def f(): # type: (x) -> .
  pass
[out]
file:1: error: Syntax error in type comment "(x) -> ."

[case testInvalidSignatureInComment10]
def f(): # type: (x) -> x x
  pass
[out]
file:1: error: Syntax error in type comment "(x) -> x x"

[case testInvalidSignatureInComment11]
def f(): # type: # abc comment
  pass
[out]
file:1: error: Syntax error in type comment ""

[case testInvalidSignatureInComment12]
def f(): # type: (x) -> x x # comment #2
  pass
[out]
file:1: error: Syntax error in type comment "(x) -> x x"


[case testDuplicateSignatures1]
def f() -> None: # type: () -> None
  pass
def f(): # type: () -> None
    pass
[out]
file:1: error: Function has duplicate type signatures

[case testDuplicateSignatures2]
def f(x, y: Z): # type: (x, y) -> z
  pass
[out]
file:1: error: Function has duplicate type signatures

[case testTooManyTypes]
def f(x, y): # type: (X, Y, Z) -> z
  pass
[out]
file:1: error: Type signature has too many arguments

[case testTooFewTypes]
def f(x, y): # type: (X) -> z
  pass
[out]
file:1: error: Type signature has too few arguments

[case testCommentFunctionAnnotationVarArgMispatch-skip]
# see mypy issue #1997
def f(x): # type: (*X) -> Y
    pass
def g(*x): # type: (X) -> Y
    pass
[out]
file:1: error: Inconsistent use of "*" in function signature
file:3: error: Inconsistent use of "*" in function signature

[case testCommentFunctionAnnotationVarArgMispatch2-skip]
# see mypy issue #1997
def f(*x, **y): # type: (**X, *Y) -> Z
    pass
def g(*x, **y): # type: (*X, *Y) -> Z
    pass
[out]
file:1: error: Inconsistent use of "*" in function signature
file:3: error: Syntax error in type comment
file:3: error: Inconsistent use of "*" in function signature
file:3: error: Inconsistent use of "**" in function signature

[case testPrintStatementInPython3]
print 1
[out]
file:1: error: Missing parentheses in call to 'print'. Did you mean print(1)?

[case testInvalidConditionInConditionalExpression]
1 if 2, 3 else 4
[out]
file:1: error: Invalid syntax

[case testInvalidConditionInConditionalExpression2]
1 if x for y in z else 4
[out]
file:1: error: Invalid syntax

[case testInvalidConditionInConditionalExpression3]
1 if x else for y in z
[out]
file:1: error: Invalid syntax

[case testYieldFromNotRightParameter]
def f():
    yield from
[out]
file:2: error: Invalid syntax

[case testYieldFromAfterReturn]
def f():
    return yield from h()
[out]
file:2: error: Invalid syntax

[case testImportDotModule]
import .x
[out]
file:1: error: Invalid syntax

[case testImportDot]
import .
[out]
file:1: error: Invalid syntax

[case testInvalidFunctionName]
def while(): pass
[out]
file:1: error: Invalid syntax

[case testInvalidEllipsis1]
...0
..._
...a
[out]
file:1: error: Invalid syntax

[case testBlockStatementInSingleLineIf]
if 1: if 2: pass
[out]
file:1: error: Invalid syntax

[case testBlockStatementInSingleLineIf2]
if 1: while 2: pass
[out]
file:1: error: Invalid syntax

[case testBlockStatementInSingleLineIf3]
if 1: for x in y: pass
[out]
file:1: error: Invalid syntax

[case testUnexpectedEllipsis]
a = a...
[out]
file:1: error: Invalid syntax

[case testParseErrorBeforeUnicodeLiteral]
x u'y'
[out]
file:1: error: Invalid syntax

[case testParseErrorInExtendedSlicing]
x[:,
[out]
file:1: error: Unexpected EOF while parsing

[case testParseErrorInExtendedSlicing2]
x[:,::
[out]
file:1: error: Unexpected EOF while parsing

[case testParseErrorInExtendedSlicing3]
x[:,:
[out]
file:1: error: Unexpected EOF while parsing

[case testInvalidEncoding]
# foo
# coding: uft-8
[out]
file:0: error: Unknown encoding: uft-8

[case testInvalidEncoding2]
# coding=Uft.8
[out]
file:0: error: Unknown encoding: Uft.8

[case testInvalidEncoding3]
#!/usr/bin python
# vim: set fileencoding=uft8 :
[out]
file:0: error: Unknown encoding: uft8

[case testDoubleEncoding]
# coding: uft8
# coding: utf8
# The first coding cookie should be used and fail.
[out]
file:0: error: Unknown encoding: uft8

[case testDoubleEncoding2]
# Again the first cookie should be used and fail.
# coding: uft8
# coding: utf8
[out]
file:0: error: Unknown encoding: uft8

[case testLongLiteralInPython3]
2L
0x2L
[out]
file:1: error: Invalid syntax

[case testPython2LegacyInequalityInPython3]
1 <> 2
[out]
file:1: error: Invalid syntax

[case testLambdaInListComprehensionInPython3]
([ 0 for x in 1, 2 if 3 ])
[out]
file:1: error: Invalid syntax

[case testTupleArgListInPython3]
def f(x, (y, z)): pass
[out]
file:1: error: Invalid syntax

[case testBackquoteInPython3]
`1 + 2`
[out]
file:1: error: Invalid syntax

[case testSmartQuotes]
foo = ‘bar’
[out]
file:1: error: Invalid character '‘' (U+2018)

[case testExceptCommaInPython3]
try:
    pass
except KeyError, IndexError:
    pass
[out]
file:3: error: Invalid syntax
