Skip to content

Commit 84f729d

Browse files
committed
Auto merge of #61394 - pietroalbini:rollup-lzugnb4, r=pietroalbini
Rollup of 11 pull requests Successful merges: - #60897 (error: remove StringError from Debug output) - #61304 (Speed up Azure CI installing Windows dependencies) - #61319 (Swap order of `unsafe async fn` to `async unsafe fn`) - #61342 (Set ellipsis_inclusive_range_patterns lint to warn) - #61344 (Add regression test for const generics ICE) - #61359 (Fix links in Deref documentation) - #61363 (Stabilize iter_nth_back feature) - #61369 (Fixed lifetime misspelling) - #61372 (Migrate some books to mdbook version 0.2) - #61374 (Explicitly suggest 'type_ascription' feature) - #61382 (Fixed a typo in core::convert::AsMut) Failed merges: r? @ghost
2 parents 041bec8 + e32386d commit 84f729d

Some content is hidden

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

47 files changed

+227
-124
lines changed

.azure-pipelines/steps/install-clang.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ steps:
2727
# Original downloaded here came from
2828
# http://releases.llvm.org/7.0.0/LLVM-7.0.0-win64.exe
2929
- script: |
30-
powershell -Command "iwr -outf %TEMP%\LLVM-7.0.0-win64.exe https://rust-lang-ci2.s3.amazonaws.com/rust-ci-mirror/LLVM-7.0.0-win64.exe"
30+
powershell -Command "$ProgressPreference = 'SilentlyContinue'; iwr -outf %TEMP%\LLVM-7.0.0-win64.exe https://rust-lang-ci2.s3.amazonaws.com/rust-ci-mirror/LLVM-7.0.0-win64.exe"
3131
set CLANG_DIR=%CD%\citools\clang-rust
3232
%TEMP%\LLVM-7.0.0-win64.exe /S /NCRC /D=%CLANG_DIR%
3333
set RUST_CONFIGURE_ARGS=%RUST_CONFIGURE_ARGS% --set llvm.clang-cl=%CLANG_DIR%\bin\clang-cl.exe

.azure-pipelines/steps/install-sccache.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ steps:
99

1010
- script: |
1111
md sccache
12-
powershell -Command "iwr -outf sccache\sccache.exe https://rust-lang-ci2.s3.amazonaws.com/rust-ci-mirror/2018-04-26-sccache-x86_64-pc-windows-msvc"
12+
powershell -Command "$ProgressPreference = 'SilentlyContinue'; iwr -outf sccache\sccache.exe https://rust-lang-ci2.s3.amazonaws.com/rust-ci-mirror/2018-04-26-sccache-x86_64-pc-windows-msvc"
1313
echo ##vso[task.prependpath]%CD%\sccache
1414
displayName: Install sccache (Windows)
1515
condition: and(succeeded(), eq(variables['Agent.OS'], 'Windows_NT'))

.azure-pipelines/steps/install-windows-build-deps.yml

