fixed dot operator recursive loop & macro suggest (#16922)
* basic stability improvements; refs nimsuggest * fixed dot operator recursive loop & macro suggest * hacky fix for run away dot operator sem check Committing this mostly to make the issue more clear. Perhaps get better feedback. * semExprWithType seems like a better place to check * fixed error messages const case expressions * Clean-up test * stopped the dot operator madness No longer get infinite recursion when seming broken code with a dot operator macro like in jsffi. Co-authored-by: Araq <rumpf_a@web.de>
This commit is contained in:
parent
b68ecc82cb
commit
260a5dacb7
8 changed files with 51 additions and 24 deletions
|
|
@ -2,13 +2,14 @@ discard """
|
|||
cmd: "nim check $file"
|
||||
errormsg: ""
|
||||
nimout: '''
|
||||
t10734.nim(18, 1) Error: invalid indentation
|
||||
t10734.nim(18, 6) Error: invalid indentation
|
||||
t10734.nim(19, 7) Error: expression expected, but found '[EOF]'
|
||||
t10734.nim(17, 5) Error: 'proc' is not a concrete type; for a callback without parameters use 'proc()'
|
||||
t10734.nim(18, 6) Error: undeclared identifier: 'p'
|
||||
t10734.nim(18, 6) Error: 'p' cannot be assigned to
|
||||
t10734.nim(16, 3) Hint: 'T' is declared but not used [XDeclaredButNotUsed]
|
||||
t10734.nim(19, 1) Error: invalid indentation
|
||||
t10734.nim(19, 6) Error: invalid indentation
|
||||
t10734.nim(20, 7) Error: expression expected, but found '[EOF]'
|
||||
t10734.nim(18, 5) Error: 'proc' is not a concrete type; for a callback without parameters use 'proc()'
|
||||
t10734.nim(19, 6) Error: undeclared identifier: 'p'
|
||||
t10734.nim(19, 6) Error: expression 'p' has no type (or is ambiguous)
|
||||
t10734.nim(19, 6) Error: 'p' cannot be assigned to
|
||||
t10734.nim(17, 3) Hint: 'T' is declared but not used [XDeclaredButNotUsed]
|
||||
'''
|
||||
"""
|
||||
|
||||
|
|
|
|||
|
|
@ -1,4 +1,20 @@
|
|||
discard """
|
||||
output: '''
|
||||
test1
|
||||
test2
|
||||
'''
|
||||
"""
|
||||
|
||||
import jsffi
|
||||
|
||||
type
|
||||
C = object
|
||||
props: int
|
||||
|
||||
var c: C
|
||||
|
||||
when compiles(c.props):
|
||||
echo "test"
|
||||
echo "test1"
|
||||
|
||||
when not compiles(d.props):
|
||||
echo "test2"
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue