rust/compiler
Waffle 6ec7255d7b Highlight the const function if error happened because of a bound on the impl block
Currently, for the following code, the compiler produces the errors like the
following error:
```rust
struct Type<T>

impl<T: Clone> Type<T> {
	fn const f() {}
}
```
```text
error[E0658]: trait bounds other than `Sized` on const fn parameters are unstable
 --> ./test.rs:3:6
  |
3 | impl<T: Clone> Type<T> {
  |      ^
  |
  = note: see issue #57563 <https://github.com/rust-lang/rust/issues/57563> for more information
  = help: add `#![feature(const_fn_trait_bound)]` to the crate attributes to enable
```

This can be confusing (especially to newcomers) since the error mentions
"const fn parameters", but highlights only the impl.

This commits adds function highlighting, changing the error to the following:

```text
error[E0658]: trait bounds other than `Sized` on const fn parameters are unstable
 --> ./test.rs:3:6
  |
3 | impl<T: Clone> Type<T> {
  |      ^
4 |     pub const fn f() {}
  |     ---------------- function declared as const here
  |
  = note: see issue #57563 <https://github.com/rust-lang/rust/issues/57563> for more information
  = help: add `#![feature(const_fn_trait_bound)]` to the crate attributes to enable
```
2021-09-13 16:36:14 +03:00
..
rustc
rustc_apfloat
rustc_arena
rustc_ast Keep a parent LocalDefId in SpanData. 2021-09-10 20:17:33 +02:00
rustc_ast_lowering Auto merge of #84373 - cjgillot:resolve-span, r=michaelwoerister,petrochenkov 2021-09-11 23:35:28 +00:00
rustc_ast_passes Rollup merge of #88733 - Noble-Mushtak:88577, r=estebank 2021-09-11 08:23:41 -07:00
rustc_ast_pretty
rustc_attr
rustc_borrowck Auto merge of #88811 - jackh726:issue-88446, r=nikomatsakis 2021-09-12 17:04:10 +00:00
rustc_builtin_macros Rollup merge of #88209 - Amanieu:asm_in_underscore, r=nagisa 2021-09-11 08:23:40 -07:00
rustc_codegen_cranelift Make abi::Abi Copy and remove a *lot* of refs 2021-09-09 10:41:19 +02:00
rustc_codegen_llvm rename is_valid_for to is_valid 2021-09-09 10:41:19 +02:00
rustc_codegen_ssa rename is_valid_for to is_valid 2021-09-09 10:41:19 +02:00
rustc_const_eval Highlight the const function if error happened because of a bound on the impl block 2021-09-13 16:36:14 +03:00
rustc_data_structures Rollup merge of #88711 - Mark-Simulacrum:fix-dfs-bug, r=jackh726 2021-09-12 03:44:57 -07:00
rustc_driver Rename rustc_mir to rustc_const_eval. 2021-09-07 20:46:26 +02:00
rustc_error_codes
rustc_errors Bump stage0 compiler to 1.56 2021-09-08 20:51:05 -04:00
rustc_expand Auto merge of #84373 - cjgillot:resolve-span, r=michaelwoerister,petrochenkov 2021-09-11 23:35:28 +00:00
rustc_feature Ignore automatically derived impls of Clone and Debug in dead code analysis 2021-09-09 19:49:07 +02:00
rustc_fs_util
rustc_graphviz
rustc_hir Rollup merge of #88677 - petrochenkov:exportid, r=davidtwco 2021-09-12 03:44:53 -07:00
rustc_hir_pretty don't convert types into identical types 2021-09-11 10:32:38 +02:00
rustc_incremental Auto merge of #83214 - cjgillot:dep-map, r=michaelwoerister 2021-09-06 23:58:16 +00:00
rustc_index
rustc_infer Rollup merge of #88336 - jackh726:gats-where-constraints, r=estebank 2021-09-12 03:44:53 -07:00
rustc_interface Add sanity check. 2021-09-10 20:18:26 +02:00
rustc_lexer
rustc_lint Rollup merge of #88779 - estebank:unused-delims, r=davidtwco 2021-09-11 08:23:43 -07:00
rustc_lint_defs
rustc_llvm RustWrapper: remove some uses of AttrBuilder 2021-09-08 10:47:41 -04:00
rustc_macros don't clone types that are Copy (clippy::clone_on_copy) 2021-09-11 10:18:56 +02:00
rustc_metadata Rollup merge of #88709 - BoxyUwU:thir-abstract-const, r=lcnr 2021-09-12 03:44:56 -07:00
rustc_middle Rollup merge of #88709 - BoxyUwU:thir-abstract-const, r=lcnr 2021-09-12 03:44:56 -07:00
rustc_mir_build Rollup merge of #88709 - BoxyUwU:thir-abstract-const, r=lcnr 2021-09-12 03:44:56 -07:00
rustc_mir_dataflow Rebase fallout. 2021-09-08 20:40:30 +02:00
rustc_mir_transform Rollup merge of #88709 - BoxyUwU:thir-abstract-const, r=lcnr 2021-09-12 03:44:56 -07:00
rustc_monomorphize Rebase fallout. 2021-09-08 20:40:30 +02:00
rustc_parse Auto merge of #84373 - cjgillot:resolve-span, r=michaelwoerister,petrochenkov 2021-09-11 23:35:28 +00:00
rustc_parse_format
rustc_passes don't convert types into identical types 2021-09-11 10:32:38 +02:00
rustc_plugin_impl
rustc_privacy add a CastKind to Node::Cast 2021-09-09 01:32:03 +01:00
rustc_query_impl Rollup merge of #88709 - BoxyUwU:thir-abstract-const, r=lcnr 2021-09-12 03:44:56 -07:00
rustc_query_system Auto merge of #78780 - cjgillot:req, r=Mark-Simulacrum 2021-09-11 20:39:47 +00:00
rustc_resolve Rollup merge of #88677 - petrochenkov:exportid, r=davidtwco 2021-09-12 03:44:53 -07:00
rustc_save_analysis Bump stage0 compiler to 1.56 2021-09-08 20:51:05 -04:00
rustc_serialize rustc: Remove local variable IDs from Exports 2021-09-10 23:41:48 +03:00
rustc_session Give spans their parent item during lowering. 2021-09-10 20:18:36 +02:00
rustc_span Auto merge of #84373 - cjgillot:resolve-span, r=michaelwoerister,petrochenkov 2021-09-11 23:35:28 +00:00
rustc_symbol_mangling
rustc_target bugfix 2021-09-09 10:41:20 +02:00
rustc_trait_selection Auto merge of #88881 - Manishearth:rollup-alohfwx, r=Manishearth 2021-09-12 13:29:56 +00:00
rustc_traits
rustc_ty_utils
rustc_type_ir Use index newtyping for TyVid 2021-09-06 22:38:06 -04:00
rustc_typeck Auto merge of #88881 - Manishearth:rollup-alohfwx, r=Manishearth 2021-09-12 13:29:56 +00:00