Skip to content

Commit 799717c

Browse files
committed
---
yaml --- r: 278127 b: refs/heads/auto c: 4896832 h: refs/heads/master i: 278125: ef3cfc3 278123: 264600e 278119: 21a1371 278111: 41eb738
1 parent ff49ace commit 799717c

File tree

543 files changed

+8427
-4184
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

543 files changed

+8427
-4184
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ refs/tags/release-0.3: b5f0d0f648d9a6153664837026ba1be43d3e2503
88
refs/tags/release-0.3.1: 495bae036dfe5ec6ceafd3312b4dca48741e845b
99
refs/tags/release-0.4: e828ea2080499553b97dfe33b3f4d472b4562ad7
1010
refs/tags/release-0.5: 7e3bcfbf21278251ee936ad53e92e9b719702d73
11-
refs/heads/auto: 29875c2e5e5b264f5e8f3c086b38a77a38b327cd
11+
refs/heads/auto: 48968329888948db8e49e307faf589a867dafa05
1212
refs/tags/release-0.6: b4ebcfa1812664df5e142f0134a5faea3918544c
1313
refs/tags/0.1: b19db808c2793fe2976759b85a355c3ad8c8b336
1414
refs/tags/0.2: 1754d02027f2924bed83b0160ee340c7f41d5ea1

branches/auto/mk/crates.mk

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@ DEPS_rustc_lint := rustc log syntax rustc_const_eval
111111
DEPS_rustc_llvm := native:rustllvm libc std rustc_bitflags
112112
DEPS_rustc_metadata := rustc syntax rbml rustc_const_math
113113
DEPS_rustc_passes := syntax rustc core rustc_const_eval
114-
DEPS_rustc_mir := rustc syntax rustc_const_math rustc_const_eval
114+
DEPS_rustc_mir := rustc syntax rustc_const_math rustc_const_eval rustc_bitflags
115115
DEPS_rustc_resolve := arena rustc log syntax
116116
DEPS_rustc_platform_intrinsics := std
117117
DEPS_rustc_plugin := rustc rustc_metadata syntax rustc_mir

branches/auto/mk/ctags.mk

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,14 +15,21 @@
1515

1616
.PHONY: TAGS.emacs TAGS.vi
1717

18-
CTAGS_LOCATIONS=$(wildcard ${CFG_SRC_DIR}src/lib*)
18+
CTAGS_RUSTC_LOCATIONS=$(patsubst ${CFG_SRC_DIR}src/lib%test,, \
19+
$(wildcard ${CFG_SRC_DIR}src/lib*)) ${CFG_SRC_DIR}src/libtest
1920
CTAGS_LOCATIONS=$(patsubst ${CFG_SRC_DIR}src/librust%,, \
2021
$(patsubst ${CFG_SRC_DIR}src/lib%test,, \
2122
$(wildcard ${CFG_SRC_DIR}src/lib*))) ${CFG_SRC_DIR}src/libtest
22-
CTAGS_OPTS=--options="${CFG_SRC_DIR}src/etc/ctags.rust" --languages=Rust --recurse ${CTAGS_LOCATIONS}
23+
CTAGS_OPTS=--options="${CFG_SRC_DIR}src/etc/ctags.rust" --languages=Rust --recurse
24+
25+
TAGS.rustc.emacs:
26+
ctags -e -f $@ ${CTAGS_OPTS} ${CTAGS_RUSTC_LOCATIONS}
2327

2428
TAGS.emacs:
25-
ctags -e -f $@ ${CTAGS_OPTS}
29+
ctags -e -f $@ ${CTAGS_OPTS} ${CTAGS_LOCATIONS}
30+
31+
TAGS.rustc.vi:
32+
ctags -f $@ ${CTAGS_OPTS} ${CTAGS_RUSTC_LOCATIONS}
2633

2734
TAGS.vi:
28-
ctags -f $@ ${CTAGS_OPTS}
35+
ctags -f $@ ${CTAGS_OPTS} ${CTAGS_LOCATIONS}

branches/auto/mk/debuggers.mk

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -41,10 +41,13 @@ DEBUGGER_BIN_SCRIPTS_LLDB_ABS=\
4141

