Leonid Startsev
648c1f4599
Support instantiation of annotations with type parameters
...
By ignoring type parameters. Since type parameters in annotations are a
very limited feature, their sole use is to be able to specify them as
KClass argument: annotation class Foo<T: Any>(val bar: KClass<T>).
Since we can encounter type param only as a KClass type argument (and
never as a property type), simple approach of ignoring them works fine.
In that case, since we simply copy property types to synthetic
implementation class, its properties in IR start look like this:
annotation class FooImpl(override val bar: KClass<T of Foo>). This IR
seems to be not completely correct, since FooImpl.bar type contains T of
Foo param, which is out of its scope. However, so far I didn't
encounter any problems with this during testing and after MR discussion
this approach has been considered possible.
#KT-59558 Fixed
#KT-59036 Fixed
2023-07-26 17:16:13 +00:00
..
2023-03-02 10:23:38 +00:00
2021-03-29 16:12:29 +03:00
2023-04-21 10:14:05 +00:00
2023-04-19 20:12:38 +00:00
2023-07-19 10:40:03 +00:00
2023-05-19 13:23:59 +00:00
2022-09-14 08:11:05 +00:00
2023-05-22 20:12:29 +00:00
2023-02-28 10:19:18 +00:00
2023-02-28 10:19:18 +00:00
2022-03-23 21:13:33 +00:00
2022-06-17 23:26:15 +00:00
2022-06-17 23:26:16 +00:00
2022-06-17 23:26:16 +00:00
2021-08-19 15:25:46 +03:00
2021-04-21 13:22:10 +03:00
2023-01-04 08:08:32 +00:00
2023-01-04 08:08:32 +00:00
2023-01-04 08:08:32 +00:00
2021-05-20 12:22:22 +03:00
2021-05-20 12:22:22 +03:00
2023-04-19 20:12:38 +00:00
2023-04-19 20:12:38 +00:00
2021-07-29 19:45:54 +02:00
2023-04-19 20:12:38 +00:00
2023-04-19 20:12:38 +00:00
2021-06-01 06:33:50 +02:00
2023-04-19 20:12:38 +00:00
2023-04-19 20:12:38 +00:00
2021-06-01 06:33:51 +02:00
2021-09-10 00:49:07 +03:00
2021-06-01 06:33:51 +02:00
2021-06-01 06:33:51 +02:00
2022-03-23 21:13:33 +00:00
2021-05-14 23:05:44 +03:00
2021-05-14 23:05:44 +03:00
2023-05-10 11:49:42 +00:00
2021-08-13 18:32:27 +03:00
2023-04-30 16:12:54 +00:00
2023-04-01 06:39:46 +00:00
2021-10-12 18:56:32 +03:00
2023-07-20 07:29:18 +00:00
2021-05-28 15:36:24 +03:00
2023-02-28 10:19:18 +00:00
2022-11-22 10:47:45 +00:00
2021-03-29 16:12:29 +03:00
2023-05-26 11:29:13 +00:00
2023-05-26 11:29:13 +00:00
2023-05-26 11:29:13 +00:00
2021-04-12 23:49:55 +03:00
2021-05-20 12:22:22 +03:00
2022-02-23 14:21:57 +03:00
2022-01-14 14:26:51 +03:00
2022-02-23 14:21:57 +03:00
2022-01-14 14:26:51 +03:00
2022-01-14 14:26:51 +03:00
2021-04-12 23:49:55 +03:00
2021-04-02 14:36:14 +03:00
2021-03-29 16:12:29 +03:00
2023-07-04 16:00:45 +00:00
2023-07-26 17:16:13 +00:00
2022-06-15 09:55:27 +00:00
2022-01-14 14:26:52 +03:00
2022-06-15 09:55:27 +00:00
2022-06-15 09:55:27 +00:00
2022-06-15 09:55:27 +00:00
2022-01-14 14:26:52 +03:00
2023-07-05 19:46:04 +00:00
2022-12-21 20:58:46 +00:00
2022-12-21 20:58:46 +00:00
2023-02-28 10:19:18 +00:00
2021-10-15 01:24:49 +03:00
2021-05-28 15:36:23 +03:00
2022-01-14 22:20:44 +03:00
2022-01-14 22:20:44 +03:00
2022-01-14 22:20:44 +03:00
2021-03-29 16:12:29 +03:00
2021-05-12 18:42:44 +03:00
2021-05-12 18:42:37 +03:00
2023-01-04 08:08:33 +00:00
2023-01-04 08:08:33 +00:00
2023-01-04 08:08:33 +00:00
2021-03-29 12:45:27 +03:00
2023-03-02 10:23:38 +00:00
2023-02-23 12:14:15 +00:00
2021-08-19 15:25:46 +03:00
2022-01-20 11:25:44 +03:00
2022-01-20 11:25:44 +03:00
2022-07-18 17:10:07 +02:00
2022-07-18 17:10:07 +02:00
2023-05-05 09:34:24 +00:00
2021-05-25 13:28:26 +03:00
2022-03-23 21:13:33 +00:00
2023-05-05 09:34:24 +00:00
2021-05-25 13:28:26 +03:00
2023-04-19 20:12:38 +00:00
2023-04-19 20:12:38 +00:00
2023-04-19 20:12:38 +00:00
2021-10-01 18:54:16 +03:00
2023-04-19 20:12:41 +00:00
2023-04-19 20:12:41 +00:00
2023-04-19 20:12:41 +00:00
2023-04-19 20:12:38 +00:00
2023-03-02 10:23:38 +00:00
2022-03-23 21:13:33 +00:00
2021-05-14 23:05:44 +03:00
2021-05-14 23:05:44 +03:00
2021-03-29 16:12:29 +03:00
2023-04-19 20:12:38 +00:00
2023-04-19 20:12:38 +00:00
2021-06-25 16:37:35 +03:00
2021-06-25 16:37:35 +03:00
2021-06-25 16:37:35 +03:00
2022-06-17 23:26:16 +00:00
2022-06-17 23:26:16 +00:00
2023-02-28 10:19:17 +00:00
2023-01-25 07:14:19 +00:00
2021-05-28 12:24:58 +03:00
2021-05-28 12:24:58 +03:00
2021-08-03 00:17:33 +03:00
2021-08-03 00:20:11 +03:00
2023-04-01 06:39:46 +00:00
2023-04-01 06:39:46 +00:00
2021-10-12 18:56:32 +03:00
2022-04-18 15:36:19 +00:00
2022-04-18 15:36:19 +00:00
2021-11-24 23:13:40 +03:00
2022-03-23 21:13:33 +00:00
2022-03-23 21:13:33 +00:00
2022-03-23 21:13:33 +00:00
2021-04-12 23:49:55 +03:00