+3-3
Original file line numberDiff line numberDiff line change
@@ -54,9 +54,9 @@ steps:
5454
# Note that we don't literally overwrite the gdb.exe binary because it appears
5555
# to just use gdborig.exe, so that's the binary we deal with instead.
5656
- script: |
57-
powershell -Command "iwr -outf %MINGW_ARCHIVE% %MINGW_URL%/%MINGW_ARCHIVE%"
57+
powershell -Command "$ProgressPreference = 'SilentlyContinue'; iwr -outf %MINGW_ARCHIVE% %MINGW_URL%/%MINGW_ARCHIVE%"
5858
7z x -y %MINGW_ARCHIVE% > nul
59-
powershell -Command "iwr -outf 2017-04-20-%MSYS_BITS%bit-gdborig.exe %MINGW_URL%/2017-04-20-%MSYS_BITS%bit-gdborig.exe"
59+
powershell -Command "$ProgressPreference = 'SilentlyContinue'; iwr -outf 2017-04-20-%MSYS_BITS%bit-gdborig.exe %MINGW_URL%/2017-04-20-%MSYS_BITS%bit-gdborig.exe"
6060
mv 2017-04-20-%MSYS_BITS%bit-gdborig.exe %MINGW_DIR%\bin\gdborig.exe
6161
echo ##vso[task.prependpath]%CD%\%MINGW_DIR%\bin
6262
condition: and(succeeded(), eq(variables['Agent.OS'], 'Windows_NT'), ne(variables['MINGW_URL'],''))
@@ -81,7 +81,7 @@ steps:
8181
# Note that this is originally from the github releases patch of Ninja
8282
- script: |
8383
md ninja
84-
powershell -Command "iwr -outf 2017-03-15-ninja-win.zip https://rust-lang-ci2.s3.amazonaws.com/rust-ci-mirror/2017-03-15-ninja-win.zip"
84+
powershell -Command "$ProgressPreference = 'SilentlyContinue'; iwr -outf 2017-03-15-ninja-win.zip https://rust-lang-ci2.s3.amazonaws.com/rust-ci-mirror/2017-03-15-ninja-win.zip"
8585
7z x -oninja 2017-03-15-ninja-win.zip
8686
del 2017-03-15-ninja-win.zip
8787
set RUST_CONFIGURE_ARGS=%RUST_CONFIGURE_ARGS% --enable-ninja

src/bootstrap/doc.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -62,11 +62,11 @@ macro_rules! book {
6262
book!(
6363
EditionGuide, "src/doc/edition-guide", "edition-guide", RustbookVersion::MdBook2;
6464
EmbeddedBook, "src/doc/embedded-book", "embedded-book", RustbookVersion::MdBook2;
65-
Nomicon, "src/doc/nomicon", "nomicon", RustbookVersion::MdBook1;
65+
Nomicon, "src/doc/nomicon", "nomicon", RustbookVersion::MdBook2;
6666
Reference, "src/doc/reference", "reference", RustbookVersion::MdBook1;
6767
RustByExample, "src/doc/rust-by-example", "rust-by-example", RustbookVersion::MdBook1;
6868
RustcBook, "src/doc/rustc", "rustc", RustbookVersion::MdBook1;
69-
RustdocBook, "src/doc/rustdoc", "rustdoc", RustbookVersion::MdBook1;
69+
RustdocBook, "src/doc/rustdoc", "rustdoc", RustbookVersion::MdBook2;
7070
);
7171

7272
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
@@ -134,7 +134,7 @@ impl Step for UnstableBook {
134134
target: self.target,
135135
name: INTERNER.intern_str("unstable-book"),
136136
src: builder.md_doc_out(self.target),
137-
version: RustbookVersion::MdBook1,
137+
version: RustbookVersion::MdBook2,
138138
})
139139
}
140140
}

src/doc/rustdoc/src/command-line-arguments.md

+4-4
Original file line numberDiff line numberDiff line change
@@ -178,7 +178,7 @@ $ rustdoc src/lib.rs --passes strip-priv-imports
178178
An argument of "list" will print a list of possible "rustdoc passes", and other
179179
arguments will be the name of which passes to run in addition to the defaults.
180180

181-
For more details on passes, see [the chapter on them](passes.html).
181+
For more details on passes, see [the chapter on them](passes.md).
182182

183183
See also `--no-defaults`.
184184

@@ -194,7 +194,7 @@ By default, `rustdoc` will run several passes over your code. This
194194
removes those defaults, allowing you to use `--passes` to specify
195195
exactly which passes you want.
196196

197-
For more details on passes, see [the chapter on them](passes.html).
197+
For more details on passes, see [the chapter on them](passes.md).
198198

199199
See also `--passes`.
200200

@@ -207,7 +207,7 @@ $ rustdoc src/lib.rs --test
207207
```
208208

209209
This flag will run your code examples as tests. For more, see [the chapter
210-
on documentation tests](documentation-tests.html).
210+
on documentation tests](documentation-tests.md).
211211

212212
See also `--test-args`.
213213

@@ -220,7 +220,7 @@ $ rustdoc src/lib.rs --test --test-args ignored
220220
```
221221

