diff --git a/src/bootstrap/README.md b/src/bootstrap/README.md index 942f070c82fd8..57d644d635cf7 100644 --- a/src/bootstrap/README.md +++ b/src/bootstrap/README.md @@ -50,7 +50,7 @@ compiler. What actually happens when you invoke rustbuild is: 1. The entry point script, `src/bootstrap/bootstrap.py` is run. This script is responsible for downloading the stage0 compiler/Cargo binaries, and it then compiles the build system itself (this folder). Finally, it then invokes the - actual `boostrap` binary build system. + actual `bootstrap` binary build system. 2. In Rust, `bootstrap` will slurp up all configuration, perform a number of sanity checks (compilers exist for example), and then start building the stage0 artifacts. diff --git a/src/doc/book/patterns.md b/src/doc/book/patterns.md index 7ecfdcfcc1e02..a0245d4c7b163 100644 --- a/src/doc/book/patterns.md +++ b/src/doc/book/patterns.md @@ -174,7 +174,7 @@ Here, we bind the first and last element of the tuple to `x` and `z`, but ignore the middle element. It’s worth noting that using `_` never binds the value in the first place, -which means a value may not move: +which means that the value does not move: ```rust let tuple: (u32, String) = (5, String::from("five")); diff --git a/src/librustc/middle/lang_items.rs b/src/librustc/middle/lang_items.rs index 853477ac97c16..960305e10488d 100644 --- a/src/librustc/middle/lang_items.rs +++ b/src/librustc/middle/lang_items.rs @@ -37,7 +37,7 @@ use hir; // The actual lang items defined come at the end of this file in one handy table. // So you probably just want to nip down to the end. -macro_rules! lets_do_this { +macro_rules! language_item_table { ( $( $variant:ident, $name:expr, $method:ident; )* ) => { @@ -269,7 +269,7 @@ pub fn collect_language_items(session: &Session, } } -lets_do_this! { +language_item_table! { // Variant name, Name, Method name; CharImplItem, "char", char_impl; StrImplItem, "str", str_impl; diff --git a/src/librustc_lint/lib.rs b/src/librustc_lint/lib.rs index ed12d0d9f3c11..7baadb2b69a5f 100644 --- a/src/librustc_lint/lib.rs +++ b/src/librustc_lint/lib.rs @@ -163,7 +163,7 @@ pub fn register_builtins(store: &mut lint::LintStore, sess: Option<&Session>) { }, FutureIncompatibleInfo { id: LintId::of(INVALID_TYPE_PARAM_DEFAULT), - reference: "PR 30742 ", + reference: "PR 30724 ", }, FutureIncompatibleInfo { id: LintId::of(SUPER_OR_SELF_IN_GLOBAL_PATH), diff --git a/src/librustc_resolve/diagnostics.rs b/src/librustc_resolve/diagnostics.rs index 208b5f11e20d1..4e4f6e276d1dd 100644 --- a/src/librustc_resolve/diagnostics.rs +++ b/src/librustc_resolve/diagnostics.rs @@ -843,6 +843,17 @@ Or: let unknown_variable = 12u32; let x = unknown_variable; // ok! ``` + +If the item is not defined in the current module, it must be imported using a +`use` statement, like so: + +```ignore +use foo::bar; +bar(); +``` + +If the item you are importing is not defined in some super-module of the +current module, then it must also be declared as public (e.g., `pub fn`). "##, E0426: r##" diff --git a/src/libstd/path.rs b/src/libstd/path.rs index f413bed86a853..8dc46239f3d03 100644 --- a/src/libstd/path.rs +++ b/src/libstd/path.rs @@ -579,6 +579,8 @@ impl<'a> AsRef for Component<'a> { /// See the module documentation for an in-depth explanation of components and /// their role in the API. /// +/// This `struct` is created by the [`path::Path::components`] method. +/// /// # Examples /// /// ``` @@ -590,6 +592,8 @@ impl<'a> AsRef for Component<'a> { /// println!("{:?}", component); /// } /// ``` +/// +/// [`path::Path::components`]: struct.Path.html#method.components #[derive(Clone)] #[stable(feature = "rust1", since = "1.0.0")] pub struct Components<'a> { @@ -1781,7 +1785,9 @@ impl Path { /// This function will traverse symbolic links to query information about the /// destination file. /// - /// This is an alias to `fs::metadata`. + /// This is an alias to [`fs::metadata`]. + /// + /// [`fs::metadata`]: ../fs/fn.metadata.html #[stable(feature = "path_ext", since = "1.5.0")] pub fn metadata(&self) -> io::Result { fs::metadata(self) @@ -1789,7 +1795,9 @@ impl Path { /// Query the metadata about a file without following symlinks. /// - /// This is an alias to `fs::symlink_metadata`. + /// This is an alias to [`fs::symlink_metadata`]. + /// + /// [`fs::symlink_metadata`]: ../fs/fn.symlink_metadata.html #[stable(feature = "path_ext", since = "1.5.0")] pub fn symlink_metadata(&self) -> io::Result { fs::symlink_metadata(self) @@ -1798,7 +1806,9 @@ impl Path { /// Returns the canonical form of the path with all intermediate components /// normalized and symbolic links resolved. /// - /// This is an alias to `fs::canonicalize`. + /// This is an alias to [`fs::canonicalize`]. + /// + /// [`fs::canonicalize`]: ../fs/fn.canonicalize.html #[stable(feature = "path_ext", since = "1.5.0")] pub fn canonicalize(&self) -> io::Result { fs::canonicalize(self) @@ -1806,7 +1816,9 @@ impl Path { /// Reads a symbolic link, returning the file that the link points to. /// - /// This is an alias to `fs::read_link`. + /// This is an alias to [`fs::read_link`]. + /// + /// [`fs::read_link`]: ../fs/fn.read_link.html #[stable(feature = "path_ext", since = "1.5.0")] pub fn read_link(&self) -> io::Result { fs::read_link(self) @@ -1817,7 +1829,9 @@ impl Path { /// The iterator will yield instances of `io::Result`. New errors may /// be encountered after an iterator is initially constructed. /// - /// This is an alias to `fs::read_dir`. + /// This is an alias to [`fs::read_dir`]. + /// + /// [`fs::read_dir`]: ../fs/fn.read_dir.html #[stable(feature = "path_ext", since = "1.5.0")] pub fn read_dir(&self) -> io::Result { fs::read_dir(self) diff --git a/src/libstd/thread/mod.rs b/src/libstd/thread/mod.rs index d83d45518e404..7c043231d858c 100644 --- a/src/libstd/thread/mod.rs +++ b/src/libstd/thread/mod.rs @@ -220,6 +220,21 @@ impl Builder { /// Names the thread-to-be. Currently the name is used for identification /// only in panic messages. + /// + /// # Examples + /// + /// ```rust + /// use std::thread; + /// + /// let builder = thread::Builder::new() + /// .name("foo".into()); + /// + /// let handler = builder.spawn(|| { + /// assert_eq!(thread::current().name(), Some("foo")) + /// }).unwrap(); + /// + /// handler.join().unwrap(); + /// ``` #[stable(feature = "rust1", since = "1.0.0")] pub fn name(mut self, name: String) -> Builder { self.name = Some(name); @@ -379,6 +394,19 @@ pub fn sleep_ms(ms: u32) { /// signal being received or a spurious wakeup. Platforms which do not support /// nanosecond precision for sleeping will have `dur` rounded up to the nearest /// granularity of time they can sleep for. +/// +/// # Examples +/// +/// ``` +/// use std::{thread, time}; +/// +/// let ten_millis = time::Duration::from_millis(10); +/// let now = time::Instant::now(); +/// +/// thread::sleep(ten_millis); +/// +/// assert!(now.elapsed() >= ten_millis); +/// ``` #[stable(feature = "thread_sleep", since = "1.4.0")] pub fn sleep(dur: Duration) { imp::Thread::sleep(dur) @@ -423,10 +451,10 @@ pub fn park() { /// the specified duration has been reached (may wake spuriously). /// /// The semantics of this function are equivalent to `park()` except that the -/// thread will be blocked for roughly no longer than *ms*. This method +/// thread will be blocked for roughly no longer than `ms`. This method /// should not be used for precise timing due to anomalies such as /// preemption or platform differences that may not cause the maximum -/// amount of time waited to be precisely *ms* long. +/// amount of time waited to be precisely `ms` long. /// /// See the module doc for more detail. #[stable(feature = "rust1", since = "1.0.0")] @@ -439,10 +467,10 @@ pub fn park_timeout_ms(ms: u32) { /// the specified duration has been reached (may wake spuriously). /// /// The semantics of this function are equivalent to `park()` except that the -/// thread will be blocked for roughly no longer than *dur*. This method +/// thread will be blocked for roughly no longer than `dur`. This method /// should not be used for precise timing due to anomalies such as /// preemption or platform differences that may not cause the maximum -/// amount of time waited to be precisely *dur* long. +/// amount of time waited to be precisely `dur` long. /// /// See the module doc for more detail. /// @@ -610,6 +638,36 @@ impl JoinInner { /// Due to platform restrictions, it is not possible to `Clone` this /// handle: the ability to join a child thread is a uniquely-owned /// permission. +/// +/// This `struct` is created by the [`thread::spawn`] function and the +/// [`thread::Builder::spawn`] method. +/// +/// # Examples +/// +/// Creation from [`thread::spawn`]: +/// +/// ```rust +/// use std::thread; +/// +/// let join_handle: thread::JoinHandle<_> = thread::spawn(|| { +/// // some work here +/// }); +/// ``` +/// +/// Creation from [`thread::Builder::spawn`]: +/// +/// ```rust +/// use std::thread; +/// +/// let builder = thread::Builder::new(); +/// +/// let join_handle: thread::JoinHandle<_> = builder.spawn(|| { +/// // some work here +/// }).unwrap(); +/// ``` +/// +/// [`thread::spawn`]: fn.spawn.html +/// [`thread::Builder::spawn`]: struct.Builder.html#method.spawn #[stable(feature = "rust1", since = "1.0.0")] pub struct JoinHandle(JoinInner);