4242

4343
## ALL ##
44-
DEBUGGER_RUSTLIB_ETC_SCRIPTS_ALL=$(DEBUGGER_RUSTLIB_ETC_SCRIPTS_GDB) \
45-
$(DEBUGGER_RUSTLIB_ETC_SCRIPTS_LLDB)
46-
DEBUGGER_RUSTLIB_ETC_SCRIPTS_ALL_ABS=$(DEBUGGER_RUSTLIB_ETC_SCRIPTS_GDB_ABS) \
47-
$(DEBUGGER_RUSTLIB_ETC_SCRIPTS_LLDB_ABS)
44+
DEBUGGER_RUSTLIB_ETC_SCRIPTS_ALL=gdb_load_rust_pretty_printers.py \
45+
gdb_rust_pretty_printing.py \
46+
lldb_rust_formatters.py \
47+
debugger_pretty_printers_common.py
48+
DEBUGGER_RUSTLIB_ETC_SCRIPTS_ALL_ABS=\
49+
$(foreach script,$(DEBUGGER_RUSTLIB_ETC_SCRIPTS_ALL), \
50+
$(CFG_SRC_DIR)src/etc/$(script))
4851
DEBUGGER_BIN_SCRIPTS_ALL=$(DEBUGGER_BIN_SCRIPTS_GDB) \
4952
$(DEBUGGER_BIN_SCRIPTS_LLDB)
5053
DEBUGGER_BIN_SCRIPTS_ALL_ABS=$(DEBUGGER_BIN_SCRIPTS_GDB_ABS) \

branches/auto/mk/main.mk

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -390,7 +390,7 @@ endif
390390
# This 'function' will determine which debugger scripts to copy based on a
391391
# target triple. See debuggers.mk for more information.
392392
TRIPLE_TO_DEBUGGER_SCRIPT_SETTING=\
393-
$(if $(findstring windows,$(1)),none,$(if $(findstring darwin,$(1)),lldb,gdb))
393+
$(if $(findstring windows-msvc,$(1)),none,all)
394394

395395
STAGES = 0 1 2 3
396396

branches/auto/mk/platform.mk

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -169,7 +169,7 @@ ifdef CFG_CCACHE_BASEDIR
169169
export CCACHE_BASEDIR
170170
endif
171171

172-
FIND_COMPILER = $(word 1,$(1:ccache=))
172+
FIND_COMPILER = $(strip $(1:ccache=))
173173

174174
define CFG_MAKE_TOOLCHAIN
175175
# Prepend the tools with their prefix if cross compiling
@@ -187,7 +187,7 @@ define CFG_MAKE_TOOLCHAIN
187187
endif
188188
endif
189189

190-
CFG_COMPILE_C_$(1) = '$$(CC_$(1))' \
190+
CFG_COMPILE_C_$(1) = '$$(call FIND_COMPILER,$$(CC_$(1)))' \
191191
$$(CFLAGS) \
192192
$$(CFG_GCCISH_CFLAGS) \
193193
$$(CFG_GCCISH_CFLAGS_$(1)) \
@@ -198,7 +198,7 @@ define CFG_MAKE_TOOLCHAIN
198198
$$(CFG_GCCISH_LINK_FLAGS_$(1)) \
199199
$$(CFG_GCCISH_DEF_FLAG_$(1))$$(3) $$(2) \
200200
$$(call CFG_INSTALL_NAME_$(1),$$(4))
201-
CFG_COMPILE_CXX_$(1) = '$$(CXX_$(1))' \
201+
CFG_COMPILE_CXX_$(1) = '$$(call FIND_COMPILER,$$(CXX_$(1)))' \
202202
$$(CXXFLAGS) \
203203
$$(CFG_GCCISH_CFLAGS) \
204204
$$(CFG_GCCISH_CXXFLAGS) \

branches/auto/mk/tests.mk

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -616,13 +616,12 @@ ifdef CFG_ENABLE_DEBUGINFO_TESTS
616616
CTEST_RUSTC_FLAGS += -g
617617
endif
618618

