metagn
24e5b21c90
fix regression with generic params in static type ( #24075 )
...
Caught in https://github.com/metagn/applicates , I'm not sure which
commit causes this but it's also in the 2.0 branch (but not 2.0.2), so
it's not any recent PRs.
If a proc has a static parameter with type `static Foo[T]`, then another
parameter with type `static Bar[T, U]`, the generic instantiation for
`Bar` doesn't match `U` which has type `tyGenericParam`, but matches `T`
since it has type `tyTypeDesc`. The reason is that `concreteType`
returns the type itself for `tyTypeDesc` if `c.isNoCall` (i.e. matching
a generic invocation), but returns `nil` for `tyGenericParam`. I'm
guessing `tyGenericParam` is received here because of #22618 , but that
doesn't explain why `T` is still `tyTypeDesc`. I'm not sure.
Regardless, we can just copy the behavior for `tyTypeDesc` to
`tyGenericParam` and also return the type itself when `c.isNoCall`. This
feels like it defeats the purpose of `concreteType` but the way it's
used doesn't make sense without it (generic param can't match another
generic param?). Alternatively we could loosen the `if concrete == nil:
return isNone` checks in some places for specific conditions, whether
`c.isNoCall` or `c.inGenericContext == 0` (though this would need
#24005 ).
2024-09-09 10:12:10 +02:00
..
2024-08-12 15:33:26 +02:00
2024-03-18 20:27:00 +01:00
2023-08-06 14:26:21 +02:00
2023-12-15 10:20:57 +01:00
2024-09-02 18:22:20 +02:00
2024-04-10 14:41:16 +02:00
2024-04-16 12:46:59 +02:00
2024-07-12 15:23:09 +02:00
2023-10-11 17:44:14 +02:00
2023-08-06 14:26:21 +02:00
2024-08-28 20:59:25 +02:00
2024-09-03 09:18:38 +02:00
2022-09-28 15:05:01 +02:00
2022-11-30 21:51:13 +01:00
2024-08-28 20:46:36 +02:00
2024-09-03 09:19:52 +02:00
2024-07-12 15:23:09 +02:00
2024-07-12 15:23:09 +02:00
2024-07-12 15:23:09 +02:00
2024-06-07 09:01:30 +02:00
2024-09-05 20:44:00 +02:00
2024-09-03 09:19:52 +02:00
2024-07-12 15:23:09 +02:00
2024-07-03 22:49:30 +02:00
2024-03-28 11:04:12 +01:00
2024-08-12 15:18:56 +02:00
2023-06-18 16:06:14 +02:00
2024-03-16 08:35:18 +08:00
2024-08-12 15:33:26 +02:00
2017-01-07 22:35:09 +01:00
2022-06-10 20:40:08 +02:00
2023-10-29 14:48:11 +01:00
2024-04-22 13:04:30 +02:00
2023-08-06 14:26:21 +02:00
2024-08-12 15:33:26 +02:00
2023-12-17 18:43:52 +01:00
2023-11-20 21:12:13 +01:00
2024-04-10 14:41:16 +02:00
2024-06-19 08:33:38 +02:00
2024-08-28 20:46:36 +02:00
2024-07-09 09:29:45 +02:00
2023-10-29 14:48:11 +01:00
2023-10-29 14:48:11 +01:00
2023-10-29 14:48:11 +01:00
2023-12-15 08:13:25 +01:00
2023-09-01 06:41:39 +02:00
2023-10-29 14:48:11 +01:00
2024-04-10 14:41:16 +02:00
2020-06-01 19:21:41 +02:00
2024-08-23 20:07:00 +02:00
2024-06-04 09:50:35 +02:00
2023-12-15 08:13:25 +01:00
2023-12-14 16:25:34 +01:00
2024-09-03 09:19:52 +02:00
2023-12-13 10:29:58 +01:00
2024-07-03 22:49:30 +02:00
2023-12-13 10:39:10 +01:00
2023-12-15 08:13:25 +01:00
2024-08-28 20:46:36 +02:00
2023-10-29 14:48:11 +01:00
2024-08-28 20:51:13 +02:00
2023-08-06 14:26:21 +02:00
2024-07-20 05:40:38 +02:00
2024-09-09 09:50:45 +02:00
2023-12-13 10:29:58 +01:00
2021-01-12 09:36:51 +01:00
2023-12-12 16:54:50 +01:00
2024-07-09 09:29:45 +02:00
2024-04-05 08:54:48 +02:00
2024-08-20 21:32:35 +02:00
2024-01-05 08:17:08 +01:00
2024-01-31 21:36:59 +01:00
2024-08-11 10:10:28 +02:00
2024-07-12 15:23:09 +02:00
2023-12-16 07:05:57 +01:00
2023-11-30 14:05:45 +01:00
2024-07-17 18:25:19 +02:00
2023-12-15 08:13:25 +01:00
2023-12-15 08:13:25 +01:00
2024-04-10 14:41:16 +02:00
2023-10-29 14:48:11 +01:00
2023-10-29 14:48:11 +01:00
2023-12-12 16:54:50 +01:00
2023-10-29 14:48:11 +01:00
2024-08-12 15:33:26 +02:00
2023-04-17 20:55:22 +02:00
2024-04-10 14:41:16 +02:00
2024-09-05 20:55:06 +02:00
2023-08-06 14:26:21 +02:00
2023-04-24 06:52:37 +02:00
2024-09-03 09:18:38 +02:00
2024-03-18 20:27:00 +01:00
2022-08-24 09:44:16 +02:00
2023-11-20 21:12:13 +01:00
2023-10-29 14:48:11 +01:00
2023-12-17 18:43:52 +01:00
2024-07-09 09:29:45 +02:00
2023-03-03 07:36:38 +01:00
2023-10-29 14:48:11 +01:00
2018-05-27 19:19:12 +02:00
2024-09-03 09:19:52 +02:00
2023-10-29 14:48:11 +01:00
2024-04-10 14:41:16 +02:00
2024-09-03 09:19:52 +02:00
2023-07-02 22:36:05 +02:00
2024-08-12 15:33:26 +02:00
2023-10-29 14:48:11 +01:00
2024-09-06 11:26:24 +02:00
2023-11-06 18:33:28 +01:00
2023-08-10 14:26:40 +02:00
2020-09-11 01:04:07 +02:00
2023-10-29 14:48:11 +01:00
2024-09-02 18:22:20 +02:00
2024-09-09 09:50:45 +02:00
2024-09-02 18:22:20 +02:00
2024-09-08 22:50:30 +02:00
2023-12-15 08:13:25 +01:00
2024-08-19 20:58:44 +08:00
2024-09-06 11:16:43 +02:00
2024-09-06 11:44:38 +02:00
2024-07-17 23:54:15 +02:00
2024-09-08 22:49:27 +02:00
2024-04-16 12:46:59 +02:00
2023-12-15 08:13:25 +01:00
2024-09-03 09:19:52 +02:00
2024-08-29 16:11:37 +02:00
2022-12-11 16:58:50 +01:00
2024-08-28 20:51:13 +02:00
2024-09-08 22:49:27 +02:00
2024-09-06 11:44:38 +02:00
2024-08-16 06:33:43 +02:00
2024-09-09 10:12:10 +02:00
2023-11-20 21:12:13 +01:00
2024-08-27 09:45:30 +02:00
2024-03-16 08:35:18 +08:00
2024-06-02 11:54:39 +02:00
2024-05-08 09:10:48 -06:00
2024-03-15 18:20:10 +01:00
2024-04-10 14:41:16 +02:00
2023-08-10 14:26:40 +02:00
2024-09-02 18:12:48 +02:00
2024-02-20 07:31:58 +01:00
2023-10-29 14:48:11 +01:00
2024-08-28 20:46:36 +02:00
2024-09-03 09:18:38 +02:00
2023-10-29 14:48:11 +01:00
2024-08-20 11:57:47 +02:00
2024-09-06 11:44:38 +02:00
2023-12-12 16:54:50 +01:00
2023-08-21 20:08:00 +02:00
2024-08-28 20:46:36 +02:00
2024-08-27 14:03:56 +02:00
2023-08-10 14:26:40 +02:00
2024-04-10 14:41:16 +02:00
2024-08-11 16:13:26 +02:00
2023-10-29 14:48:11 +01:00
2023-12-17 18:43:52 +01:00
2023-12-25 07:12:54 +01:00