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
|
|
@ -41,15 +41,11 @@ echo r.age_human_yrs()
|
|||
echo r
|
||||
|
||||
discard """
|
||||
disabled:true
|
||||
$nimsuggest --tester $file
|
||||
$nimsuggest --tester --maxresults:5 $file
|
||||
>sug $1
|
||||
sug;;skField;;age;;int;;$file;;6;;6;;"";;100;;None
|
||||
sug;;skField;;name;;string;;$file;;5;;6;;"";;100;;None
|
||||
sug;;skMethod;;twithin_macro.age_human_yrs;;proc (self: Animal): int;;$file;;8;;9;;"";;100;;None
|
||||
sug;;skMethod;;twithin_macro.vocalize;;proc (self: Animal): string;;$file;;7;;9;;"";;100;;None
|
||||
sug;;skMethod;;twithin_macro.vocalize;;proc (self: Rabbit): string;;$file;;23;;9;;"";;100;;None
|
||||
sug;;skMacro;;twithin_macro.class;;proc (head: untyped, body: untyped): untyped{.gcsafe, locks: <unknown>.};;$file;;4;;6;;"";;50;;None*
|
||||
"""
|
||||
|
||||
# TODO: disabled due to semantic error reporting in nimsuggest results
|
||||
|
|
|
|||
|
|
@ -46,10 +46,3 @@ $nimsuggest --tester $file
|
|||
sug;;skField;;age;;int;;$file;;6;;6;;"";;100;;Prefix
|
||||
sug;;skMethod;;twithin_macro_prefix.age_human_yrs;;proc (self: Animal): int;;$file;;8;;9;;"";;100;;Prefix
|
||||
"""
|
||||
|
||||
#[
|
||||
TODO: additional calls to `>sug $1` produces different output with errors,
|
||||
possibly related to cached results from the first analysis, which refers
|
||||
to expanded macros/templates which rely on imported symbols from `system`
|
||||
module that are not present in this module.
|
||||
]#
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue