rust/compiler
Nicholas Nethercote 99f5945f85 Overhaul MacArgs::Eq.
The value in `MacArgs::Eq` is currently represented as a `Token`.
Because of `TokenKind::Interpolated`, `Token` can be either a token or
an arbitrary AST fragment. In practice, a `MacArgs::Eq` starts out as a
literal or macro call AST fragment, and then is later lowered to a
literal token. But this is very non-obvious. `Token` is a much more
general type than what is needed.

This commit restricts things, by introducing a new type `MacArgsEqKind`
that is either an AST expression (pre-lowering) or an AST literal
(post-lowering). The downside is that the code is a bit more verbose in
a few places. The benefit is that makes it much clearer what the
possibilities are (though also shorter in some other places). Also, it
removes one use of `TokenKind::Interpolated`, taking us a step closer to
removing that variant, which will let us make `Token` impl `Copy` and
remove many "handle Interpolated" code paths in the parser.

Things to note:
- Error messages have improved. Messages like this:
  ```
  unexpected token: `"bug" + "found"`
  ```
  now say "unexpected expression", which makes more sense. Although
  arbitrary expressions can exist within tokens thanks to
  `TokenKind::Interpolated`, that's not obvious to anyone who doesn't
  know compiler internals.
- In `parse_mac_args_common`, we no longer need to collect tokens for
  the value expression.
2022-05-05 07:06:12 +10:00
..
rustc Propagate parallel_compiler feature through rustc crates. Turned off feature gives change of builded crates: 238 -> 224. 2022-03-28 08:41:12 +03:00
rustc_apfloat Addressed comments by @compiler-errors and @bjorn3 2022-03-30 17:04:46 -04:00
rustc_arena mark FIXMES for all the places found that are probably offset_from 2022-03-29 20:18:28 -04:00
rustc_ast Overhaul MacArgs::Eq. 2022-05-05 07:06:12 +10:00
rustc_ast_lowering Overhaul MacArgs::Eq. 2022-05-05 07:06:12 +10:00
rustc_ast_passes rename to BoundKind and add comments 2022-04-21 10:09:32 +08:00
rustc_ast_pretty Overhaul MacArgs::Eq. 2022-05-05 07:06:12 +10:00
rustc_attr Rollup merge of #94948 - jhpratt:rustc_deprecated, r=Dylan-DPC 2022-03-20 09:14:59 +01:00
rustc_borrowck Recover suggestions to introduce named lifetime under NLL 2022-04-27 22:36:40 +02:00
rustc_builtin_macros rustc_ast: Harmonize delimiter naming with proc_macro::Delimiter 2022-04-28 10:04:29 +03:00
rustc_codegen_cranelift Merge commit 'f2cdd4a78d89c009342197cf5844a21f8aa813df' into sync_cg_clif-2022-04-22 2022-04-22 21:11:38 +02:00
rustc_codegen_gcc Rollup merge of #95740 - Amanieu:kreg0, r=nagisa 2022-04-19 22:57:39 +02:00
rustc_codegen_llvm Rollup merge of #96432 - SparrowLii:dbg_scope, r=davidtwco 2022-04-28 02:40:34 +02:00
rustc_codegen_ssa Rollup merge of #96432 - SparrowLii:dbg_scope, r=davidtwco 2022-04-28 02:40:34 +02:00
rustc_const_eval Auto merge of #95976 - b-naber:valtree-constval-conversion, r=oli-obk 2022-04-28 13:18:22 +00:00
rustc_data_structures incr. comp.: Don't export impl_stable_hash_via_hash!() and warn about using it. 2022-04-19 10:43:20 +02:00
rustc_driver errors: lazily load fallback fluent bundle 2022-04-13 02:44:59 +01:00
rustc_error_codes rework error messages for incorrect inherent impls 2022-03-30 11:23:58 +02:00
rustc_error_messages separate messages by a newline 2022-04-26 11:13:23 +02:00
rustc_errors Add --json unused-externs-silent with original behaviour 2022-04-27 10:04:25 -07:00
rustc_expand rustc_ast: Harmonize delimiter naming with proc_macro::Delimiter 2022-04-28 10:04:29 +03:00
rustc_feature Rollup merge of #94457 - jhpratt:stabilize-derive_default_enum, r=davidtwco 2022-04-15 20:50:43 +02:00
rustc_fs_util
rustc_graphviz eplace usages of vec![].into_iter with [].into_iter 2022-01-09 14:09:25 +11:00
rustc_hir Auto merge of #91557 - cjgillot:ast-lifetimes-named, r=petrochenkov 2022-04-27 23:13:28 +00:00
rustc_hir_pretty Stop pretty-printing HIR visibility. 2022-04-23 09:55:25 +02:00
rustc_incremental Rollup merge of #95434 - cjgillot:dump-dep-kind, r=oli-obk 2022-04-21 20:55:18 +02:00
rustc_index tut tut tut 2022-04-27 08:51:33 +01:00
rustc_infer Rollup merge of #96409 - marmeladema:fix-nll-introduce-named-lifetime-suggestion, r=jackh726 2022-04-28 20:13:01 +02:00
rustc_interface Rollup merge of #96090 - JakobDegen:mir-tests, r=nagisa 2022-04-25 00:10:59 +02:00
rustc_lexer Reduce max hash in raw strings from u16 to u8 2022-03-23 22:13:55 +01:00
rustc_lint Fix lints. 2022-04-23 23:01:19 +02:00
rustc_lint_defs Plumb through rustc_lint_defs::Level as enum rather than string. 2022-04-27 10:04:25 -07:00
rustc_llvm Stub out more PassManagerBuilder functions 2022-04-20 09:36:02 +02:00
rustc_log Make rustc_log doc test runnable 2022-01-03 22:31:56 -08:00
rustc_macros fix formatting 2022-04-25 23:17:32 +02:00
rustc_metadata Add --json unused-externs-silent with original behaviour 2022-04-27 10:04:25 -07:00
rustc_middle Auto merge of #95976 - b-naber:valtree-constval-conversion, r=oli-obk 2022-04-28 13:18:22 +00:00
rustc_mir_build only show a simple description in E0133 span label 2022-04-24 18:33:07 +02:00
rustc_mir_dataflow Add new MutatatingUseContexts for deinit and SetDiscriminant 2022-04-11 09:26:26 -04:00
rustc_mir_transform Rollup merge of #96471 - BoxyUwU:let_else_considered_harmful, r=lcnr 2022-04-28 02:40:36 +02:00
rustc_monomorphize Auto merge of #95604 - nbdd0121:used2, r=petrochenkov 2022-04-25 16:14:54 +00:00
rustc_parse Overhaul MacArgs::Eq. 2022-05-05 07:06:12 +10:00
rustc_parse_format Spellchecking compiler comments 2022-03-30 15:14:15 -04:00
rustc_passes Auto merge of #95604 - nbdd0121:used2, r=petrochenkov 2022-04-25 16:14:54 +00:00
rustc_plugin_impl replace dynamic library module with libloading 2021-12-06 12:03:47 -05:00
rustc_privacy Compute has_pub_restricted in the resolver. 2022-04-23 23:03:18 +02:00
rustc_query_impl implement (as of now still unused) query for valtree -> constvalue conversion 2022-04-21 16:37:24 +02:00
rustc_query_system Remove NodeIdHashingMode. 2022-04-12 19:59:32 +02:00
rustc_resolve Auto merge of #96495 - Dylan-DPC:rollup-9lm4tpp, r=Dylan-DPC 2022-04-28 01:37:03 +00:00
rustc_save_analysis Drop vis in ImplItem. 2022-04-23 09:57:00 +02:00
rustc_serialize Remove unused macro rules 2022-04-18 23:28:06 +02:00
rustc_session Rollup merge of #96433 - petrochenkov:delim, r=nnethercote 2022-04-28 20:13:02 +02:00
rustc_span extend EventArgRecorder into span-aware SpannedEventArgRecorder 2022-04-22 18:06:21 +02:00
rustc_symbol_mangling Auto merge of #95655 - kckeiks:create-hir-crate-items-query, r=cjgillot 2022-04-17 08:06:53 +00:00
rustc_target Rollup merge of #96415 - ehuss:git-io, r=bjorn3 2022-04-26 13:22:31 +02:00
rustc_trait_selection Auto merge of #95976 - b-naber:valtree-constval-conversion, r=oli-obk 2022-04-28 13:18:22 +00:00
rustc_traits Remove opaque type obligation and just register opaque types as they are encountered. 2022-03-28 16:57:45 +00:00
rustc_ty_utils Avoid accessing HIR from MIR queries. 2022-04-10 13:08:36 +02:00
rustc_type_ir Revert "Auto merge of #93893 - oli-obk:sad_revert, r=oli-obk" 2022-03-28 16:27:14 +00:00
rustc_typeck Rollup merge of #96471 - BoxyUwU:let_else_considered_harmful, r=lcnr 2022-04-28 02:40:36 +02:00