Doug Gregor
d9095b1079
[Conformance checking] Don't suppress substitution failures during checking.
...
When checking whether a particular protocol conformance satisfies all of
the protocol's requirements, we were suppressing substitution failures.
In some cases, this would mean that we marked a conformance "invalid"
without ever emitting a diagnostic, which would lead to downstream crashes.
Instead, treat substitution failures somewhat more lazily. If we encounter
one while performing the checking, put the conformance into a "delayed" list
rather than failing immediately. Teach the top-level type checking
loop to re-check these conformances, emitting a diagnostic if they
fail the second time around.
Fixes rdar://problem/35082483 and likely other issues that slipped
through the type checker or blew up in unpredictable ways.
2017-12-18 16:43:59 -08:00
..
2017-07-05 11:23:27 -07:00
2016-12-09 21:46:43 +01:00
2016-11-28 10:50:55 -08:00
2016-12-09 21:46:43 +01:00
2016-11-28 10:50:55 -08:00
2016-11-28 10:50:55 -08:00
2016-11-28 10:50:55 -08:00
2016-04-06 20:21:58 -04:00
2016-11-28 10:50:55 -08:00
2016-04-06 20:21:58 -04:00
2016-11-28 10:50:55 -08:00
2016-07-02 17:10:49 -07:00
2016-11-28 10:50:55 -08:00
2016-11-28 10:50:55 -08:00
2016-07-28 09:55:23 -07:00
2016-11-28 10:50:55 -08:00
2016-11-28 10:50:55 -08:00
2017-05-17 05:51:51 -07:00
2017-05-17 05:51:51 -07:00
2016-11-28 10:50:55 -08:00
2017-03-13 11:50:02 -07:00
2016-11-28 10:50:55 -08:00
2016-11-28 10:50:55 -08:00
2016-11-28 10:50:55 -08:00
2016-11-28 10:50:55 -08:00
2017-01-06 16:41:22 +01:00
2016-11-28 10:50:55 -08:00
2016-11-28 10:50:55 -08:00
2016-11-28 10:50:55 -08:00
2016-11-28 10:50:55 -08:00
2016-11-28 10:50:55 -08:00
2016-11-28 10:50:55 -08:00
2016-07-02 17:10:49 -07:00
2016-11-28 10:50:55 -08:00
2016-11-28 10:50:55 -08:00
2017-01-03 19:05:41 -08:00
2016-07-17 16:29:18 -07:00
2017-08-29 10:04:39 -07:00
2017-06-23 17:25:45 -07:00
2016-11-28 10:50:55 -08:00
2016-11-28 19:18:44 -08:00
2017-01-03 19:05:40 -08:00
2016-12-11 00:50:26 +01:00
2017-01-04 02:02:29 -08:00
2017-01-04 02:02:29 -08:00
2017-01-04 02:02:29 -08:00
2017-01-04 02:02:29 -08:00
2017-01-04 02:02:29 -08:00
2017-01-04 02:02:29 -08:00
2017-01-04 02:02:29 -08:00
2017-01-04 02:02:29 -08:00
2017-01-03 20:15:30 -08:00
2017-01-03 21:49:44 -08:00
2017-01-04 02:02:29 -08:00
2017-01-04 02:02:29 -08:00
2017-04-03 15:35:10 -07:00
2017-01-03 22:22:14 -08:00
2017-01-03 19:05:41 -08:00
2017-01-05 18:00:39 -08:00
2017-01-05 18:00:45 -08:00
2017-01-23 23:54:50 -08:00
2017-01-24 18:47:21 -08:00
2017-05-14 06:33:25 -07:00
2017-05-14 06:33:25 -07:00
2017-02-02 17:13:14 +09:00
2017-06-04 11:08:39 -07:00
2017-04-04 13:10:43 -07:00
2017-02-08 15:43:08 -08:00
2017-06-04 11:08:39 -07:00
2017-02-08 15:45:27 -08:00
2017-02-08 15:45:27 -08:00
2017-02-12 00:51:25 -08:00
2017-06-29 16:52:46 -07:00
2017-10-27 22:17:45 -07:00
2017-04-03 15:35:10 -07:00
2017-02-25 16:17:28 -08:00
2017-02-27 13:34:49 -08:00
2017-03-03 10:50:49 -08:00
2017-12-08 12:00:23 -08:00
2017-03-13 01:50:41 -07:00
2017-03-14 03:48:10 -04:00
2017-03-21 00:15:18 -07:00
2017-04-16 23:05:23 -07:00
2017-05-30 11:43:53 -07:00
2017-03-26 00:00:53 -07:00
2017-05-29 22:08:50 -07:00
2017-03-24 11:36:45 -07:00
2017-04-06 15:56:41 -07:00
2017-10-01 15:08:23 -07:00
2017-04-18 14:10:56 -07:00
2017-04-18 13:19:21 -07:00
2017-05-02 19:45:00 -07:00
2017-04-28 16:22:07 -07:00
2017-05-03 22:31:52 -07:00
2017-05-07 01:57:38 -07:00
2017-05-11 09:31:58 -07:00
2017-05-22 18:35:52 -07:00
2017-06-19 22:47:33 -07:00
2017-05-23 23:14:10 -07:00
2017-05-23 23:14:10 -07:00
2017-06-23 09:34:57 -07:00
2017-06-23 22:23:46 -07:00
2017-05-26 18:10:13 -07:00
2017-05-29 00:06:55 -07:00
2017-06-02 20:43:27 -07:00
2017-06-05 23:11:53 -07:00
2017-06-13 20:19:43 -07:00
2017-06-14 22:44:32 -07:00
2017-06-15 22:51:30 -07:00
2017-06-20 22:18:50 -07:00
2017-12-08 12:00:23 -08:00
2017-06-23 22:17:58 -07:00
2017-07-10 17:36:53 -07:00
2017-07-05 17:19:05 -07:00
2017-07-05 23:08:41 -07:00
2017-07-12 14:04:10 -07:00
2017-07-23 17:34:38 -07:00
2017-08-10 17:00:07 -07:00
2017-08-14 00:31:57 -04:00
2017-09-05 12:38:17 -07:00
2017-09-05 12:40:06 -07:00
2017-09-25 17:38:28 -07:00
2017-10-02 13:30:43 -07:00
2017-10-03 08:32:13 -07:00
2017-10-03 21:59:14 -07:00
2017-10-03 13:47:19 -07:00
2017-10-04 10:59:16 -07:00
2017-10-24 22:47:07 -07:00
2017-10-26 14:08:07 -07:00
2017-11-19 21:50:24 -08:00
2017-11-24 23:18:11 -08:00
2017-11-28 13:12:25 -08:00
2017-12-06 16:35:59 -08:00
2017-12-14 13:33:25 -08:00
2017-12-18 16:43:46 -08:00
2017-12-18 16:43:59 -08:00
2017-11-16 11:36:52 -08:00
2017-07-05 11:23:27 -07:00
2017-09-27 16:39:06 -07:00