Files
Nim/tests/generics
metagn e8092a5470 delay resolved procvar check for proc params + acknowledge unresolved statics (#23188)
fixes #23186

As explained in #23186, generics can transform `genericProc[int]` into a
call `` `[]`(genericProc, int) `` which causes a problem when
`genericProc` is resemmed, since it is not a resolved generic proc. `[]`
needs unresolved generic procs since `mArrGet` also handles explicit
generic instantiations, so delay the resolved generic proc check to
`semFinishOperands` which is intentionally not called for `mArrGet`.

The root issue for
[t6137](https://github.com/nim-lang/Nim/blob/devel/tests/generics/t6137.nim)
is also fixed (because this change breaks it otherwise), the compiler
doesn't consider the possibility that an assigned generic param can be
an unresolved static value (note the line `if t.kind == tyStatic: s.ast
= t.n` below the change in sigmatch), now it properly errors that it
couldn't instantiate it as it would for a type param. ~~The change in
semtypinst is just for symmetry with the code above it which also gives
a `cannot instantiate` error, it may or may not be necessary/correct.~~
Now removed, I don't think it was correct.

Still possible that this has unintended consequences.
2024-01-11 07:45:11 +01:00
..
2015-09-13 23:26:44 +02:00
2015-08-10 01:31:42 +02:00
2015-07-02 16:29:22 +02:00
2022-10-26 19:45:51 +08:00
2020-07-14 11:24:17 +02:00
2020-07-11 17:09:41 +02:00
2020-09-21 13:37:14 +02:00
2023-06-05 16:30:08 +08:00
2022-12-04 20:37:23 +01:00
2023-08-10 07:56:09 +02:00
2020-03-11 09:26:57 +01:00
2017-04-15 02:53:28 +03:00
2016-03-28 02:26:38 +02:00
2020-07-14 19:50:42 +02:00
2022-10-02 06:42:41 +02:00
2018-11-08 22:28:29 +01:00
2022-09-23 13:05:05 +02:00
2015-10-27 08:37:56 +01:00
2018-12-11 21:23:22 +01:00