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-07-26 17:16:13 +00:00
2022-11-12 16:28:23 +01:00
2023-06-22 08:39:20 +00:00
2023-06-30 15:27:09 +00:00
2023-06-25 10:20:40 +02:00
2023-06-22 08:39:20 +00:00
2023-06-25 10:20:40 +02:00
2023-06-22 08:39:20 +00:00
2023-07-24 22:11:59 +00:00
2023-07-06 11:00:14 +00:00
2023-06-25 10:20:40 +02:00
2023-07-18 11:37:41 +00:00
2023-06-22 08:39:20 +00:00
2023-06-25 10:20:40 +02:00
2023-07-19 13:34:58 +00:00
2023-06-22 08:39:20 +00:00
2022-10-27 11:08:54 +00:00
2023-06-26 07:44:12 +00:00
2023-07-06 11:00:14 +00:00
2023-06-06 14:29:21 +00:00
2023-07-18 11:37:41 +00:00
2023-06-25 10:20:40 +02:00
2023-07-25 11:25:43 +00:00
2022-11-30 21:07:20 +00:00
2023-07-01 16:29:06 +00:00
2023-07-24 18:15:16 +00:00
2023-05-30 17:26:30 +00:00
2023-06-25 10:20:40 +02:00
2022-11-12 16:28:24 +01:00
2023-07-25 14:24:44 +00:00
2023-01-27 17:15:52 +00:00
2023-02-20 18:13:54 +00:00
2023-06-15 20:00:27 +00:00
2023-06-25 10:20:40 +02:00
2023-02-23 12:54:00 +01:00
2023-07-26 06:09:15 +00:00
2022-12-09 15:10:02 +00:00
2023-06-23 09:11:17 +00:00
2023-01-30 19:44:49 +00:00
2023-06-06 14:29:21 +00:00
2023-03-21 08:48:38 +00:00
2023-06-25 10:20:40 +02:00
2023-06-25 10:20:40 +02:00
2023-06-25 10:20:40 +02:00
2023-06-23 09:11:17 +00:00
2023-06-22 17:10:51 +02:00
2023-07-20 09:40:42 +00:00
2023-07-24 18:15:16 +00:00
2023-06-13 17:48:23 +00:00
2023-06-22 18:39:59 +00:00
2023-06-14 19:02:39 +00:00
2023-06-22 18:39:59 +00:00
2023-04-20 08:04:07 +00:00
2023-06-22 17:10:51 +02:00
2023-06-22 17:10:51 +02:00
2023-03-08 07:28:35 +00:00
2023-06-23 14:15:48 +00:00
2023-06-22 17:10:51 +02:00
2023-07-24 09:15:11 +00:00
2023-06-22 17:10:51 +02:00
2023-06-23 14:15:48 +00:00
2023-06-23 14:15:48 +00:00
2023-07-12 11:41:33 +00:00
2023-06-25 10:20:40 +02:00
2023-03-06 20:57:52 +00:00
2023-07-18 11:37:42 +00:00
2023-06-26 07:44:12 +00:00
2023-06-25 10:20:40 +02:00
2023-06-21 07:34:29 +00:00
2023-06-22 17:10:51 +02:00
2023-06-30 13:11:41 +00:00
2023-06-30 15:27:09 +00:00
2023-06-06 14:29:21 +00:00
2022-11-12 16:28:23 +01:00
2023-07-06 12:39:46 +00:00
2023-06-25 10:20:40 +02:00
2022-11-12 16:28:24 +01:00
2023-06-23 13:53:29 +00:00
2023-06-06 14:29:21 +00:00
2023-07-17 23:57:35 +02:00
2023-07-07 06:45:20 +00:00
2023-06-23 08:07:13 +00:00
2023-03-22 12:34:05 +00:00
2023-06-25 10:20:40 +02:00
2023-06-22 14:50:18 +00:00
2023-05-10 11:48:58 +00:00
2023-06-23 13:54:24 +00:00
2023-04-17 17:42:01 +00:00
2023-06-22 17:10:51 +02:00
2023-05-30 16:44:58 +00:00
2023-06-25 10:20:40 +02:00
2023-05-16 09:20:57 +00:00
2023-06-25 10:20:40 +02:00
2023-05-04 02:44:26 +00:00
2023-06-13 16:19:53 +00:00
2023-06-15 09:34:21 +00:00
2023-06-25 10:20:40 +02:00
2023-07-25 10:53:37 +00:00
2023-07-21 17:27:17 +00:00