refs #15667 improve invalid indentation errors, report when & where = could be missing (#16397)

* refs #15667 improve invalid indentation errors

* also show line info where = is missing

* add test

* add more tests
This commit is contained in:
Timothee Cour 2021-04-10 01:55:39 -05:00 • committed by GitHub
commit 08262206d3
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 74 additions and 4 deletions

58
tests/parser/t15667.nim Normal file
View file

@ -0,0 +1,58 @@
discard """
cmd: "nim check $options $file"
action: "reject"
nimout: '''
t15667.nim(23, 5) Error: invalid indentation, maybe you forgot a '=' at t15667.nim(22, 13) ?
t15667.nim(28, 5) Error: invalid indentation, maybe you forgot a '=' at t15667.nim(26, 13) ?
t15667.nim(33, 5) Error: invalid indentation, maybe you forgot a '=' at t15667.nim(31, 25) ?
t15667.nim(42, 5) Error: invalid indentation, maybe you forgot a '=' at t15667.nim(38, 12) ?
t15667.nim(56, 5) Error: invalid indentation, maybe you forgot a '=' at t15667.nim(55, 13) ?
'''
"""
# line 20
block:
proc fn1()
discard
block:
proc fn2()
#
discard
block:
proc fn3() {.exportc.}
#
discard
block: # complex example
proc asdfasdfsd() {. exportc,
inline
.} # foo
#[
bar
]#
discard
block: # xxx this doesn't work yet (only a bare `invalid indentation` error)
proc fn5()
##
discard
block: # ditto
proc fn6*()
## foo bar
runnableExamples: discard
block:
proc fn8()
runnableExamples:
discard
discard