summary refs log tree commit diff stats
path: root/tests/cpp/enum.hpp
diff options
context:
space:
mode:
authormetagn <metagngn@gmail.com>2024-01-07 09:48:32 +0300
committerGitHub <noreply@github.com>2024-01-07 07:48:32 +0100
commit62d8ca43063197272968b4acf8c7a1ef27874c54 (patch)
tree5a3174f9f8d24188f2384fd2939f414d146c5627 /tests/cpp/enum.hpp
parenta4f3bf374238df96f0982b7106e3702da6b485b1 (diff)
downloadNim-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