Tianyu Geng
280c445783
FIR checker: check super reference
...
This change touches the following diagnostics to make them behave closer
to FE1.0
* SUPER_NOT_AVAILABLE
* SUPER_IS_NOT_AN_EXPRESSION
* INSTANCE_ACCESS_BEFORE_SUPER_CALL
* NOT_A_SUPERTYPE
Other than tweaking the diagnostics, this change also alters resolution
by consider marking `super` with mismatched type parameter as
errorenous. As a result, the following code no longer resolves.
```
class A: B() {
fun test() {
super<String>.length
// ^^^^^^ FIR currently resolves this to `String.length`.
// With this change, `length` becomes unresolved
// instead
}
}
```
Also, now we report `UNRESOLVED_LABEL` on unresolved label on `super`
reference, though FE1.0 reports `UNRESOLVED_REFERENCE`.
All the errors above are reported as ConeDiagnostics and hence some
checkers are deleted.
In addition, it also suppresses more downstream (mostly unresolved)
errors if the receiver has errors. FE1.0 doesn't do it for all the cases
we have here. But it seems nicer to reduce these "redundant" unresolved
errors.
2021-08-10 19:36:43 +03:00
..
2021-06-25 20:57:45 +03:00
2021-03-29 16:12:29 +03:00
2021-03-29 16:12:29 +03:00
2021-04-12 23:49:55 +03:00
2021-03-29 16:12:29 +03:00
2021-06-07 15:25:47 +03:00
2021-05-28 15:36:24 +03:00
2020-03-05 09:39:40 +03:00
2021-04-12 23:49:55 +03:00
2021-03-29 16:12:29 +03:00
2020-03-05 09:39:40 +03:00
2020-03-05 09:39:40 +03:00
2020-03-05 09:39:40 +03:00
2020-08-02 18:19:45 +03:00
2019-12-12 16:11:46 +03:00
2020-03-05 09:39:40 +03:00
2021-05-25 13:28:26 +03:00
2021-05-25 13:28:27 +03:00
2019-12-12 16:11:46 +03:00
2021-06-08 11:37:28 +03:00
2021-03-29 16:12:29 +03:00
2020-03-05 09:39:40 +03:00
2021-04-14 18:11:14 +03:00
2021-04-14 18:11:14 +03:00
2021-04-14 18:11:14 +03:00
2021-07-07 16:19:28 +03:00
2021-05-25 13:28:27 +03:00
2021-04-14 18:11:14 +03:00
2021-04-14 18:11:14 +03:00
2021-08-10 15:09:25 +00:00
2020-03-05 09:39:40 +03:00
2020-03-05 09:39:40 +03:00
2020-03-05 09:39:40 +03:00
2020-03-05 09:39:40 +03:00
2019-12-12 16:11:46 +03:00
2021-03-29 16:12:29 +03:00
2021-04-09 12:32:45 +03:00
2021-05-25 13:28:26 +03:00
2021-05-25 13:28:27 +03:00
2020-03-05 09:39:40 +03:00
2021-03-29 16:12:29 +03:00
2019-12-12 16:11:46 +03:00
2021-03-29 16:12:29 +03:00
2020-03-05 09:39:40 +03:00
2021-03-29 16:12:29 +03:00
2020-03-05 09:39:40 +03:00
2020-03-05 09:39:40 +03:00
2021-03-29 16:12:29 +03:00
2021-08-06 11:49:34 +03:00
2021-03-29 16:12:29 +03:00
2021-03-29 16:12:29 +03:00
2021-03-29 16:12:29 +03:00
2019-12-12 16:11:46 +03:00
2019-12-12 16:11:46 +03:00
2021-05-20 17:24:30 +03:00
2021-03-29 16:12:29 +03:00
2021-05-25 13:28:26 +03:00
2021-05-25 13:28:26 +03:00
2021-03-29 16:12:29 +03:00
2021-05-25 13:28:26 +03:00
2021-03-29 16:12:29 +03:00
2021-04-02 10:24:20 +03:00
2021-03-29 16:12:29 +03:00
2020-08-12 15:38:29 +03:00
2021-05-25 13:28:26 +03:00
2021-05-25 13:28:27 +03:00
2019-12-12 16:11:46 +03:00
2020-03-05 09:39:40 +03:00
2021-05-25 13:28:26 +03:00
2021-05-25 13:28:27 +03:00
2021-04-12 23:49:55 +03:00
2021-03-29 16:12:29 +03:00
2020-03-05 09:39:40 +03:00
2021-05-25 13:28:26 +03:00
2021-05-25 13:28:26 +03:00
2021-06-07 15:25:45 +03:00
2020-03-05 09:39:40 +03:00
2020-03-05 09:39:40 +03:00
2019-12-12 16:11:46 +03:00
2019-12-12 16:11:46 +03:00
2021-03-29 16:12:29 +03:00
2021-07-19 13:40:28 +03:00
2021-04-13 21:36:33 +03:00
2021-03-29 16:12:29 +03:00
2021-03-29 16:12:29 +03:00
2021-07-19 13:40:28 +03:00
2019-12-12 16:11:46 +03:00
2020-06-19 15:53:09 +03:00
2021-03-29 16:12:29 +03:00
2021-07-19 13:40:28 +03:00
2021-03-29 16:12:29 +03:00
2020-03-05 09:39:40 +03:00
2019-12-12 16:11:46 +03:00
2019-12-12 16:11:46 +03:00
2021-03-29 16:12:29 +03:00
2020-03-05 09:39:40 +03:00
2021-05-25 13:28:26 +03:00
2021-05-25 13:28:27 +03:00
2020-03-05 09:39:40 +03:00
2020-03-05 09:39:40 +03:00
2020-03-05 09:39:40 +03:00
2020-03-05 09:39:40 +03:00
2019-12-12 16:11:46 +03:00
2021-03-29 16:12:29 +03:00
2019-12-12 16:11:46 +03:00
2021-03-29 16:12:29 +03:00
2020-03-05 09:39:40 +03:00
2019-12-12 16:11:46 +03:00
2021-03-29 16:12:29 +03:00
2021-04-19 15:09:50 +03:00
2021-03-29 16:12:29 +03:00
2020-03-05 09:39:40 +03:00
2019-12-12 16:11:46 +03:00
2020-03-05 09:39:40 +03:00
2020-02-12 16:05:11 +03:00
2020-12-16 19:52:25 +03:00
2019-12-12 16:11:46 +03:00
2020-03-05 09:39:40 +03:00
2020-03-05 09:39:40 +03:00
2019-12-12 16:11:46 +03:00
2020-03-05 09:39:40 +03:00
2020-03-05 09:39:40 +03:00
2021-05-25 13:28:26 +03:00
2021-05-25 13:28:27 +03:00
2020-03-05 09:39:40 +03:00
2021-03-29 16:12:29 +03:00
2020-03-05 09:39:40 +03:00
2021-04-02 14:36:14 +03:00
2020-03-05 09:39:40 +03:00
2021-05-20 17:24:30 +03:00
2021-04-30 17:59:45 +03:00
2020-03-05 09:39:40 +03:00
2020-03-05 09:39:40 +03:00
2020-03-05 09:39:40 +03:00
2021-02-03 12:07:36 +03:00
2020-03-05 09:39:40 +03:00
2021-07-28 23:18:38 +03:00
2019-12-12 16:11:46 +03:00
2021-03-29 16:12:29 +03:00
2021-05-25 13:28:26 +03:00
2021-05-25 13:28:26 +03:00
2021-07-13 10:35:01 +03:00
2021-05-25 13:28:26 +03:00
2021-05-25 13:28:26 +03:00
2021-05-04 08:19:49 +02:00
2021-05-04 08:19:49 +02:00
2019-08-15 13:01:39 +03:00
2021-07-15 19:02:58 +03:00
2019-12-12 16:11:46 +03:00
2020-01-30 17:12:50 +03:00
2020-12-16 19:52:25 +03:00
2020-03-05 09:39:40 +03:00
2021-05-25 13:28:26 +03:00
2021-05-25 13:28:27 +03:00
2021-03-04 17:56:29 +03:00
2020-09-10 11:25:36 +03:00
2019-12-12 16:11:46 +03:00
2021-06-29 22:39:22 +03:00
2021-05-28 15:36:24 +03:00
2019-04-25 16:19:37 +03:00
2021-05-25 13:28:29 +03:00
2019-12-20 12:06:20 +03:00
2021-05-25 13:28:26 +03:00
2021-05-25 13:28:27 +03:00
2019-12-20 12:06:20 +03:00
2021-05-25 13:28:26 +03:00
2021-05-25 13:28:27 +03:00
2020-03-05 09:39:40 +03:00
2020-03-05 09:39:40 +03:00
2021-03-29 16:12:29 +03:00
2020-03-05 09:39:40 +03:00
2021-05-25 13:28:26 +03:00
2021-05-25 13:28:27 +03:00
2021-05-20 13:46:32 +03:00
2019-11-18 10:25:41 +03:00
2020-03-05 09:39:40 +03:00
2019-09-12 12:03:01 +03:00
2021-05-20 17:24:51 +03:00
2021-03-24 15:57:36 +03:00
2020-04-13 14:50:49 +02:00
2021-06-07 15:25:47 +03:00
2020-02-14 11:41:30 +01:00
2019-11-29 13:44:42 +01:00
2021-04-12 23:49:55 +03:00
2019-11-18 10:25:41 +03:00
2019-11-18 10:25:41 +03:00
2020-01-15 14:39:40 +03:00
2020-01-15 14:39:40 +03:00
2020-01-15 14:39:40 +03:00
2021-05-20 17:24:32 +03:00
2020-01-27 10:10:44 +01:00
2020-01-27 10:10:44 +01:00
2020-03-05 09:39:40 +03:00
2019-08-15 13:01:39 +03:00
2020-03-12 08:02:45 +01:00
2020-03-12 08:02:45 +01:00
2020-03-12 08:02:45 +01:00
2020-03-12 08:02:45 +01:00
2020-01-23 19:12:01 +03:00
2020-01-23 19:12:01 +03:00
2020-01-23 19:12:01 +03:00
2021-05-20 17:24:30 +03:00
2020-03-12 08:02:45 +01:00
2020-08-24 11:06:10 +03:00
2021-07-15 19:02:58 +03:00
2021-06-03 18:24:34 +03:00
2021-05-25 13:28:26 +03:00
2020-03-05 09:39:40 +03:00
2020-03-05 09:39:40 +03:00
2020-12-08 12:55:25 +03:00
2021-05-28 15:36:23 +03:00
2020-12-08 12:55:25 +03:00
2019-12-12 16:11:46 +03:00
2021-04-09 12:32:45 +03:00
2021-03-29 16:12:29 +03:00
2019-12-27 18:40:42 +03:00
2019-12-27 18:40:42 +03:00
2019-12-27 18:40:42 +03:00
2021-05-25 13:28:26 +03:00
2021-05-25 13:28:26 +03:00
2021-02-19 10:17:17 +03:00
2021-08-10 19:36:43 +03:00
2020-02-14 11:41:30 +01:00
2020-07-28 20:46:56 +03:00
2021-03-29 16:12:29 +03:00