619-
CTEST_COMMON_ARGS$(1)-T-$(2)-H-$(3) := \
619+
CTEST_COMMON_ARGS$(1)-T-$(2)-H-$(3) = \
620620
--compile-lib-path $$(HLIB$(1)_H_$(3)) \
621621
--run-lib-path $$(TLIB$(1)_T_$(2)_H_$(3)) \
622622
--rustc-path $$(HBIN$(1)_H_$(3))/rustc$$(X_$(3)) \
623623
--rustdoc-path $$(HBIN$(1)_H_$(3))/rustdoc$$(X_$(3)) \
624624
--llvm-filecheck $(CFG_LLVM_INST_DIR_$(CFG_BUILD))/bin/FileCheck \
625-
--aux-base $$(S)src/test/auxiliary/ \
626625
--stage-id stage$(1)-$(2) \
627626
--target $(2) \
628627
--host $(3) \
@@ -636,11 +635,11 @@ CTEST_COMMON_ARGS$(1)-T-$(2)-H-$(3) := \
636635
--host-rustcflags "$(RUSTC_FLAGS_$(3)) $$(CTEST_RUSTC_FLAGS) -L $$(RT_OUTPUT_DIR_$(3))" \
637636
--lldb-python-dir=$(CFG_LLDB_PYTHON_DIR) \
638637
--target-rustcflags "$(RUSTC_FLAGS_$(2)) $$(CTEST_RUSTC_FLAGS) -L $$(RT_OUTPUT_DIR_$(2))" \
639-
--cc '$$(CC_$(3))' \
640-
--cxx '$$(CXX_$(3))' \
641-
--cflags "$$(CFG_GCCISH_CFLAGS_$(3))" \
642-
--llvm-components "$$(LLVM_ALL_COMPONENTS_$(3))" \
643-
--llvm-cxxflags "$$(LLVM_CXXFLAGS_$(3))" \
638+
--cc '$$(call FIND_COMPILER,$$(CC_$(2)))' \
639+
--cxx '$$(call FIND_COMPILER,$$(CXX_$(2)))' \
640+
--cflags "$$(CFG_GCCISH_CFLAGS_$(2))" \
641+
--llvm-components "$$(LLVM_ALL_COMPONENTS_$(2))" \
642+
--llvm-cxxflags "$$(LLVM_CXXFLAGS_$(2))" \
644643
$$(CTEST_TESTARGS)
645644

