Fix even more URLs
This commit is contained in:
parent
16ed8501ef
commit
99200f760b
|
@ -1,6 +1,6 @@
|
||||||
//! Handling of enum discriminants
|
//! Handling of enum discriminants
|
||||||
//!
|
//!
|
||||||
//! Adapted from https://github.com/rust-lang/rust/blob/d760df5aea483aae041c9a241e7acacf48f75035/src/librustc_codegen_ssa/mir/place.rs
|
//! Adapted from <https://github.com/rust-lang/rust/blob/d760df5aea483aae041c9a241e7acacf48f75035/src/librustc_codegen_ssa/mir/place.rs>
|
||||||
|
|
||||||
use rustc_target::abi::{Int, TagEncoding, Variants};
|
use rustc_target::abi::{Int, TagEncoding, Variants};
|
||||||
|
|
||||||
|
|
|
@ -17,9 +17,9 @@ rustc_index::newtype_index! {
|
||||||
impl ExpressionOperandId {
|
impl ExpressionOperandId {
|
||||||
/// An expression operand for a "zero counter", as described in the following references:
|
/// An expression operand for a "zero counter", as described in the following references:
|
||||||
///
|
///
|
||||||
/// * https://github.com/rust-lang/llvm-project/blob/llvmorg-8.0.0/llvm/docs/CoverageMappingFormat.rst#counter
|
/// * <https://github.com/rust-lang/llvm-project/blob/llvmorg-8.0.0/llvm/docs/CoverageMappingFormat.rst#counter>
|
||||||
/// * https://github.com/rust-lang/llvm-project/blob/llvmorg-8.0.0/llvm/docs/CoverageMappingFormat.rst#tag
|
/// * <https://github.com/rust-lang/llvm-project/blob/llvmorg-8.0.0/llvm/docs/CoverageMappingFormat.rst#tag>
|
||||||
/// * https://github.com/rust-lang/llvm-project/blob/llvmorg-8.0.0/llvm/docs/CoverageMappingFormat.rst#counter-expressions
|
/// * <https://github.com/rust-lang/llvm-project/blob/llvmorg-8.0.0/llvm/docs/CoverageMappingFormat.rst#counter-expressions>
|
||||||
///
|
///
|
||||||
/// This operand can be used to count two or more separate code regions with a single counter,
|
/// This operand can be used to count two or more separate code regions with a single counter,
|
||||||
/// if they run sequentially with no branches, by injecting the `Counter` in a `BasicBlock` for
|
/// if they run sequentially with no branches, by injecting the `Counter` in a `BasicBlock` for
|
||||||
|
|
|
@ -228,7 +228,7 @@ pub struct CodegenUnit<'tcx> {
|
||||||
|
|
||||||
/// Specifies the linkage type for a `MonoItem`.
|
/// Specifies the linkage type for a `MonoItem`.
|
||||||
///
|
///
|
||||||
/// See https://llvm.org/docs/LangRef.html#linkage-types for more details about these variants.
|
/// See <https://llvm.org/docs/LangRef.html#linkage-types> for more details about these variants.
|
||||||
#[derive(Copy, Clone, PartialEq, Debug, TyEncodable, TyDecodable, HashStable)]
|
#[derive(Copy, Clone, PartialEq, Debug, TyEncodable, TyDecodable, HashStable)]
|
||||||
pub enum Linkage {
|
pub enum Linkage {
|
||||||
External,
|
External,
|
||||||
|
|
|
@ -368,7 +368,7 @@ pub struct TypeckResults<'tcx> {
|
||||||
/// leads to a `vec![&&Option<i32>, &Option<i32>]`. Empty vectors are not stored.
|
/// leads to a `vec![&&Option<i32>, &Option<i32>]`. Empty vectors are not stored.
|
||||||
///
|
///
|
||||||
/// See:
|
/// See:
|
||||||
/// https://github.com/rust-lang/rfcs/blob/master/text/2005-match-ergonomics.md#definitions
|
/// <https://github.com/rust-lang/rfcs/blob/master/text/2005-match-ergonomics.md#definitions>
|
||||||
pat_adjustments: ItemLocalMap<Vec<Ty<'tcx>>>,
|
pat_adjustments: ItemLocalMap<Vec<Ty<'tcx>>>,
|
||||||
|
|
||||||
/// Borrows
|
/// Borrows
|
||||||
|
|
|
@ -1364,7 +1364,7 @@ impl<'tcx> RegionInferenceContext<'tcx> {
|
||||||
/// terms that the "longer free region" `'a` outlived the "shorter free region" `'b`.
|
/// terms that the "longer free region" `'a` outlived the "shorter free region" `'b`.
|
||||||
///
|
///
|
||||||
/// More details can be found in this blog post by Niko:
|
/// More details can be found in this blog post by Niko:
|
||||||
/// http://smallcultfollowing.com/babysteps/blog/2019/01/17/polonius-and-region-errors/
|
/// <http://smallcultfollowing.com/babysteps/blog/2019/01/17/polonius-and-region-errors/>
|
||||||
///
|
///
|
||||||
/// In the canonical example
|
/// In the canonical example
|
||||||
///
|
///
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
//! inside a single block to shuffle a value around unnecessarily.
|
//! inside a single block to shuffle a value around unnecessarily.
|
||||||
//!
|
//!
|
||||||
//! LLVM by itself is not good enough at eliminating these redundant copies (eg. see
|
//! LLVM by itself is not good enough at eliminating these redundant copies (eg. see
|
||||||
//! https://github.com/rust-lang/rust/issues/32966), so this leaves some performance on the table
|
//! <https://github.com/rust-lang/rust/issues/32966>), so this leaves some performance on the table
|
||||||
//! that we can regain by implementing an optimization for removing these assign statements in rustc
|
//! that we can regain by implementing an optimization for removing these assign statements in rustc
|
||||||
//! itself. When this optimization runs fast enough, it can also speed up the constant evaluation
|
//! itself. When this optimization runs fast enough, it can also speed up the constant evaluation
|
||||||
//! and code generation phases of rustc due to the reduced number of statements and locals.
|
//! and code generation phases of rustc due to the reduced number of statements and locals.
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
//! (b) each pattern is necessary (usefulness)
|
//! (b) each pattern is necessary (usefulness)
|
||||||
//!
|
//!
|
||||||
//! The algorithm implemented here is a modified version of the one described in:
|
//! The algorithm implemented here is a modified version of the one described in:
|
||||||
//! http://moscova.inria.fr/~maranget/papers/warn/index.html
|
//! <http://moscova.inria.fr/~maranget/papers/warn/index.html>
|
||||||
//! However, to save future implementors from reading the original paper, we
|
//! However, to save future implementors from reading the original paper, we
|
||||||
//! summarise the algorithm here to hopefully save time and be a little clearer
|
//! summarise the algorithm here to hopefully save time and be a little clearer
|
||||||
//! (without being so rigorous).
|
//! (without being so rigorous).
|
||||||
|
@ -2040,7 +2040,7 @@ impl<'tcx> MissingConstructors<'tcx> {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Algorithm from http://moscova.inria.fr/~maranget/papers/warn/index.html.
|
/// Algorithm from <http://moscova.inria.fr/~maranget/papers/warn/index.html>.
|
||||||
/// The algorithm from the paper has been modified to correctly handle empty
|
/// The algorithm from the paper has been modified to correctly handle empty
|
||||||
/// types. The changes are:
|
/// types. The changes are:
|
||||||
/// (0) We don't exit early if the pattern matrix has zero rows. We just
|
/// (0) We don't exit early if the pattern matrix has zero rows. We just
|
||||||
|
|
|
@ -511,7 +511,7 @@ impl<'a> StringReader<'a> {
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Note: It was decided to not add a test case, because it would be to big.
|
/// Note: It was decided to not add a test case, because it would be to big.
|
||||||
/// https://github.com/rust-lang/rust/pull/50296#issuecomment-392135180
|
/// <https://github.com/rust-lang/rust/pull/50296#issuecomment-392135180>
|
||||||
fn report_too_many_hashes(&self, start: BytePos, found: usize) -> ! {
|
fn report_too_many_hashes(&self, start: BytePos, found: usize) -> ! {
|
||||||
self.fatal_span_(
|
self.fatal_span_(
|
||||||
start,
|
start,
|
||||||
|
|
|
@ -38,7 +38,7 @@ use std::{cmp, fmt, mem};
|
||||||
/// Implemented to visit all `DefId`s in a type.
|
/// Implemented to visit all `DefId`s in a type.
|
||||||
/// Visiting `DefId`s is useful because visibilities and reachabilities are attached to them.
|
/// Visiting `DefId`s is useful because visibilities and reachabilities are attached to them.
|
||||||
/// The idea is to visit "all components of a type", as documented in
|
/// The idea is to visit "all components of a type", as documented in
|
||||||
/// https://github.com/rust-lang/rfcs/blob/master/text/2145-type-privacy.md#how-to-determine-visibility-of-a-type.
|
/// <https://github.com/rust-lang/rfcs/blob/master/text/2145-type-privacy.md#how-to-determine-visibility-of-a-type>.
|
||||||
/// The default type visitor (`TypeVisitor`) does most of the job, but it has some shortcomings.
|
/// The default type visitor (`TypeVisitor`) does most of the job, but it has some shortcomings.
|
||||||
/// First, it doesn't have overridable `fn visit_trait_ref`, so we have to catch trait `DefId`s
|
/// First, it doesn't have overridable `fn visit_trait_ref`, so we have to catch trait `DefId`s
|
||||||
/// manually. Second, it doesn't visit some type components like signatures of fn types, or traits
|
/// manually. Second, it doesn't visit some type components like signatures of fn types, or traits
|
||||||
|
|
|
@ -621,7 +621,7 @@ fn object_ty_for_trait<'tcx>(
|
||||||
///
|
///
|
||||||
/// In practice, we cannot use `dyn Trait` explicitly in the obligation because it would result
|
/// In practice, we cannot use `dyn Trait` explicitly in the obligation because it would result
|
||||||
/// in a new check that `Trait` is object safe, creating a cycle (until object_safe_for_dispatch
|
/// in a new check that `Trait` is object safe, creating a cycle (until object_safe_for_dispatch
|
||||||
/// is stabilized, see tracking issue https://github.com/rust-lang/rust/issues/43561).
|
/// is stabilized, see tracking issue <https://github.com/rust-lang/rust/issues/43561>).
|
||||||
/// Instead, we fudge a little by introducing a new type parameter `U` such that
|
/// Instead, we fudge a little by introducing a new type parameter `U` such that
|
||||||
/// `Self: Unsize<U>` and `U: Trait + ?Sized`, and use `U` in place of `dyn Trait`.
|
/// `Self: Unsize<U>` and `U: Trait + ?Sized`, and use `U` in place of `dyn Trait`.
|
||||||
/// Written as a chalk-style query:
|
/// Written as a chalk-style query:
|
||||||
|
|
|
@ -32,7 +32,7 @@ pub use poll_fn::{poll_fn, PollFn};
|
||||||
/// This type is needed because:
|
/// This type is needed because:
|
||||||
///
|
///
|
||||||
/// a) Generators cannot implement `for<'a, 'b> Generator<&'a mut Context<'b>>`, so we need to pass
|
/// a) Generators cannot implement `for<'a, 'b> Generator<&'a mut Context<'b>>`, so we need to pass
|
||||||
/// a raw pointer (see https://github.com/rust-lang/rust/issues/68923).
|
/// a raw pointer (see <https://github.com/rust-lang/rust/issues/68923>).
|
||||||
/// b) Raw pointers and `NonNull` aren't `Send` or `Sync`, so that would make every single future
|
/// b) Raw pointers and `NonNull` aren't `Send` or `Sync`, so that would make every single future
|
||||||
/// non-Send/Sync as well, and we don't want that.
|
/// non-Send/Sync as well, and we don't want that.
|
||||||
///
|
///
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
//! Parsing of GCC-style Language-Specific Data Area (LSDA)
|
//! Parsing of GCC-style Language-Specific Data Area (LSDA)
|
||||||
//! For details see:
|
//! For details see:
|
||||||
//! http://refspecs.linuxfoundation.org/LSB_3.0.0/LSB-PDA/LSB-PDA/ehframechpt.html
|
//! * <http://refspecs.linuxfoundation.org/LSB_3.0.0/LSB-PDA/LSB-PDA/ehframechpt.html>
|
||||||
//! http://mentorembedded.github.io/cxx-abi/exceptions.pdf
|
//! * <http://mentorembedded.github.io/cxx-abi/exceptions.pdf>
|
||||||
//! http://www.airs.com/blog/archives/460
|
//! * <http://www.airs.com/blog/archives/460>
|
||||||
//! http://www.airs.com/blog/archives/464
|
//! * <http://www.airs.com/blog/archives/464>
|
||||||
//!
|
//!
|
||||||
//! A reference implementation may be found in the GCC source tree
|
//! A reference implementation may be found in the GCC source tree
|
||||||
//! (`<root>/libgcc/unwind-c.c` as of this writing).
|
//! (`<root>/libgcc/unwind-c.c` as of this writing).
|
||||||
|
|
|
@ -4,9 +4,9 @@
|
||||||
//! "Exception Handling in LLVM" (llvm.org/docs/ExceptionHandling.html) and
|
//! "Exception Handling in LLVM" (llvm.org/docs/ExceptionHandling.html) and
|
||||||
//! documents linked from it.
|
//! documents linked from it.
|
||||||
//! These are also good reads:
|
//! These are also good reads:
|
||||||
//! https://itanium-cxx-abi.github.io/cxx-abi/abi-eh.html
|
//! * <https://itanium-cxx-abi.github.io/cxx-abi/abi-eh.html>
|
||||||
//! http://monoinfinito.wordpress.com/series/exception-handling-in-c/
|
//! * <http://monoinfinito.wordpress.com/series/exception-handling-in-c/>
|
||||||
//! http://www.airs.com/blog/index.php?s=exception+frames
|
//! * <http://www.airs.com/blog/index.php?s=exception+frames>
|
||||||
//!
|
//!
|
||||||
//! ## A brief summary
|
//! ## A brief summary
|
||||||
//!
|
//!
|
||||||
|
|
|
@ -152,7 +152,7 @@ impl Step for ToolStateCheck {
|
||||||
/// error if there are any.
|
/// error if there are any.
|
||||||
///
|
///
|
||||||
/// This also handles publishing the results to the `history` directory of
|
/// This also handles publishing the results to the `history` directory of
|
||||||
/// the toolstate repo https://github.com/rust-lang-nursery/rust-toolstate
|
/// the toolstate repo <https://github.com/rust-lang-nursery/rust-toolstate>
|
||||||
/// if the env var `TOOLSTATE_PUBLISH` is set. Note that there is a
|
/// if the env var `TOOLSTATE_PUBLISH` is set. Note that there is a
|
||||||
/// *separate* step of updating the `latest.json` file and creating GitHub
|
/// *separate* step of updating the `latest.json` file and creating GitHub
|
||||||
/// issues and comments in `src/ci/publish_toolstate.sh`, which is only
|
/// issues and comments in `src/ci/publish_toolstate.sh`, which is only
|
||||||
|
@ -162,7 +162,7 @@ impl Step for ToolStateCheck {
|
||||||
/// The rules for failure are:
|
/// The rules for failure are:
|
||||||
/// * If the PR modifies a tool, the status must be test-pass.
|
/// * If the PR modifies a tool, the status must be test-pass.
|
||||||
/// NOTE: There is intent to change this, see
|
/// NOTE: There is intent to change this, see
|
||||||
/// https://github.com/rust-lang/rust/issues/65000.
|
/// <https://github.com/rust-lang/rust/issues/65000>.
|
||||||
/// * All "stable" tools must be test-pass on the stable or beta branches.
|
/// * All "stable" tools must be test-pass on the stable or beta branches.
|
||||||
/// * During beta promotion week, a PR is not allowed to "regress" a
|
/// * During beta promotion week, a PR is not allowed to "regress" a
|
||||||
/// stable tool. That is, the status is not allowed to get worse
|
/// stable tool. That is, the status is not allowed to get worse
|
||||||
|
|
|
@ -32,7 +32,7 @@ macro_rules! t {
|
||||||
|
|
||||||
/// Reads an environment variable and adds it to dependencies.
|
/// Reads an environment variable and adds it to dependencies.
|
||||||
/// Supposed to be used for all variables except those set for build scripts by cargo
|
/// Supposed to be used for all variables except those set for build scripts by cargo
|
||||||
/// https://doc.rust-lang.org/cargo/reference/environment-variables.html#environment-variables-cargo-sets-for-build-scripts
|
/// <https://doc.rust-lang.org/cargo/reference/environment-variables.html#environment-variables-cargo-sets-for-build-scripts>
|
||||||
pub fn tracked_env_var_os<K: AsRef<OsStr> + Display>(key: K) -> Option<OsString> {
|
pub fn tracked_env_var_os<K: AsRef<OsStr> + Display>(key: K) -> Option<OsString> {
|
||||||
println!("cargo:rerun-if-env-changed={}", key);
|
println!("cargo:rerun-if-env-changed={}", key);
|
||||||
env::var_os(key)
|
env::var_os(key)
|
||||||
|
|
|
@ -665,7 +665,7 @@ fn run_global_ctxt(
|
||||||
(krate, ctxt.renderinfo.into_inner(), ctxt.render_options)
|
(krate, ctxt.renderinfo.into_inner(), ctxt.render_options)
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Due to https://github.com/rust-lang/rust/pull/73566,
|
/// Due to <https://github.com/rust-lang/rust/pull/73566>,
|
||||||
/// the name resolution pass may find errors that are never emitted.
|
/// the name resolution pass may find errors that are never emitted.
|
||||||
/// If typeck is called after this happens, then we'll get an ICE:
|
/// If typeck is called after this happens, then we'll get an ICE:
|
||||||
/// 'Res::Error found but not reported'. To avoid this, emit the errors now.
|
/// 'Res::Error found but not reported'. To avoid this, emit the errors now.
|
||||||
|
|
Loading…
Reference in New Issue