about summary refs log tree commit diff
path: root/clippy_utils/src
diff options
context:
space:
mode:
authorDylan DPC <dylan.dpc@gmail.com>2021-04-07 13:07:14 +0200
committerGitHub <noreply@github.com>2021-04-07 13:07:14 +0200
commitcde58f7174cd83752b3c0a00a970dcc07c511077 (patch)
treede23aed285e936e69e3af8ce1de8756a35921b8b /clippy_utils/src
parent44e3ccb6dc08ca26efd980fc79d011ff1fcb2f94 (diff)
parent879bfeca54a61c22b836905da1468ac2e37085b5 (diff)
downloadrust-cde58f7174cd83752b3c0a00a970dcc07c511077.tar.gz
rust-cde58f7174cd83752b3c0a00a970dcc07c511077.zip
Rollup merge of #83916 - Amanieu:asm_anonconst, r=petrochenkov
Use AnonConst for asm! constants

This replaces the old system which used explicit promotion. See #83169 for more background.

The syntax for `const` operands is still the same as before: `const <expr>`.

Fixes #83169

Because the implementation is heavily based on inline consts, we suffer from the same issues:
- We lose the ability to use expressions derived from generics. See the deleted tests in `src/test/ui/asm/const.rs`.
- We are hitting the same ICEs as inline consts, for example #78174. It is unlikely that we will be able to stabilize this before inline consts are stabilized.
Diffstat (limited to 'clippy_utils/src')
-rw-r--r--clippy_utils/src/hir_utils.rs3
1 files changed, 2 insertions, 1 deletions
diff --git a/clippy_utils/src/hir_utils.rs b/clippy_utils/src/hir_utils.rs
index 618d33545a4..b30c0b79881 100644
--- a/clippy_utils/src/hir_utils.rs
+++ b/clippy_utils/src/hir_utils.rs
@@ -663,7 +663,8 @@ impl<'a, 'tcx> SpanlessHash<'a, 'tcx> {
                                 self.hash_expr(out_expr);
                             }
                         },
-                        InlineAsmOperand::Const { expr } | InlineAsmOperand::Sym { expr } => self.hash_expr(expr),
+                        InlineAsmOperand::Const { anon_const } => self.hash_body(anon_const.body),
+                        InlineAsmOperand::Sym { expr } => self.hash_expr(expr),
                     }
                 }
             },