646645
ifdef CFG_VALGRIND_RPASS
@@ -686,7 +685,7 @@ $(foreach host,$(CFG_HOST), \
686685

687686
define DEF_RUN_COMPILETEST
688687

689-
CTEST_ARGS$(1)-T-$(2)-H-$(3)-$(4) := \
688+
CTEST_ARGS$(1)-T-$(2)-H-$(3)-$(4) = \
690689
$$(CTEST_COMMON_ARGS$(1)-T-$(2)-H-$(3)) \
691690
--src-base $$(S)src/test/$$(CTEST_SRC_BASE_$(4))/ \
692691
--build-base $(3)/test/$$(CTEST_BUILD_BASE_$(4))/ \
@@ -779,7 +778,7 @@ $(foreach host,$(CFG_HOST), \
779778

780779
define DEF_RUN_PRETTY_TEST
781780

782-
PRETTY_ARGS$(1)-T-$(2)-H-$(3)-$(4) := \
781+
PRETTY_ARGS$(1)-T-$(2)-H-$(3)-$(4) = \
783782
$$(CTEST_COMMON_ARGS$(1)-T-$(2)-H-$(3)) \
784783
--src-base $$(S)src/test/$$(PRETTY_DIRNAME_$(4))/ \
785784
--build-base $(3)/test/$$(PRETTY_DIRNAME_$(4))/ \

branches/auto/src/bootstrap/build/check.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,6 @@ pub fn compiletest(build: &Build,
7070
cmd.arg("--rustc-path").arg(build.compiler_path(compiler));
7171
cmd.arg("--rustdoc-path").arg(build.rustdoc(compiler));
7272
cmd.arg("--src-base").arg(build.src.join("src/test").join(suite));
73-
cmd.arg("--aux-base").arg(build.src.join("src/test/auxiliary"));
7473
cmd.arg("--build-base").arg(testdir(build, compiler.host).join(suite));
7574
cmd.arg("--stage-id").arg(format!("stage{}-{}", compiler.stage, target));
7675
cmd.arg("--mode").arg(mode);

branches/auto/src/bootstrap/build/dist.rs

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -217,23 +217,23 @@ pub fn debugger_scripts(build: &Build,
217217
t!(fs::create_dir_all(&dst));
218218
install(&build.src.join("src/etc/").join(file), &dst, 0o644);
219219
};
220-
if host.contains("windows") {
220+
if host.contains("windows-msvc") {
221221
// no debugger scripts
222-
} else if host.contains("darwin") {
223-
// lldb debugger scripts
224-
install(&build.src.join("src/etc/rust-lldb"), &sysroot.join("bin"),
225-
0o755);
226-
227-
cp_debugger_script("lldb_rust_formatters.py");
228-
cp_debugger_script("debugger_pretty_printers_common.py");
229222
} else {
223+
cp_debugger_script("debugger_pretty_printers_common.py");
224+
230225
// gdb debugger scripts
231226
install(&build.src.join("src/etc/rust-gdb"), &sysroot.join("bin"),
232227
0o755);
233228

234229
cp_debugger_script("gdb_load_rust_pretty_printers.py");
235230
cp_debugger_script("gdb_rust_pretty_printing.py");
236-
cp_debugger_script("debugger_pretty_printers_common.py");
231+
232+
// lldb debugger scripts
233+
install(&build.src.join("src/etc/rust-lldb"), &sysroot.join("bin"),
234+
0o755);
235+
236+
cp_debugger_script("lldb_rust_formatters.py");
237237
}
238238
}
239239

branches/auto/src/bootstrap/build/job.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ pub unsafe fn setup() {
5454

5555
// Indicate that when all handles to the job object are gone that all
5656
// process in the object should be killed. Note that this includes our
57-
// entire process tree by default because we've added ourselves and and our
57+
// entire process tree by default because we've added ourselves and our
5858
// children will reside in the job by default.
5959
let mut info = mem::zeroed::<JOBOBJECT_EXTENDED_LIMIT_INFORMATION>();
6060
info.BasicLimitInformation.LimitFlags = JOB_OBJECT_LIMIT_KILL_ON_JOB_CLOSE;

branches/auto/src/doc/book/getting-started.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ we’ll talk about Cargo, Rust’s build system and package manager.
88

99
The first step to using Rust is to install it. Generally speaking, you’ll need
1010
an Internet connection to run the commands in this section, as we’ll be
11-
downloading Rust from the internet.
11+
downloading Rust from the Internet.
1212

1313
We’ll be showing off a number of commands using a terminal, and those lines all
1414
start with `$`. We don't need to type in the `$`s, they are there to indicate
@@ -399,13 +399,13 @@ Let’s convert the Hello World program to Cargo. To Cargo-fy a project, you nee
399399
to do three things:
400400

401401
1. Put your source file in the right directory.
402-
2. Get rid of the old executable (`main.exe` on Windows, `main` everywhere else)
403-
and make a new one.
402+
2. Get rid of the old executable (`main.exe` on Windows, `main` everywhere
403+
else).
404404
3. Make a Cargo configuration file.
405405

406406
Let's get started!
407407

408-
### Creating a new Executable and Source Directory
408+
### Creating a Source Directory and Removing the Old Executable
409409

410410
First, go back to your terminal, move to your *hello_world* directory, and
411411
enter the following commands:

branches/auto/src/doc/reference.md

Lines changed: 26 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -2063,33 +2063,41 @@ arbitrarily complex configurations through nesting.
20632063

20642064
The following configurations must be defined by the implementation:
20652065

2066-
* `debug_assertions` - Enabled by default when compiling without optimizations.
2067-
This can be used to enable extra debugging code in development but not in
2068-
production. For example, it controls the behavior of the standard library's
2069-
`debug_assert!` macro.
2070-
* `target_arch = "..."` - Target CPU architecture, such as `"x86"`, `"x86_64"`
2071-
`"mips"`, `"powerpc"`, `"powerpc64"`, `"arm"`, or `"aarch64"`.
2072-
* `target_endian = "..."` - Endianness of the target CPU, either `"little"` or
2073-
`"big"`.
2074-
* `target_env = ".."` - An option provided by the compiler by default
2075-
describing the runtime environment of the target platform. Some examples of
2076-
this are `musl` for builds targeting the MUSL libc implementation, `msvc` for
2077-
Windows builds targeting MSVC, and `gnu` frequently the rest of the time. This
2078-
option may also be blank on some platforms.
2066+
* `target_arch = "..."` - Target CPU architecture, such as `"x86"`,
2067+
`"x86_64"` `"mips"`, `"powerpc"`, `"powerpc64"`, `"arm"`, or
2068+
`"aarch64"`. This value is closely related to the first element of
2069+
the platform target triple, though it is not identical.
2070+
* `target_os = "..."` - Operating system of the target, examples
2071+
include `"windows"`, `"macos"`, `"ios"`, `"linux"`, `"android"`,
2072+
`"freebsd"`, `"dragonfly"`, `"bitrig"` , `"openbsd"` or
2073+
`"netbsd"`. This value is closely related to the second and third
2074+
element of the platform target triple, though it is not identical.
20792075
* `target_family = "..."` - Operating system family of the target, e. g.
20802076
`"unix"` or `"windows"`. The value of this configuration option is defined
20812077
as a configuration itself, like `unix` or `windows`.
2082-
* `target_os = "..."` - Operating system of the target, examples include
2083-
`"windows"`, `"macos"`, `"ios"`, `"linux"`, `"android"`, `"freebsd"`, `"dragonfly"`,
2084-
`"bitrig"` , `"openbsd"` or `"netbsd"`.
2078+
* `unix` - See `target_family`.
2079+
* `windows` - See `target_family`.
2080+
* `target_env = ".."` - Further disambiguates the target platform with
2081+
information about the ABI/libc. Presently this value is either
2082+
`"gnu"`, `"msvc"`, `"musl"`, or the empty string. For historical
2083+
reasons this value has only been defined as non-empty when needed
2084+
for disambiguation. Thus on many GNU platforms this value will be
2085+
empty. This value is closely related to the fourth element of the
2086+
platform target triple, though it is not identical. For example,
2087+
embedded ABIs such as `gnueabihf` will simply define `target_env` as
2088+
`"gnu"`.
2089+
* `target_endian = "..."` - Endianness of the target CPU, either `"little"` or
2090+
`"big"`.
20852091
* `target_pointer_width = "..."` - Target pointer width in bits. This is set
20862092
to `"32"` for targets with 32-bit pointers, and likewise set to `"64"` for
20872093
64-bit pointers.
20882094
* `target_vendor = "..."` - Vendor of the target, for example `apple`, `pc`, or
20892095
simply `"unknown"`.
20902096
* `test` - Enabled when compiling the test harness (using the `--test` flag).
2091-
* `unix` - See `target_family`.
2092-
* `windows` - See `target_family`.
2097+
* `debug_assertions` - Enabled by default when compiling without optimizations.
2098+
This can be used to enable extra debugging code in development but not in
2099+
production. For example, it controls the behavior of the standard library's
2100+
`debug_assert!` macro.
20932101

20942102
You can also set another attribute based on a `cfg` variable with `cfg_attr`:
20952103

branches/auto/src/libcollections/fmt.rs

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -333,7 +333,7 @@
333333
//! precision := count | '*'
334334
//! type := identifier | ''
335335
//! count := parameter | integer
336-
//! parameter := integer '$'
336+
//! parameter := argument '$'
337337
//! ```
338338
//!
339339
//! # Formatting Parameters
@@ -403,11 +403,12 @@
403403
//! println!("Hello {:5}!", "x");
404404
//! println!("Hello {:1$}!", "x", 5);
405405
//! println!("Hello {1:0$}!", 5, "x");
406+
//! println!("Hello {:width$}!", "x", width = 5);
406407
//! ```
407408
//!
408409
//! Referring to an argument with the dollar syntax does not affect the "next
409-
//! argument" counter, so it's usually a good idea to refer to all arguments by
410-
//! their position explicitly.
410+
//! argument" counter, so it's usually a good idea to refer to arguments by
411+
//! position, or use named arguments.
411412
//!
412413
//! ## Precision
413414
//!
@@ -426,7 +427,7 @@
426427
//!
427428
//! the integer `N` itself is the precision.
428429
//!
429-
//! 2. An integer followed by dollar sign `.N$`:
430+
//! 2. An integer or name followed by dollar sign `.N$`:
430431
//!
431432
//! use format *argument* `N` (which must be a `usize`) as the precision.
432433
//!
@@ -456,6 +457,10 @@
456457
//! // Hello {next arg (x)} is {arg 2 (0.01) with precision
457458
//! // specified in its predecessor (5)}
458459
//! println!("Hello {} is {2:.*}", "x", 5, 0.01);
460+
//!
461+
//! // Hello {next arg (x)} is {arg "number" (0.01) with precision specified
462+
//! // in arg "prec" (5)}
463+
//! println!("Hello {} is {number:.prec$}", "x", prec = 5, number = 0.01);
459464
//! ```
460465
//!
461466
//! All print the same thing:

branches/auto/src/libcollections/slice.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -419,8 +419,8 @@ impl<T> [T] {
419419
///
420420
/// ```rust
421421
/// let v = &[1, 2, 3, 4, 5];
422-
/// for win in v.chunks(2) {
423-
/// println!("{:?}", win);
422+
/// for chunk in v.chunks(2) {
423+
/// println!("{:?}", chunk);
424424
/// }
425425
/// ```
426426
#[stable(feature = "rust1", since = "1.0.0")]

branches/auto/src/libcore/cell.rs

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -232,6 +232,18 @@ impl<T:Copy> Cell<T> {
232232
pub fn as_unsafe_cell(&self) -> &UnsafeCell<T> {
233233
&self.value
234234
}
235+
236+
/// Returns a mutable reference to the underlying data.
237+
///
238+
/// This call borrows `Cell` mutably (at compile-time) which guarantees
239+
/// that we possess the only reference.
240+
#[inline]
241+
#[unstable(feature = "cell_get_mut", issue = "33444")]
242+
pub fn get_mut(&mut self) -> &mut T {
243+
unsafe {
244+
&mut *self.value.get()
245+
}
246+
}
235247
}
236248

237249
#[stable(feature = "rust1", since = "1.0.0")]
@@ -455,6 +467,18 @@ impl<T: ?Sized> RefCell<T> {
455467
pub unsafe fn as_unsafe_cell(&self) -> &UnsafeCell<T> {
456468
&self.value
457469
}
470+
471+
/// Returns a mutable reference to the underlying data.
472+
///
473+
/// This call borrows `RefCell` mutably (at compile-time) so there is no
474+
/// need for dynamic checks.
475+
#[inline]
476+
#[unstable(feature = "cell_get_mut", issue="33444")]
477+
pub fn get_mut(&mut self) -> &mut T {
478+
unsafe {
479+
&mut *self.value.get()
480+
}
481+
}
458482
}
459483

460484
#[stable(feature = "rust1", since = "1.0.0")]

branches/auto/src/libcore/iter/iterator.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -214,7 +214,7 @@ pub trait Iterator {
214214
/// Like most indexing operations, the count starts from zero, so `nth(0)`
215215
/// returns the first value, `nth(1)` the second, and so on.
216216
///
217-
/// `nth()` will return `None` if `n` is larger than the length of the
217+
/// `nth()` will return `None` if `n` is greater than or equal to the length of the
218218
/// iterator.
219219
///
220220
/// # Examples
@@ -237,7 +237,7 @@ pub trait Iterator {
237237
/// assert_eq!(iter.nth(1), None);
238238
/// ```
239239
///
240-
/// Returning `None` if there are less than `n` elements:
240+
/// Returning `None` if there are less than `n + 1` elements:
241241
///
242242
/// ```
243243
/// let a = [1, 2, 3];

0 commit comments

Comments
 (0)