Alexander Udalov
d59f2bcc80
Fix KotlinReflectionInternalError on invoking callBy with defaults in supertypes
...
There are two parts in this change:
1) Previously, we looked up $default methods with the incorrect
signature in supertypes. For example in defaultInSuperClass.kt, we'd
try to find a method foo$default with the signature `(B, String,
String, int, Object)` in the class A. Now we're modifying the array
of parameter types on each step if we're looking for a static
$default method, by assigning its first element to be the containing
class. This fixes cases when defaults come from a superclass.
2) For interfaces, $default methods are actually located in the
corresponding DefaultImpls class. Now we look up that class and
search for the $default method there. Note that this is needed
because of KT-33430. This fixes cases when defaults come from a
superinterface.
#KT-13936 Fixed
2019-08-22 18:04:00 +02:00
..
2019-07-31 11:18:44 +02:00
2018-10-10 19:03:56 +03:00
2019-07-01 15:49:12 +02:00
2019-08-08 12:02:49 +02:00
2019-01-24 16:14:40 +03:00
2019-02-19 09:59:42 +03:00
2019-05-13 13:40:30 +03:00
2019-08-12 16:09:23 +02:00
2019-08-16 18:32:19 +03:00
2019-08-12 16:09:23 +02:00
2019-01-24 16:14:40 +03:00
2019-07-22 10:35:03 +02:00
2019-07-16 15:57:26 +02:00
2019-07-31 11:18:44 +02:00
2019-03-26 11:54:16 +01:00
2019-05-21 17:20:20 +03:00
2018-12-20 12:53:23 +01:00
2019-06-05 10:23:44 +02:00
2018-08-09 14:22:46 +03:00
2018-12-28 15:09:11 +03:00
2019-08-08 12:02:50 +02:00
2019-08-22 16:08:08 +03:00
2019-05-10 09:40:57 +02:00
2019-01-23 15:11:14 +01:00
2019-08-04 01:35:05 +03:00
2019-06-19 10:24:15 +03:00
2019-08-04 01:35:05 +03:00
2019-01-24 16:14:40 +03:00
2019-05-24 09:51:07 +02:00
2018-10-15 00:03:45 +03:00
2019-06-14 18:40:59 +03:00
2019-01-24 16:14:40 +03:00
2018-07-10 13:34:19 +03:00
2019-07-31 11:18:44 +02:00
2018-12-21 16:09:06 +01:00
2018-12-21 16:09:07 +01:00
2019-04-30 13:15:29 +02:00
2019-01-23 15:11:14 +01:00
2019-06-10 17:37:52 +03:00
2019-08-09 12:14:44 +03:00
2018-12-21 16:09:09 +01:00
2019-04-02 13:16:31 +02:00
2019-04-08 13:10:22 +02:00
2019-05-31 17:23:58 +03:00
2019-08-06 17:53:08 +03:00
2019-03-19 09:20:41 +01:00
2018-07-10 13:34:19 +03:00
2019-05-06 19:34:25 +03:00
2019-08-22 18:04:00 +02:00
2019-07-08 17:48:33 +02:00
2019-04-04 09:45:00 +02:00
2019-08-04 01:35:05 +03:00
2019-03-19 12:00:29 +01:00
2019-08-12 16:48:26 +02:00
2019-08-05 21:27:21 +02:00
2019-03-06 15:34:23 +01:00
2019-04-04 09:45:00 +02:00
2018-08-09 14:22:50 +03:00
2019-06-21 17:02:01 +03:00
2019-07-01 13:24:08 +02:00
2019-04-30 13:15:29 +02:00
2019-01-24 16:14:40 +03:00
2019-08-05 21:27:21 +02:00
2019-08-05 21:27:21 +02:00
2019-04-08 13:10:22 +02:00
2019-08-12 16:09:23 +02:00
2019-01-29 19:06:31 +03:00
2019-08-08 12:01:52 +02:00
2019-04-08 13:10:22 +02:00
2019-01-24 16:14:40 +03:00
2019-01-24 16:14:40 +03:00
2019-04-16 09:32:57 +02:00
2019-05-31 07:09:28 +02:00
2019-04-10 20:50:03 +02:00
2019-04-10 20:51:46 +02:00
2019-08-13 14:24:55 +02:00
2019-06-20 12:08:55 +03:00
2018-12-21 16:09:04 +01:00
2019-07-16 14:08:21 +02:00
2019-08-22 18:04:00 +02:00
2019-08-15 13:01:39 +03:00
2019-08-13 14:24:55 +02:00
2019-01-24 23:05:56 +03:00
2019-08-19 18:09:32 +02:00
2018-06-14 19:54:30 +03:00
2019-05-30 18:53:27 +02:00
2018-06-28 12:26:41 +02:00
2019-05-11 13:38:24 +02:00
2018-10-22 16:32:55 +02:00
2019-07-03 20:37:48 +03:00
2019-05-24 11:27:19 +02:00
2019-04-08 13:10:22 +02:00
2019-04-24 12:04:12 +02:00
2019-05-10 08:57:37 +02:00
2019-04-08 13:10:22 +02:00
2018-12-21 16:09:07 +01:00
2019-01-24 16:14:40 +03:00
2019-08-05 21:27:21 +02:00
2019-05-10 08:57:37 +02:00
2019-03-19 09:20:41 +01:00
2018-12-21 16:09:06 +01:00
2019-03-19 12:00:29 +01:00
2018-10-10 17:27:37 +03:00
2019-06-21 17:02:01 +03:00
2019-07-16 11:15:19 +02:00
2019-02-19 16:37:47 +01:00
2019-03-26 13:32:02 +01:00