diff options
| author | Jacob Pratt <jacob@jhpratt.dev> | 2025-08-21 01:12:19 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-08-21 01:12:19 -0400 |
| commit | 25b81bf5ad3639ef2541386052fcdca7224d4c32 (patch) | |
| tree | 8853d0c7d60a0b064fdde7eb8ffdcc1bb8c89800 /compiler/rustc_ast_passes/src/ast_validation.rs | |
| parent | d54aaed392835baaad515d38aedc3b1d6350d4fc (diff) | |
| parent | bfd5d59f976f6c3b6dbe486724a0bb2054aad94b (diff) | |
| download | rust-25b81bf5ad3639ef2541386052fcdca7224d4c32.tar.gz rust-25b81bf5ad3639ef2541386052fcdca7224d4c32.zip | |
Rollup merge of #145590 - nnethercote:ModKind-Inline, r=petrochenkov
Prevent impossible combinations in `ast::ModKind`. `ModKind::Loaded` has an `inline` field and a `had_parse_error` field. If the `inline` field is `Inline::Yes` then `had_parse_error` must be `Ok(())`. This commit moves the `had_parse_error` field into the `Inline::No` variant. This makes it impossible to create the nonsensical combination of `inline == Inline::Yes` and `had_parse_error = Err(_)`. r? ```@Urgau```
Diffstat (limited to 'compiler/rustc_ast_passes/src/ast_validation.rs')
| -rw-r--r-- | compiler/rustc_ast_passes/src/ast_validation.rs | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/compiler/rustc_ast_passes/src/ast_validation.rs b/compiler/rustc_ast_passes/src/ast_validation.rs index 0c72f319007..f8ad6504a68 100644 --- a/compiler/rustc_ast_passes/src/ast_validation.rs +++ b/compiler/rustc_ast_passes/src/ast_validation.rs @@ -1169,7 +1169,7 @@ impl<'a> Visitor<'a> for AstValidator<'a> { self.dcx().emit_err(errors::UnsafeItem { span, kind: "module" }); } // Ensure that `path` attributes on modules are recorded as used (cf. issue #35584). - if !matches!(mod_kind, ModKind::Loaded(_, Inline::Yes, _, _)) + if !matches!(mod_kind, ModKind::Loaded(_, Inline::Yes, _)) && !attr::contains_name(&item.attrs, sym::path) { self.check_mod_file_item_asciionly(*ident); |
