Merge from rustc
This commit is contained in:
commit
cd80977c60
|
|
@ -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]
|
||||||
|
|
|
||||||
|
|
@ -1 +1 @@
|
||||||
ae9173d7dd4a31806c950c90dcc331f1508b4d17
|
25a615bf829b9f6d6f22da537e3851043f92e5f2
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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,
|
||||||
|
|
|
||||||
|
|
@ -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.
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue