Merge from rustc

This commit is contained in:
Ralf Jung 2025-04-10 14:24:19 +02:00
commit cd80977c60
7 changed files with 14 additions and 8 deletions

View File

@ -1,6 +1,6 @@
[book] [book]
title = "Rust Compiler Development Guide" title = "Rust Compiler Development Guide"
author = "The Rust Project Developers" authors = ["The Rust Project Developers"]
description = "A guide to developing the Rust compiler (rustc)" description = "A guide to developing the Rust compiler (rustc)"
[build] [build]

View File

@ -1 +1 @@
ae9173d7dd4a31806c950c90dcc331f1508b4d17 25a615bf829b9f6d6f22da537e3851043f92e5f2

View File

@ -110,7 +110,7 @@ See [`compute_hir_hash`] for where the hash is actually computed.
[SVH]: https://doc.rust-lang.org/nightly/nightly-rustc/rustc_data_structures/svh/struct.Svh.html [SVH]: https://doc.rust-lang.org/nightly/nightly-rustc/rustc_data_structures/svh/struct.Svh.html
[incremental compilation]: ../queries/incremental-compilation.md [incremental compilation]: ../queries/incremental-compilation.md
[`compute_hir_hash`]: https://doc.rust-lang.org/nightly/nightly-rustc/rustc_ast_lowering/struct.LoweringContext.html#method.compute_hir_hash [`compute_hir_hash`]: https://doc.rust-lang.org/nightly/nightly-rustc/rustc_ast_lowering/fn.compute_hir_hash.html
### Stable Crate Id ### Stable Crate Id

View File

@ -90,7 +90,9 @@ does is call the `main()` that's in this crate's `lib.rs`, though.)
are in `tests/rustdoc-gui`. These use a [NodeJS tool called are in `tests/rustdoc-gui`. These use a [NodeJS tool called
browser-UI-test](https://github.com/GuillaumeGomez/browser-UI-test/) that uses browser-UI-test](https://github.com/GuillaumeGomez/browser-UI-test/) that uses
puppeteer to run tests in a headless browser and check rendering and puppeteer to run tests in a headless browser and check rendering and
interactivity. interactivity. For information on how to write this form of test,
see [`tests/rustdoc-gui/README.md`][rustdoc-gui-readme]
as well as [the description of the `.goml` format][goml-script]
* Additionally, JavaScript type annotations are written using [TypeScript-flavored JSDoc] * Additionally, JavaScript type annotations are written using [TypeScript-flavored JSDoc]
comments and an external d.ts file. The code itself is plain, valid JavaScript; we only comments and an external d.ts file. The code itself is plain, valid JavaScript; we only
use tsc as a linter. use tsc as a linter.
@ -100,6 +102,8 @@ does is call the `main()` that's in this crate's `lib.rs`, though.)
[These tests have several extra directives available to them](./rustdoc-internals/rustdoc-test-suite.md). [These tests have several extra directives available to them](./rustdoc-internals/rustdoc-test-suite.md).
[TypeScript-flavored JSDoc]: https://www.typescriptlang.org/docs/handbook/jsdoc-supported-types.html [TypeScript-flavored JSDoc]: https://www.typescriptlang.org/docs/handbook/jsdoc-supported-types.html
[rustdoc-gui-readme]: https://github.com/rust-lang/rust/blob/master/tests/rustdoc-gui/README.md
[goml-script]: https://github.com/GuillaumeGomez/browser-UI-test/blob/master/goml-script.md
## Constraints ## Constraints

View File

@ -33,7 +33,7 @@ For opaque types in the defining scope and in the implicit-negative coherence mo
always done in two steps. Outside of the defining scope `normalizes-to` for opaques always always done in two steps. Outside of the defining scope `normalizes-to` for opaques always
returns `Err(NoSolution)`. returns `Err(NoSolution)`.
We start by trying to to assign the expected type as a hidden type. We start by trying to assign the expected type as a hidden type.
In the implicit-negative coherence mode, this currently always results in ambiguity without In the implicit-negative coherence mode, this currently always results in ambiguity without
interacting with the opaque types storage. We could instead add allow 'defining' all opaque types, interacting with the opaque types storage. We could instead add allow 'defining' all opaque types,

View File

@ -6,7 +6,8 @@
FIXME(jieyouxu) completely revise this chapter. FIXME(jieyouxu) completely revise this chapter.
--> -->
Directives are special comments that tell compiletest how to build and interpret a test. They must appear before the Rust source in the test. They may also appear in `rmake.rs` [run-make tests](compiletest.md#run-make-tests). Directives are special comments that tell compiletest how to build and interpret a test.
They may also appear in `rmake.rs` [run-make tests](compiletest.md#run-make-tests).
They are normally put after the short comment that explains the point of this They are normally put after the short comment that explains the point of this
test. Compiletest test suites use `//@` to signal that a comment is a directive. test. Compiletest test suites use `//@` to signal that a comment is a directive.

View File

@ -335,8 +335,9 @@ But for strict testing, try to use the `ERROR` annotation as much as possible,
including `//~?` annotations for diagnostics without span. including `//~?` annotations for diagnostics without span.
For compile time diagnostics `error-pattern` should very rarely be necessary. For compile time diagnostics `error-pattern` should very rarely be necessary.
Per-line annotations (`//~`) are still checked in tests using `error-pattern`, Per-line annotations (`//~`) are still checked in tests using `error-pattern`.
to opt out of these checks in exceptional cases use `//@ compile-flags: --error-format=human`. To opt out of these checks, use `//@ compile-flags: --error-format=human`.
Do that only in exceptional cases.
### Error levels ### Error levels