diff options
author | metagn <metagngn@gmail.com> | 2024-01-07 09:48:32 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-01-07 07:48:32 +0100 |
commit | 62d8ca43063197272968b4acf8c7a1ef27874c54 (patch) | |
tree | 5a3174f9f8d24188f2384fd2939f414d146c5627 /tests/cpp/enum.hpp | |
parent | a4f3bf374238df96f0982b7106e3702da6b485b1 (diff) | |
download | Nim-62d8ca43063197272968b4acf8c7a1ef27874c54.tar.gz |
don't transform typed bracket exprs to `[]` calls in templates (#23175)
fixes #22775 It's pre-existing that [`prepareOperand` doesn't typecheck expressions which have types](https://github.com/nim-lang/Nim/blob/a4f3bf374238df96f0982b7106e3702da6b485b1/compiler/sigmatch.nim#L2444). Templates can take typed subscript expressions, transform them into calls to `[]`, and then have this `[]` not be resolved later if the expression is nested inside of a call argument, which leaks an untyped expression past semantic analysis. To prevent this, don't transform any typed subscript expressions into calls to `[]` in templates. Ditto for curly subscripts (with `{}`) and assignments to subscripts and curly subscripts (with `[]=` and `{}=`).
Diffstat (limited to 'tests/cpp/enum.hpp')
0 files changed, 0 insertions, 0 deletions