222222
This flag will pass options to the test runner when running documentation tests.
223-
For more, see [the chapter on documentation tests](documentation-tests.html).
223+
For more, see [the chapter on documentation tests](documentation-tests.md).
224224

225225
See also `--test`.
226226

src/doc/rustdoc/src/passes.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@ Rustdoc has a concept called "passes". These are transformations that
55

66
In addition to the passes below, check out the docs for these flags:
77

8-
* [`--passes`](command-line-arguments.html#a--passes-add-more-rustdoc-passes)
9-
* [`--no-defaults`](command-line-arguments.html#a--no-defaults-dont-run-default-passes)
8+
* [`--passes`](command-line-arguments.md#--passes-add-more-rustdoc-passes)
9+
* [`--no-defaults`](command-line-arguments.md#--no-defaults-dont-run-default-passes)
1010

1111
## Default passes
1212

src/doc/unstable-book/src/language-features/asm.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -190,4 +190,4 @@ constraints, etc.
190190
[llvm-docs]: http://llvm.org/docs/LangRef.html#inline-assembler-expressions
191191

192192
If you need more power and don't mind losing some of the niceties of
193-
`asm!`, check out [global_asm](language-features/global-asm.html).
193+
`asm!`, check out [global_asm](global-asm.md).

src/doc/unstable-book/src/language-features/box-patterns.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ The tracking issue for this feature is: [#29641]
44

55
[#29641]: https://github.com/rust-lang/rust/issues/29641
66

7-
See also [`box_syntax`](language-features/box-syntax.html)
7+
See also [`box_syntax`](box-syntax.md)
88

99
------------------------
1010

src/doc/unstable-book/src/language-features/box-syntax.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ The tracking issue for this feature is: [#49733]
44

55
[#49733]: https://github.com/rust-lang/rust/issues/49733
66

7-
See also [`box_patterns`](language-features/box-patterns.html)
7+
See also [`box_patterns`](box-patterns.md)
88

99
------------------------
1010

src/doc/unstable-book/src/language-features/global-asm.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -75,4 +75,4 @@ usages and placed the larger, single usage in the crate root.
7575
If you don't need quite as much power and flexibility as
7676
`global_asm!` provides, and you don't mind restricting your inline
7777
assembly to `fn` bodies only, you might try the
78-
[asm](language-features/asm.html) feature instead.
78+
[asm](asm.md) feature instead.

src/doc/unstable-book/src/language-features/lang-items.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -192,7 +192,7 @@ such as "```undefined reference to `__rust_probestack'```". Using this crate
192192
also requires enabling the library feature `compiler_builtins_lib`. You can read
193193
more about this [here][compiler-builtins-lib].
194194

195-
[compiler-builtins-lib]: library-features/compiler-builtins-lib.html
195+
[compiler-builtins-lib]: ../library-features/compiler-builtins-lib.md
196196

197197
## More about the language items
198198

src/doc/unstable-book/src/language-features/non-ascii-idents.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -45,4 +45,4 @@ that does _not_ occur in the set of [strict keywords].
4545
4646
[`XID_start`]: http://unicode.org/cldr/utility/list-unicodeset.jsp?a=%5B%3AXID_Start%3A%5D&abb=on&g=&i=
4747
[`XID_continue`]: http://unicode.org/cldr/utility/list-unicodeset.jsp?a=%5B%3AXID_Continue%3A%5D&abb=on&g=&i=
48-
[strict keywords]: ../reference/keywords.html#strict-keywords
48+
[strict keywords]: ../../reference/keywords.md#strict-keywords

src/doc/unstable-book/src/language-features/plugin-registrar.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,6 @@ This feature is part of "compiler plugins." It will often be used with the
88
[`plugin`] and `rustc_private` features as well. For more details, see
99
their docs.
1010

11-
[`plugin`]: language-features/plugin.html
11+
[`plugin`]: plugin.md
1212

1313
------------------------

src/doc/unstable-book/src/language-features/plugin.md

+5-5
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ The tracking issue for this feature is: [#29597]
88
This feature is part of "compiler plugins." It will often be used with the
99
[`plugin_registrar`] and `rustc_private` features.
1010

11-
[`plugin_registrar`]: language-features/plugin-registrar.html
11+
[`plugin_registrar`]: plugin-registrar.md
1212

1313
------------------------
1414

@@ -39,7 +39,7 @@ of a library.
3939

4040
Plugins can extend Rust's syntax in various ways. One kind of syntax extension
4141
is the procedural macro. These are invoked the same way as [ordinary
42-
macros](../book/macros.html), but the expansion is performed by arbitrary Rust
42+
macros](../../book/macros.md), but the expansion is performed by arbitrary Rust
4343
code that manipulates syntax trees at
4444
compile time.
4545

@@ -130,7 +130,7 @@ The advantages over a simple `fn(&str) -> u32` are:
130130
a way to define new literal syntax for any data type.
131131

132132
In addition to procedural macros, you can define new
133-
[`derive`](../reference/attributes/derive.html)-like attributes and other kinds
133+
[`derive`](../../reference/attributes/derive.md)-like attributes and other kinds
134134
of extensions. See `Registry::register_syntax_extension` and the
135135
`SyntaxExtension` enum. For a more involved macro example, see
136136
[`regex_macros`](https://github.com/rust-lang/regex/blob/master/regex_macros/src/lib.rs).
@@ -174,7 +174,7 @@ quasiquote as an ordinary plugin library.
174174
# Lint plugins
175175

176176
Plugins can extend [Rust's lint
177-
infrastructure](../reference/attributes/diagnostics.html#lint-check-attributes) with
177+
infrastructure](../../reference/attributes/diagnostics.md#lint-check-attributes) with
178178
additional checks for code style, safety, etc. Now let's write a plugin
179179
[`lint_plugin_test.rs`](https://github.com/rust-lang/rust/blob/master/src/test/ui-fulldeps/auxiliary/lint_plugin_test.rs)
180180
that warns about any item named `lintme`.
@@ -253,7 +253,7 @@ mostly use the same infrastructure as lint plugins, and provide examples of how
253253
to access type information.
254254

255255
Lints defined by plugins are controlled by the usual [attributes and compiler
256-
flags](../reference/attributes/diagnostics.html#lint-check-attributes), e.g.
256+
flags](../../reference/attributes/diagnostics.md#lint-check-attributes), e.g.
257257
`#[allow(test_lint)]` or `-A test-lint`. These identifiers are derived from the
258258
first argument to `declare_lint!`, with appropriate case and punctuation
259259
conversion.

src/doc/unstable-book/src/language-features/unboxed-closures.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
The tracking issue for this feature is [#29625]
44

5-
See Also: [`fn_traits`](library-features/fn-traits.html)
5+
See Also: [`fn_traits`](../library-features/fn-traits.md)
66

77
[#29625]: https://github.com/rust-lang/rust/issues/29625
88

src/doc/unstable-book/src/library-features/fn-traits.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
The tracking issue for this feature is [#29625]
44

5-
See Also: [`unboxed_closures`](language-features/unboxed-closures.html)
5+
See Also: [`unboxed_closures`](../language-features/unboxed-closures.md)
66

77
[#29625]: https://github.com/rust-lang/rust/issues/29625
88

src/doc/unstable-book/src/library-features/fnbox.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,6 @@ impl<A, F> Fn for &F where F: Fn<A> + ?Sized {}
2727

2828
Before the introduction of [`unsized_locals`][unsized_locals], we had been unable to provide the former impls. That means, unlike `&dyn Fn()` or `&mut dyn FnMut()` we could not use `Box<dyn FnOnce()>` at that time.
2929

30-
[unsized_locals]: language-features/unsized-locals.html
30+
[unsized_locals]: ../language-features/unsized-locals.md
3131

3232
`FnBox()` is an alternative approach to `Box<dyn FnBox()>` is delegated to `FnBox::call_box` which doesn't need unsized locals. As we now have `Box<dyn FnOnce()>` working, the `fnbox` feature is going to be removed.

src/doc/unstable-book/src/the-unstable-book.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ fn main() {
1414

1515
The `box_syntax` feature [has a chapter][box] describing how to use it.
1616

17-
[box]: language-features/box-syntax.html
17+
[box]: language-features/box-syntax.md
1818

1919
Because this documentation relates to unstable features, we make no guarantees
2020
that what is contained here is accurate or up to date. It's developed on a

src/liballoc/lib.rs

-1
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,6 @@
112112
#![feature(maybe_uninit_extra, maybe_uninit_slice, maybe_uninit_array)]
113113
#![feature(alloc_layout_extra)]
114114
#![feature(try_trait)]
115-
#![feature(iter_nth_back)]
116115

117116
// Allow testing this library
118117

src/libcore/convert.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -177,8 +177,8 @@ pub trait AsRef<T: ?Sized> {
177177
///
178178
/// Using `AsMut` as trait bound for a generic function we can accept all mutable references
179179
/// that can be converted to type `&mut T`. Because [`Box<T>`] implements `AsMut<T>` we can
180-
/// write a function `add_one`that takes all arguments that can be converted to `&mut u64`.
181-
/// Because [`Box<T>`] implements `AsMut<T>` `add_one` accepts arguments of type
180+
/// write a function `add_one` that takes all arguments that can be converted to `&mut u64`.
181+
/// Because [`Box<T>`] implements `AsMut<T>`, `add_one` accepts arguments of type
182182
/// `&mut Box<u64>` as well:
183183
///
184184
/// ```

src/libcore/iter/traits/double_ended.rs

+1-4
Original file line numberDiff line numberDiff line change
@@ -88,15 +88,13 @@ pub trait DoubleEndedIterator: Iterator {
8888
/// Basic usage:
8989
///
9090
/// ```
91-
/// #![feature(iter_nth_back)]
9291
/// let a = [1, 2, 3];
9392
/// assert_eq!(a.iter().nth_back(2), Some(&1));
9493
/// ```
9594
///
9695
/// Calling `nth_back()` multiple times doesn't rewind the iterator:
9796
///
9897
/// ```
99-
/// #![feature(iter_nth_back)]
10098
/// let a = [1, 2, 3];
10199
///
102100
/// let mut iter = a.iter();
@@ -108,12 +106,11 @@ pub trait DoubleEndedIterator: Iterator {
108106
/// Returning `None` if there are less than `n + 1` elements:
109107
///
110108
/// ```
111-
/// #![feature(iter_nth_back)]
112109
/// let a = [1, 2, 3];
113110
/// assert_eq!(a.iter().nth_back(10), None);
114111
/// ```
115112
#[inline]
116-
#[unstable(feature = "iter_nth_back", issue = "56995")]
113+
#[stable(feature = "iter_nth_back", since = "1.37.0")]
117114
fn nth_back(&mut self, mut n: usize) -> Option<Self::Item> {
118115
for x in self.rev() {
119116
if n == 0 { return Some(x) }

src/libcore/ops/deref.rs

+6-6
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,9 @@
2323
/// * Values of type `&T` are coerced to values of type `&U`
2424
/// * `T` implicitly implements all the (immutable) methods of the type `U`.
2525
///
26-
/// For more details, visit [the chapter in *The Rust Programming Language*]
27-
/// [book] as well as the reference sections on [the dereference operator]
28-
/// [ref-deref-op], [method resolution] and [type coercions].
26+
/// For more details, visit [the chapter in *The Rust Programming Language*][book]
27+
/// as well as the reference sections on [the dereference operator][ref-deref-op],
28+
/// [method resolution] and [type coercions].
2929
///
3030
/// [book]: ../../book/ch15-02-deref.html
3131
/// [`DerefMut`]: trait.DerefMut.html
@@ -113,9 +113,9 @@ impl<T: ?Sized> Deref for &mut T {
113113
/// * Values of type `&mut T` are coerced to values of type `&mut U`
114114
/// * `T` implicitly implements all the (mutable) methods of the type `U`.
115115
///
116-
/// For more details, visit [the chapter in *The Rust Programming Language*]
117-
/// [book] as well as the reference sections on [the dereference operator]
118-
/// [ref-deref-op], [method resolution] and [type coercions].
116+
/// For more details, visit [the chapter in *The Rust Programming Language*][book]
117+
/// as well as the reference sections on [the dereference operator][ref-deref-op],
118+
/// [method resolution] and [type coercions].
119119
///
120120
/// [book]: ../../book/ch15-02-deref.html
121121
/// [`Deref`]: trait.Deref.html

src/libcore/tests/lib.rs

-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010
#![feature(fmt_internals)]
1111
#![feature(hashmap_internals)]
1212
#![feature(is_sorted)]
13-
#![feature(iter_nth_back)]
1413
#![feature(iter_once_with)]
1514
#![feature(pattern)]
1615
#![feature(range_is_empty)]

src/librustc_codegen_ssa/README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ While the LLVM-specific code will be left in `rustc_codegen_llvm`, all the new t
2626

2727
@irinagpopa started to parametrize the types of `rustc_codegen_llvm` by a generic `Value` type, implemented in LLVM by a reference `&'ll Value`. This work has been extended to all structures inside the `mir` folder and elsewhere, as well as for LLVM's `BasicBlock` and `Type` types.
2828

29-
The two most important structures for the LLVM codegen are `CodegenCx` and `Builder`. They are parametrized by multiple liftime parameters and the type for `Value`.
29+
The two most important structures for the LLVM codegen are `CodegenCx` and `Builder`. They are parametrized by multiple lifetime parameters and the type for `Value`.
3030

3131
```rust
3232
struct CodegenCx<'ll, 'tcx: 'll> {

src/librustc_lint/builtin.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1275,7 +1275,7 @@ declare_lint_pass!(
12751275

12761276
declare_lint! {
12771277
pub ELLIPSIS_INCLUSIVE_RANGE_PATTERNS,
1278-
Allow,
1278+
Warn,
12791279
"`...` range patterns are deprecated"
12801280
}
12811281

src/libstd/error.rs

+7-1
Original file line numberDiff line numberDiff line change
@@ -314,7 +314,6 @@ impl From<String> for Box<dyn Error + Send + Sync> {
314314
/// mem::size_of::<Box<dyn Error + Send + Sync>>() == mem::size_of_val(&a_boxed_error))
315315
/// ```
316316
fn from(err: String) -> Box<dyn Error + Send + Sync> {
317-
#[derive(Debug)]
318317
struct StringError(String);
319318

320319
impl Error for StringError {
@@ -327,6 +326,13 @@ impl From<String> for Box<dyn Error + Send + Sync> {
327326
}
328327
}
329328

329+
// Purposefully skip printing "StringError(..)"
330+
impl Debug for StringError {
331+
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
332+
Debug::fmt(&self.0, f)
333+
}
334+
}
335+
330336
Box::new(StringError(err))
331337
}
332338
}

src/libsyntax/parse/diagnostics.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -858,8 +858,8 @@ impl<'a> Parser<'a> {
858858
Applicability::MaybeIncorrect,
859859
);
860860
} else {
861-
err.note("type ascription is a nightly-only feature that lets \
862-
you annotate an expression with a type: `<expr>: <type>`")
861+
err.note("#![feature(type_ascription)] lets you annotate an \
862+
expression with a type: `<expr>: <type>`")
863863
.span_note(
864864
lhs_span,
865865
"this expression expects an ascribed type after the colon",

0 commit comments

Comments
 (0)