Auto merge of #106054 - matthiaskrgr:rollup-38epsfh, r=matthiaskrgr
Rollup of 6 pull requests Successful merges: - #105567 (KCFI test: Also support LLVM 16 output) - #105847 (Ensure param-env is const before calling `eval_to_valtree`) - #105983 (Add a missing early return in drop tracking `handle_uninhabited_return`) - #106027 (rustdoc: simplify CSS and DOM for more-scraped-examples) - #106035 (Migrate search tab title color to CSS variable) - #106037 (Add regression test for #94293) Failed merges: r? `@ghost` `@rustbot` modify labels: rollup
This commit is contained in:
commit
8a97b4812a
15 changed files with 212 additions and 40 deletions
|
@ -577,8 +577,10 @@ impl<'mir, 'tcx: 'mir, M: Machine<'mir, 'tcx>> InterpCx<'mir, 'tcx, M> {
|
||||||
ty::ConstKind::Unevaluated(uv) => {
|
ty::ConstKind::Unevaluated(uv) => {
|
||||||
let instance = self.resolve(uv.def, uv.substs)?;
|
let instance = self.resolve(uv.def, uv.substs)?;
|
||||||
let cid = GlobalId { instance, promoted: None };
|
let cid = GlobalId { instance, promoted: None };
|
||||||
self.ctfe_query(span, |tcx| tcx.eval_to_valtree(self.param_env.and(cid)))?
|
self.ctfe_query(span, |tcx| {
|
||||||
.unwrap_or_else(|| bug!("unable to create ValTree for {uv:?}"))
|
tcx.eval_to_valtree(self.param_env.with_const().and(cid))
|
||||||
|
})?
|
||||||
|
.unwrap_or_else(|| bug!("unable to create ValTree for {uv:?}"))
|
||||||
}
|
}
|
||||||
ty::ConstKind::Bound(..) | ty::ConstKind::Infer(..) => {
|
ty::ConstKind::Bound(..) | ty::ConstKind::Infer(..) => {
|
||||||
span_bug!(self.cur_span(), "unexpected ConstKind in ctfe: {val:?}")
|
span_bug!(self.cur_span(), "unexpected ConstKind in ctfe: {val:?}")
|
||||||
|
|
|
@ -233,6 +233,7 @@ impl<'a, 'tcx> DropRangeVisitor<'a, 'tcx> {
|
||||||
self.tcx()
|
self.tcx()
|
||||||
.sess
|
.sess
|
||||||
.delay_span_bug(expr.span, format!("could not resolve infer vars in `{ty}`"));
|
.delay_span_bug(expr.span, format!("could not resolve infer vars in `{ty}`"));
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
let ty = self.tcx().erase_regions(ty);
|
let ty = self.tcx().erase_regions(ty);
|
||||||
let m = self.tcx().parent_module(expr.hir_id).to_def_id();
|
let m = self.tcx().parent_module(expr.hir_id).to_def_id();
|
||||||
|
|
|
@ -3005,8 +3005,7 @@ fn render_call_locations(w: &mut Buffer, cx: &mut Context<'_>, item: &clean::Ite
|
||||||
</summary>\
|
</summary>\
|
||||||
<div class=\"hide-more\">Hide additional examples</div>\
|
<div class=\"hide-more\">Hide additional examples</div>\
|
||||||
<div class=\"more-scraped-examples\">\
|
<div class=\"more-scraped-examples\">\
|
||||||
<div class=\"toggle-line\"><div class=\"toggle-line-inner\"></div></div>\
|
<div class=\"toggle-line\"><div class=\"toggle-line-inner\"></div></div>"
|
||||||
<div class=\"more-scraped-examples-inner\">"
|
|
||||||
);
|
);
|
||||||
|
|
||||||
// Only generate inline code for MAX_FULL_EXAMPLES number of examples. Otherwise we could
|
// Only generate inline code for MAX_FULL_EXAMPLES number of examples. Otherwise we could
|
||||||
|
@ -3030,7 +3029,7 @@ fn render_call_locations(w: &mut Buffer, cx: &mut Context<'_>, item: &clean::Ite
|
||||||
write!(w, "</ul></div>");
|
write!(w, "</ul></div>");
|
||||||
}
|
}
|
||||||
|
|
||||||
write!(w, "</div></div></details>");
|
write!(w, "</div></details>");
|
||||||
}
|
}
|
||||||
|
|
||||||
write!(w, "</div>");
|
write!(w, "</div>");
|
||||||
|
|
|
@ -1281,6 +1281,7 @@ a.test-arrow:hover {
|
||||||
#titles > button > div.count {
|
#titles > button > div.count {
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
font-size: 1rem;
|
font-size: 1rem;
|
||||||
|
color: var(--search-tab-title-count-color);
|
||||||
}
|
}
|
||||||
|
|
||||||
#src-sidebar-toggle {
|
#src-sidebar-toggle {
|
||||||
|
@ -1991,20 +1992,15 @@ in storage.js
|
||||||
}
|
}
|
||||||
|
|
||||||
.more-scraped-examples {
|
.more-scraped-examples {
|
||||||
margin-left: 5px;
|
margin-left: 25px;
|
||||||
display: flex;
|
position: relative;
|
||||||
flex-direction: row;
|
|
||||||
}
|
|
||||||
|
|
||||||
.more-scraped-examples-inner {
|
|
||||||
/* 20px is width of toggle-line + toggle-line-inner */
|
|
||||||
width: calc(100% - 20px);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.toggle-line {
|
.toggle-line {
|
||||||
align-self: stretch;
|
position: absolute;
|
||||||
margin-right: 10px;
|
top: 5px;
|
||||||
margin-top: 5px;
|
bottom: 0;
|
||||||
|
right: calc(100% + 10px);
|
||||||
padding: 0 4px;
|
padding: 0 4px;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
|
|
|
@ -45,6 +45,7 @@ Original by Dempfi (https://github.com/dempfi/ayu)
|
||||||
--search-color: #fff;
|
--search-color: #fff;
|
||||||
--search-results-alias-color: #c5c5c5;
|
--search-results-alias-color: #c5c5c5;
|
||||||
--search-results-grey-color: #999;
|
--search-results-grey-color: #999;
|
||||||
|
--search-tab-title-count-color: #888;
|
||||||
--stab-background-color: #314559;
|
--stab-background-color: #314559;
|
||||||
--stab-code-color: #e6e1cf;
|
--stab-code-color: #e6e1cf;
|
||||||
--code-highlight-kw-color: #ff7733;
|
--code-highlight-kw-color: #ff7733;
|
||||||
|
@ -175,10 +176,6 @@ pre, .rustdoc.source .example-wrap {
|
||||||
border-bottom: 1px solid rgba(242, 151, 24, 0.3);
|
border-bottom: 1px solid rgba(242, 151, 24, 0.3);
|
||||||
}
|
}
|
||||||
|
|
||||||
#titles > button > div.count {
|
|
||||||
color: #888;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* rules that this theme does not need to set, here to satisfy the rule checker */
|
/* rules that this theme does not need to set, here to satisfy the rule checker */
|
||||||
/* note that a lot of these are partially set in some way (meaning they are set
|
/* note that a lot of these are partially set in some way (meaning they are set
|
||||||
individually rather than as a group) */
|
individually rather than as a group) */
|
||||||
|
|
|
@ -40,6 +40,7 @@
|
||||||
--search-color: #111;
|
--search-color: #111;
|
||||||
--search-results-alias-color: #fff;
|
--search-results-alias-color: #fff;
|
||||||
--search-results-grey-color: #ccc;
|
--search-results-grey-color: #ccc;
|
||||||
|
--search-tab-title-count-color: #888;
|
||||||
--stab-background-color: #314559;
|
--stab-background-color: #314559;
|
||||||
--stab-code-color: #e6e1cf;
|
--stab-code-color: #e6e1cf;
|
||||||
--code-highlight-kw-color: #ab8ac1;
|
--code-highlight-kw-color: #ab8ac1;
|
||||||
|
@ -96,10 +97,6 @@
|
||||||
background-color: #353535;
|
background-color: #353535;
|
||||||
}
|
}
|
||||||
|
|
||||||
#titles > button > div.count {
|
|
||||||
color: #888;
|
|
||||||
}
|
|
||||||
|
|
||||||
.scraped-example-list .scrape-help {
|
.scraped-example-list .scrape-help {
|
||||||
border-color: #aaa;
|
border-color: #aaa;
|
||||||
color: #eee;
|
color: #eee;
|
||||||
|
|
|
@ -40,6 +40,7 @@
|
||||||
--search-color: #000;
|
--search-color: #000;
|
||||||
--search-results-alias-color: #000;
|
--search-results-alias-color: #000;
|
||||||
--search-results-grey-color: #999;
|
--search-results-grey-color: #999;
|
||||||
|
--search-tab-title-count-color: #888;
|
||||||
--stab-background-color: #fff5d6;
|
--stab-background-color: #fff5d6;
|
||||||
--stab-code-color: #000;
|
--stab-code-color: #000;
|
||||||
--code-highlight-kw-color: #8959a8;
|
--code-highlight-kw-color: #8959a8;
|
||||||
|
@ -93,10 +94,6 @@
|
||||||
border-top-color: #0089ff;
|
border-top-color: #0089ff;
|
||||||
}
|
}
|
||||||
|
|
||||||
#titles > button > div.count {
|
|
||||||
color: #888;
|
|
||||||
}
|
|
||||||
|
|
||||||
.scraped-example-list .scrape-help {
|
.scraped-example-list .scrape-help {
|
||||||
border-color: #555;
|
border-color: #555;
|
||||||
color: #333;
|
color: #333;
|
||||||
|
|
|
@ -20,24 +20,21 @@ impl Copy for i32 {}
|
||||||
|
|
||||||
pub fn foo(f: fn(i32) -> i32, arg: i32) -> i32 {
|
pub fn foo(f: fn(i32) -> i32, arg: i32) -> i32 {
|
||||||
// CHECK-LABEL: define{{.*}}foo
|
// CHECK-LABEL: define{{.*}}foo
|
||||||
// FIXME(rcvalle): Change <unknown kind #36> to !kcfi_type when Rust is updated to LLVM 16
|
// CHECK-SAME: {{.*}}!{{<unknown kind #36>|kcfi_type}} ![[TYPE1:[0-9]+]]
|
||||||
// CHECK-SAME: {{.*}}!<unknown kind #36> ![[TYPE1:[0-9]+]]
|
|
||||||
// CHECK: call i32 %f(i32 %arg){{.*}}[ "kcfi"(i32 -1666898348) ]
|
// CHECK: call i32 %f(i32 %arg){{.*}}[ "kcfi"(i32 -1666898348) ]
|
||||||
f(arg)
|
f(arg)
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn bar(f: fn(i32, i32) -> i32, arg1: i32, arg2: i32) -> i32 {
|
pub fn bar(f: fn(i32, i32) -> i32, arg1: i32, arg2: i32) -> i32 {
|
||||||
// CHECK-LABEL: define{{.*}}bar
|
// CHECK-LABEL: define{{.*}}bar
|
||||||
// FIXME(rcvalle): Change <unknown kind #36> to !kcfi_type when Rust is updated to LLVM 16
|
// CHECK-SAME: {{.*}}!{{<unknown kind #36>|kcfi_type}} ![[TYPE2:[0-9]+]]
|
||||||
// CHECK-SAME: {{.*}}!<unknown kind #36> ![[TYPE2:[0-9]+]]
|
|
||||||
// CHECK: call i32 %f(i32 %arg1, i32 %arg2){{.*}}[ "kcfi"(i32 -1789026986) ]
|
// CHECK: call i32 %f(i32 %arg1, i32 %arg2){{.*}}[ "kcfi"(i32 -1789026986) ]
|
||||||
f(arg1, arg2)
|
f(arg1, arg2)
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn baz(f: fn(i32, i32, i32) -> i32, arg1: i32, arg2: i32, arg3: i32) -> i32 {
|
pub fn baz(f: fn(i32, i32, i32) -> i32, arg1: i32, arg2: i32, arg3: i32) -> i32 {
|
||||||
// CHECK-LABEL: define{{.*}}baz
|
// CHECK-LABEL: define{{.*}}baz
|
||||||
// FIXME(rcvalle): Change <unknown kind #36> to !kcfi_type when Rust is updated to LLVM 16
|
// CHECK-SAME: {{.*}}!{{<unknown kind #36>|kcfi_type}} ![[TYPE3:[0-9]+]]
|
||||||
// CHECK-SAME: {{.*}}!<unknown kind #36> ![[TYPE3:[0-9]+]]
|
|
||||||
// CHECK: call i32 %f(i32 %arg1, i32 %arg2, i32 %arg3){{.*}}[ "kcfi"(i32 1248878270) ]
|
// CHECK: call i32 %f(i32 %arg1, i32 %arg2, i32 %arg3){{.*}}[ "kcfi"(i32 1248878270) ]
|
||||||
f(arg1, arg2, arg3)
|
f(arg1, arg2, arg3)
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,13 +10,8 @@ assert-property-false: (
|
||||||
// Check that examples with very long lines have the same width as ones that don't.
|
// Check that examples with very long lines have the same width as ones that don't.
|
||||||
store-property: (
|
store-property: (
|
||||||
clientWidth,
|
clientWidth,
|
||||||
".more-scraped-examples .scraped-example:nth-child(1) .code-wrapper .src-line-numbers",
|
|
||||||
"clientWidth"
|
|
||||||
)
|
|
||||||
|
|
||||||
assert-property: (
|
|
||||||
".more-scraped-examples .scraped-example:nth-child(2) .code-wrapper .src-line-numbers",
|
".more-scraped-examples .scraped-example:nth-child(2) .code-wrapper .src-line-numbers",
|
||||||
{"clientWidth": |clientWidth|}
|
"clientWidth"
|
||||||
)
|
)
|
||||||
|
|
||||||
assert-property: (
|
assert-property: (
|
||||||
|
@ -33,3 +28,8 @@ assert-property: (
|
||||||
".more-scraped-examples .scraped-example:nth-child(5) .code-wrapper .src-line-numbers",
|
".more-scraped-examples .scraped-example:nth-child(5) .code-wrapper .src-line-numbers",
|
||||||
{"clientWidth": |clientWidth|}
|
{"clientWidth": |clientWidth|}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
assert-property: (
|
||||||
|
".more-scraped-examples .scraped-example:nth-child(6) .code-wrapper .src-line-numbers",
|
||||||
|
{"clientWidth": |clientWidth|}
|
||||||
|
)
|
||||||
|
|
|
@ -66,6 +66,11 @@ reload:
|
||||||
|
|
||||||
// Waiting for the search results to appear...
|
// Waiting for the search results to appear...
|
||||||
wait-for: "#titles"
|
wait-for: "#titles"
|
||||||
|
assert-css: (
|
||||||
|
"#titles > button > div.count",
|
||||||
|
{"color": "rgb(136, 136, 136)"},
|
||||||
|
ALL,
|
||||||
|
)
|
||||||
assert-css: (
|
assert-css: (
|
||||||
"//*[@class='desc'][text()='Just a normal struct.']",
|
"//*[@class='desc'][text()='Just a normal struct.']",
|
||||||
{"color": "rgb(197, 197, 197)"},
|
{"color": "rgb(197, 197, 197)"},
|
||||||
|
@ -178,6 +183,11 @@ reload:
|
||||||
|
|
||||||
// Waiting for the search results to appear...
|
// Waiting for the search results to appear...
|
||||||
wait-for: "#titles"
|
wait-for: "#titles"
|
||||||
|
assert-css: (
|
||||||
|
"#titles > button > div.count",
|
||||||
|
{"color": "rgb(136, 136, 136)"},
|
||||||
|
ALL,
|
||||||
|
)
|
||||||
assert-css: (
|
assert-css: (
|
||||||
"//*[@class='desc'][text()='Just a normal struct.']",
|
"//*[@class='desc'][text()='Just a normal struct.']",
|
||||||
{"color": "rgb(221, 221, 221)"},
|
{"color": "rgb(221, 221, 221)"},
|
||||||
|
@ -275,6 +285,11 @@ reload:
|
||||||
|
|
||||||
// Waiting for the search results to appear...
|
// Waiting for the search results to appear...
|
||||||
wait-for: "#titles"
|
wait-for: "#titles"
|
||||||
|
assert-css: (
|
||||||
|
"#titles > button > div.count",
|
||||||
|
{"color": "rgb(136, 136, 136)"},
|
||||||
|
ALL,
|
||||||
|
)
|
||||||
assert-css: (
|
assert-css: (
|
||||||
"//*[@class='desc'][text()='Just a normal struct.']",
|
"//*[@class='desc'][text()='Just a normal struct.']",
|
||||||
{"color": "rgb(0, 0, 0)"},
|
{"color": "rgb(0, 0, 0)"},
|
||||||
|
|
|
@ -0,0 +1,31 @@
|
||||||
|
// check-pass
|
||||||
|
|
||||||
|
#![feature(generic_const_exprs)]
|
||||||
|
#![allow(incomplete_features)]
|
||||||
|
#![deny(const_evaluatable_unchecked)]
|
||||||
|
|
||||||
|
pub struct If<const CONDITION: bool>;
|
||||||
|
pub trait True {}
|
||||||
|
impl True for If<true> {}
|
||||||
|
|
||||||
|
pub struct FixedI8<const FRAC: u32> {
|
||||||
|
pub bits: i8,
|
||||||
|
}
|
||||||
|
|
||||||
|
impl<const FRAC_LHS: u32, const FRAC_RHS: u32> PartialEq<FixedI8<FRAC_RHS>> for FixedI8<FRAC_LHS>
|
||||||
|
where
|
||||||
|
If<{ FRAC_RHS <= 8 }>: True,
|
||||||
|
{
|
||||||
|
fn eq(&self, _rhs: &FixedI8<FRAC_RHS>) -> bool {
|
||||||
|
unimplemented!()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl<const FRAC: u32> PartialEq<i8> for FixedI8<FRAC> {
|
||||||
|
fn eq(&self, rhs: &i8) -> bool {
|
||||||
|
let rhs_as_fixed = FixedI8::<0> { bits: *rhs };
|
||||||
|
PartialEq::eq(self, &rhs_as_fixed)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fn main() {}
|
36
src/test/ui/consts/issue-104396.rs
Normal file
36
src/test/ui/consts/issue-104396.rs
Normal file
|
@ -0,0 +1,36 @@
|
||||||
|
// compile-flags: -Zmir-opt-level=3
|
||||||
|
// check-pass
|
||||||
|
|
||||||
|
#![feature(generic_const_exprs)]
|
||||||
|
//~^ WARN the feature `generic_const_exprs` is incomplete
|
||||||
|
|
||||||
|
#[inline(always)]
|
||||||
|
fn from_fn_1<const N: usize, F: FnMut(usize) -> f32>(mut f: F) -> [f32; N] {
|
||||||
|
let mut result = [0.0; N];
|
||||||
|
let mut i = 0;
|
||||||
|
while i < N {
|
||||||
|
result[i] = f(i);
|
||||||
|
i += 1;
|
||||||
|
}
|
||||||
|
result
|
||||||
|
}
|
||||||
|
|
||||||
|
pub struct TestArray<const N: usize>
|
||||||
|
where
|
||||||
|
[(); N / 2]:,
|
||||||
|
{
|
||||||
|
array: [f32; N / 2],
|
||||||
|
}
|
||||||
|
|
||||||
|
impl<const N: usize> TestArray<N>
|
||||||
|
where
|
||||||
|
[(); N / 2]:,
|
||||||
|
{
|
||||||
|
fn from_fn_2<F: FnMut(usize) -> f32>(f: F) -> Self {
|
||||||
|
Self { array: from_fn_1(f) }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fn main() {
|
||||||
|
TestArray::<4>::from_fn_2(|i| 0.0);
|
||||||
|
}
|
11
src/test/ui/consts/issue-104396.stderr
Normal file
11
src/test/ui/consts/issue-104396.stderr
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
warning: the feature `generic_const_exprs` is incomplete and may not be safe to use and/or cause compiler crashes
|
||||||
|
--> $DIR/issue-104396.rs:4:12
|
||||||
|
|
|
||||||
|
LL | #![feature(generic_const_exprs)]
|
||||||
|
| ^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
|
||||||
|
= note: see issue #76560 <https://github.com/rust-lang/rust/issues/76560> for more information
|
||||||
|
= note: `#[warn(incomplete_features)]` on by default
|
||||||
|
|
||||||
|
warning: 1 warning emitted
|
||||||
|
|
15
src/test/ui/generator/unresolved-ct-var-drop-tracking.rs
Normal file
15
src/test/ui/generator/unresolved-ct-var-drop-tracking.rs
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
// incremental
|
||||||
|
// edition:2021
|
||||||
|
// compile-flags: -Zdrop-tracking
|
||||||
|
|
||||||
|
fn main() {
|
||||||
|
let _ = async {
|
||||||
|
let s = std::array::from_fn(|_| ()).await;
|
||||||
|
//~^ ERROR `[(); _]` is not a future
|
||||||
|
//~| ERROR type inside `async` block must be known in this context
|
||||||
|
//~| ERROR type inside `async` block must be known in this context
|
||||||
|
//~| ERROR type inside `async` block must be known in this context
|
||||||
|
//~| ERROR type inside `async` block must be known in this context
|
||||||
|
//~| ERROR type inside `async` block must be known in this context
|
||||||
|
};
|
||||||
|
}
|
78
src/test/ui/generator/unresolved-ct-var-drop-tracking.stderr
Normal file
78
src/test/ui/generator/unresolved-ct-var-drop-tracking.stderr
Normal file
|
@ -0,0 +1,78 @@
|
||||||
|
error[E0277]: `[(); _]` is not a future
|
||||||
|
--> $DIR/unresolved-ct-var-drop-tracking.rs:7:44
|
||||||
|
|
|
||||||
|
LL | let s = std::array::from_fn(|_| ()).await;
|
||||||
|
| ---------------------------^^^^^^
|
||||||
|
| | |
|
||||||
|
| | `[(); _]` is not a future
|
||||||
|
| | help: remove the `.await`
|
||||||
|
| this call returns `[(); _]`
|
||||||
|
|
|
||||||
|
= help: the trait `Future` is not implemented for `[(); _]`
|
||||||
|
= note: [(); _] must be a future or must implement `IntoFuture` to be awaited
|
||||||
|
= note: required for `[(); _]` to implement `IntoFuture`
|
||||||
|
|
||||||
|
error[E0698]: type inside `async` block must be known in this context
|
||||||
|
--> $DIR/unresolved-ct-var-drop-tracking.rs:7:17
|
||||||
|
|
|
||||||
|
LL | let s = std::array::from_fn(|_| ()).await;
|
||||||
|
| ^^^^^^^^^^^^^^^^^^^ cannot infer the value of const parameter `N` declared on the function `from_fn`
|
||||||
|
|
|
||||||
|
note: the type is part of the `async` block because of this `await`
|
||||||
|
--> $DIR/unresolved-ct-var-drop-tracking.rs:7:44
|
||||||
|
|
|
||||||
|
LL | let s = std::array::from_fn(|_| ()).await;
|
||||||
|
| ^^^^^^
|
||||||
|
|
||||||
|
error[E0698]: type inside `async` block must be known in this context
|
||||||
|
--> $DIR/unresolved-ct-var-drop-tracking.rs:7:17
|
||||||
|
|
|
||||||
|
LL | let s = std::array::from_fn(|_| ()).await;
|
||||||
|
| ^^^^^^^^^^^^^^^^^^^ cannot infer the value of const parameter `N` declared on the function `from_fn`
|
||||||
|
|
|
||||||
|
note: the type is part of the `async` block because of this `await`
|
||||||
|
--> $DIR/unresolved-ct-var-drop-tracking.rs:7:44
|
||||||
|
|
|
||||||
|
LL | let s = std::array::from_fn(|_| ()).await;
|
||||||
|
| ^^^^^^
|
||||||
|
|
||||||
|
error[E0698]: type inside `async` block must be known in this context
|
||||||
|
--> $DIR/unresolved-ct-var-drop-tracking.rs:7:17
|
||||||
|
|
|
||||||
|
LL | let s = std::array::from_fn(|_| ()).await;
|
||||||
|
| ^^^^^^^^^^^^^^^^^^^ cannot infer the value of const parameter `N` declared on the function `from_fn`
|
||||||
|
|
|
||||||
|
note: the type is part of the `async` block because of this `await`
|
||||||
|
--> $DIR/unresolved-ct-var-drop-tracking.rs:7:44
|
||||||
|
|
|
||||||
|
LL | let s = std::array::from_fn(|_| ()).await;
|
||||||
|
| ^^^^^^
|
||||||
|
|
||||||
|
error[E0698]: type inside `async` block must be known in this context
|
||||||
|
--> $DIR/unresolved-ct-var-drop-tracking.rs:7:17
|
||||||
|
|
|
||||||
|
LL | let s = std::array::from_fn(|_| ()).await;
|
||||||
|
| ^^^^^^^^^^^^^^^^^^^ cannot infer the value of const parameter `N` declared on the function `from_fn`
|
||||||
|
|
|
||||||
|
note: the type is part of the `async` block because of this `await`
|
||||||
|
--> $DIR/unresolved-ct-var-drop-tracking.rs:7:44
|
||||||
|
|
|
||||||
|
LL | let s = std::array::from_fn(|_| ()).await;
|
||||||
|
| ^^^^^^
|
||||||
|
|
||||||
|
error[E0698]: type inside `async` block must be known in this context
|
||||||
|
--> $DIR/unresolved-ct-var-drop-tracking.rs:7:17
|
||||||
|
|
|
||||||
|
LL | let s = std::array::from_fn(|_| ()).await;
|
||||||
|
| ^^^^^^^^^^^^^^^^^^^ cannot infer the value of const parameter `N` declared on the function `from_fn`
|
||||||
|
|
|
||||||
|
note: the type is part of the `async` block because of this `await`
|
||||||
|
--> $DIR/unresolved-ct-var-drop-tracking.rs:7:44
|
||||||
|
|
|
||||||
|
LL | let s = std::array::from_fn(|_| ()).await;
|
||||||
|
| ^^^^^^
|
||||||
|
|
||||||
|
error: aborting due to 6 previous errors
|
||||||
|
|
||||||
|
Some errors have detailed explanations: E0277, E0698.
|
||||||
|
For more information about an error, try `rustc --explain E0277`.
|
Loading…
Add table
Add a link
Reference in a new issue