Suggest usize instead of placeholder type for array length constants - #160906
Conversation
|
r? @davidtwco rustbot has assigned @davidtwco. Use Why was this reviewer chosen?The reviewer was selected based on:
|
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
0094f3f to
29a62a7
Compare
There was a problem hiding this comment.
Maybe split this into two diagnostics so that the diagnostics w/ a concrete usize suggestion needn't be "has-placeholders"
There was a problem hiding this comment.
@davidtwco Got it, I tried doing just that in 520b339. Does it make sense? The one question I was left with was if the usize branch is now "machine-applicable" instead of "has-placeholder".
I think it looks better this way!
29a62a7 to
520b339
Compare
|
This PR was rebased onto a different main commit. Here's a range-diff highlighting what actually changed. Rebasing is a normal part of keeping PRs up to date, so no action is needed—this note is just to help reviewers. |
|
Thanks, sorry for the wait on the re-review @bors r+ rollup |
Suggest usize instead of placeholder type for array length constants Fixes rust-lang#159487 This PR makes the type suggestion for a anonymous constant used as an array length or repeat expression less generic: usize instead of placeholder type. I divided the work in several commits so I could track my own progress and test my understanding. I could squash them all into one if needed. Some ideas were pulled from rust-lang#160155 , which is why the PR might look similar. That said I only used it as reference when I got stuck, because I was prioritizing my own learning instead of just quickly pushing the changes (hence, many commits).
Suggest usize instead of placeholder type for array length constants Fixes rust-lang#159487 This PR makes the type suggestion for a anonymous constant used as an array length or repeat expression less generic: usize instead of placeholder type. I divided the work in several commits so I could track my own progress and test my understanding. I could squash them all into one if needed. Some ideas were pulled from rust-lang#160155 , which is why the PR might look similar. That said I only used it as reference when I got stuck, because I was prioritizing my own learning instead of just quickly pushing the changes (hence, many commits).
Rollup of 25 pull requests Successful merges: - #159074 ([PAC] FnAbi, llvm.ptrauth.resign and Session API change (2/8)) - #159792 (A more readable debug map for IndexMaps) - #161895 (std::sys::pal::sgx: fix mismatched alloc/free alignment) - #161900 (bootstrap: Include feature-gated items in bootstrap tool docs) - #161940 (Promote `wasm32-wasip3` to a tier 2 target) - #162072 (Add new Tier-3 target: `powerpc64-sony-ps3`) - #162179 (type system const items via direct rhs) - #162277 (Introduce `rustc_middle::middel::resolve`) - #162285 (box: fixup map/try_map deallocate calls) - #162286 (string: don't unwind prematurely) - #162289 (alloc: a bunch of safety comments) - #162292 (Update `askama` version to `0.16.1`) - #160509 (Remove `RegionExt`; move methods to `Region` in `rustc_type_ir`) - #160906 (Suggest usize instead of placeholder type for array length constants) - #160936 (traits: Represent live alias arguments as bitsets) - #161400 (Improve diagnostics for references to closures) - #161656 (Suggest mutable references for FnMut closure arguments) - #161711 (Add more splat fn type tests) - #161786 (Make `tcx.def_id_partial_cmp` public) - #161953 (sanitizers: Implicitly disable mutually exclusive sanitizers) - #162155 (add suggestion for `rustc_allowed_through_unstable_modules` attribute) - #162212 (Implement `Rng` for `Box`) - #162246 (Fix incorrect meta span) - #162266 (std: fix typo) - #162291 (Add regression test from 1.98.1)
Suggest usize instead of placeholder type for array length constants Fixes rust-lang#159487 This PR makes the type suggestion for a anonymous constant used as an array length or repeat expression less generic: usize instead of placeholder type. I divided the work in several commits so I could track my own progress and test my understanding. I could squash them all into one if needed. Some ideas were pulled from rust-lang#160155 , which is why the PR might look similar. That said I only used it as reference when I got stuck, because I was prioritizing my own learning instead of just quickly pushing the changes (hence, many commits).
Rollup of 25 pull requests Successful merges: - #159074 ([PAC] FnAbi, llvm.ptrauth.resign and Session API change (2/8)) - #159792 (A more readable debug map for IndexMaps) - #160745 (make closures act like MaybeDangling) - #161895 (std::sys::pal::sgx: fix mismatched alloc/free alignment) - #161940 (Promote `wasm32-wasip3` to a tier 2 target) - #162072 (Add new Tier-3 target: `powerpc64-sony-ps3`) - #162179 (type system const items via direct rhs) - #162277 (Introduce `rustc_middle::middel::resolve`) - #162285 (box: fixup map/try_map deallocate calls) - #162286 (string: don't unwind prematurely) - #162289 (alloc: a bunch of safety comments) - #162292 (Update `askama` version to `0.16.1`) - #160509 (Remove `RegionExt`; move methods to `Region` in `rustc_type_ir`) - #160906 (Suggest usize instead of placeholder type for array length constants) - #160936 (traits: Represent live alias arguments as bitsets) - #161400 (Improve diagnostics for references to closures) - #161656 (Suggest mutable references for FnMut closure arguments) - #161711 (Add more splat fn type tests) - #161786 (Make `tcx.def_id_partial_cmp` public) - #161953 (sanitizers: Implicitly disable mutually exclusive sanitizers) - #162155 (add suggestion for `rustc_allowed_through_unstable_modules` attribute) - #162212 (Implement `Rng` for `Box`) - #162246 (Fix incorrect meta span) - #162266 (std: fix typo) - #162291 (Add regression test from 1.98.1)
Suggest usize instead of placeholder type for array length constants Fixes rust-lang#159487 This PR makes the type suggestion for a anonymous constant used as an array length or repeat expression less generic: usize instead of placeholder type. I divided the work in several commits so I could track my own progress and test my understanding. I could squash them all into one if needed. Some ideas were pulled from rust-lang#160155 , which is why the PR might look similar. That said I only used it as reference when I got stuck, because I was prioritizing my own learning instead of just quickly pushing the changes (hence, many commits).
Suggest usize instead of placeholder type for array length constants Fixes rust-lang#159487 This PR makes the type suggestion for a anonymous constant used as an array length or repeat expression less generic: usize instead of placeholder type. I divided the work in several commits so I could track my own progress and test my understanding. I could squash them all into one if needed. Some ideas were pulled from rust-lang#160155 , which is why the PR might look similar. That said I only used it as reference when I got stuck, because I was prioritizing my own learning instead of just quickly pushing the changes (hence, many commits).
Rollup of 27 pull requests Successful merges: - #159074 ([PAC] FnAbi, llvm.ptrauth.resign and Session API change (2/8)) - #159792 (A more readable debug map for IndexMaps) - #160745 (make closures act like MaybeDangling) - #161940 (Promote `wasm32-wasip3` to a tier 2 target) - #162030 (Prevent `--test` to be used in `rustdoc-html` testsuite) - #162072 (Add new Tier-3 target: `powerpc64-sony-ps3`) - #162179 (type system const items via direct rhs) - #162262 (Avoid manually instantiating some binders in error reporting with `-Znext-solver`) - #162277 (Introduce `rustc_middle::middel::resolve`) - #162285 (box: fixup map/try_map deallocate calls) - #162286 (string: don't unwind prematurely) - #162289 (alloc: a bunch of safety comments) - #162290 (abby test DSL: AliasTyOutlivesViaEnv) - #162292 (Update `askama` version to `0.16.1`) - #160509 (Remove `RegionExt`; move methods to `Region` in `rustc_type_ir`) - #160906 (Suggest usize instead of placeholder type for array length constants) - #160936 (traits: Represent live alias arguments as bitsets) - #161400 (Improve diagnostics for references to closures) - #161656 (Suggest mutable references for FnMut closure arguments) - #161711 (Add more splat fn type tests) - #161786 (Make `tcx.def_id_partial_cmp` public) - #161953 (sanitizers: Implicitly disable mutually exclusive sanitizers) - #162155 (add suggestion for `rustc_allowed_through_unstable_modules` attribute) - #162212 (Implement `Rng` for `Box`) - #162246 (Fix incorrect meta span) - #162266 (std: fix typo) - #162291 (Add regression test from 1.98.1)
…uwer Rollup of 25 pull requests Successful merges: - #162072 (Add new Tier-3 target: `powerpc64-sony-ps3`) - #162179 (type system const items via direct rhs) - #162255 (let people change rustc-dev-guide in-tree) - #162262 (Avoid manually instantiating some binders in error reporting with `-Znext-solver`) - #162277 (Introduce `rustc_middle::middel::resolve`) - #162285 (box: fixup map/try_map deallocate calls) - #162286 (string: don't unwind prematurely) - #162289 (alloc: a bunch of safety comments) - #162290 (abby test DSL: AliasTyOutlivesViaEnv) - #162292 (Update `askama` version to `0.16.1`) - #160509 (Remove `RegionExt`; move methods to `Region` in `rustc_type_ir`) - #160906 (Suggest usize instead of placeholder type for array length constants) - #160936 (traits: Represent live alias arguments as bitsets) - #161394 (fix `is_homogeneous_aggregate`: use unit size, not total size ) - #161400 (Improve diagnostics for references to closures) - #161656 (Suggest mutable references for FnMut closure arguments) - #161711 (Add more splat fn type tests) - #161786 (Make `tcx.def_id_partial_cmp` public) - #161953 (sanitizers: Implicitly disable mutually exclusive sanitizers) - #162155 (add suggestion for `rustc_allowed_through_unstable_modules` attribute) - #162212 (Implement `Rng` for `Box`) - #162246 (Fix incorrect meta span) - #162266 (std: fix typo) - #162291 (Add regression test from 1.98.1) - #162303 (Fix a minor spelling error in `library/std/src/sys/fs/unix.rs`)
Suggest usize instead of placeholder type for array length constants Fixes rust-lang#159487 This PR makes the type suggestion for a anonymous constant used as an array length or repeat expression less generic: usize instead of placeholder type. I divided the work in several commits so I could track my own progress and test my understanding. I could squash them all into one if needed. Some ideas were pulled from rust-lang#160155 , which is why the PR might look similar. That said I only used it as reference when I got stuck, because I was prioritizing my own learning instead of just quickly pushing the changes (hence, many commits).
…uwer Rollup of 25 pull requests Successful merges: - #162072 (Add new Tier-3 target: `powerpc64-sony-ps3`) - #162179 (type system const items via direct rhs) - #162255 (let people change rustc-dev-guide in-tree) - #162262 (Avoid manually instantiating some binders in error reporting with `-Znext-solver`) - #162277 (Introduce `rustc_middle::middel::resolve`) - #162285 (box: fixup map/try_map deallocate calls) - #162286 (string: don't unwind prematurely) - #162289 (alloc: a bunch of safety comments) - #162290 (abby test DSL: AliasTyOutlivesViaEnv) - #162292 (Update `askama` version to `0.16.1`) - #160509 (Remove `RegionExt`; move methods to `Region` in `rustc_type_ir`) - #160906 (Suggest usize instead of placeholder type for array length constants) - #160936 (traits: Represent live alias arguments as bitsets) - #161394 (fix `is_homogeneous_aggregate`: use unit size, not total size ) - #161400 (Improve diagnostics for references to closures) - #161656 (Suggest mutable references for FnMut closure arguments) - #161711 (Add more splat fn type tests) - #161786 (Make `tcx.def_id_partial_cmp` public) - #161953 (sanitizers: Implicitly disable mutually exclusive sanitizers) - #162155 (add suggestion for `rustc_allowed_through_unstable_modules` attribute) - #162212 (Implement `Rng` for `Box`) - #162246 (Fix incorrect meta span) - #162266 (std: fix typo) - #162291 (Add regression test from 1.98.1) - #162303 (Fix a minor spelling error in `library/std/src/sys/fs/unix.rs`)
Rollup merge of #160906 - lsunsi:push-ysqvmnlvvzwr, r=davidtwco Suggest usize instead of placeholder type for array length constants Fixes #159487 This PR makes the type suggestion for a anonymous constant used as an array length or repeat expression less generic: usize instead of placeholder type. I divided the work in several commits so I could track my own progress and test my understanding. I could squash them all into one if needed. Some ideas were pulled from #160155 , which is why the PR might look similar. That said I only used it as reference when I got stuck, because I was prioritizing my own learning instead of just quickly pushing the changes (hence, many commits).
|
Note This PR was benchmarked as part of triage of its containing rollup: triage URL. Finished benchmarking commit (e3fa2db): comparison URL. Overall result: no relevant changes - no action needed@rustbot label: -perf-regression Instruction countThis perf run didn't have relevant results for this metric. Max RSS (memory usage)Results (primary -3.2%, secondary 2.2%)A less reliable metric. May be of interest, but not used to determine the overall result above.
CyclesResults (secondary -2.2%)A less reliable metric. May be of interest, but not used to determine the overall result above.
Binary sizeThis perf run didn't have relevant results for this metric. Bootstrap: missing data |
…uwer Rollup of 25 pull requests Successful merges: - rust-lang/rust#162072 (Add new Tier-3 target: `powerpc64-sony-ps3`) - rust-lang/rust#162179 (type system const items via direct rhs) - rust-lang/rust#162255 (let people change rustc-dev-guide in-tree) - rust-lang/rust#162262 (Avoid manually instantiating some binders in error reporting with `-Znext-solver`) - rust-lang/rust#162277 (Introduce `rustc_middle::middel::resolve`) - rust-lang/rust#162285 (box: fixup map/try_map deallocate calls) - rust-lang/rust#162286 (string: don't unwind prematurely) - rust-lang/rust#162289 (alloc: a bunch of safety comments) - rust-lang/rust#162290 (abby test DSL: AliasTyOutlivesViaEnv) - rust-lang/rust#162292 (Update `askama` version to `0.16.1`) - rust-lang/rust#160509 (Remove `RegionExt`; move methods to `Region` in `rustc_type_ir`) - rust-lang/rust#160906 (Suggest usize instead of placeholder type for array length constants) - rust-lang/rust#160936 (traits: Represent live alias arguments as bitsets) - rust-lang/rust#161394 (fix `is_homogeneous_aggregate`: use unit size, not total size ) - rust-lang/rust#161400 (Improve diagnostics for references to closures) - rust-lang/rust#161656 (Suggest mutable references for FnMut closure arguments) - rust-lang/rust#161711 (Add more splat fn type tests) - rust-lang/rust#161786 (Make `tcx.def_id_partial_cmp` public) - rust-lang/rust#161953 (sanitizers: Implicitly disable mutually exclusive sanitizers) - rust-lang/rust#162155 (add suggestion for `rustc_allowed_through_unstable_modules` attribute) - rust-lang/rust#162212 (Implement `Rng` for `Box`) - rust-lang/rust#162246 (Fix incorrect meta span) - rust-lang/rust#162266 (std: fix typo) - rust-lang/rust#162291 (Add regression test from 1.98.1) - rust-lang/rust#162303 (Fix a minor spelling error in `library/std/src/sys/fs/unix.rs`)
…uwer Rollup of 25 pull requests Successful merges: - rust-lang/rust#162072 (Add new Tier-3 target: `powerpc64-sony-ps3`) - rust-lang/rust#162179 (type system const items via direct rhs) - rust-lang/rust#162255 (let people change rustc-dev-guide in-tree) - rust-lang/rust#162262 (Avoid manually instantiating some binders in error reporting with `-Znext-solver`) - rust-lang/rust#162277 (Introduce `rustc_middle::middel::resolve`) - rust-lang/rust#162285 (box: fixup map/try_map deallocate calls) - rust-lang/rust#162286 (string: don't unwind prematurely) - rust-lang/rust#162289 (alloc: a bunch of safety comments) - rust-lang/rust#162290 (abby test DSL: AliasTyOutlivesViaEnv) - rust-lang/rust#162292 (Update `askama` version to `0.16.1`) - rust-lang/rust#160509 (Remove `RegionExt`; move methods to `Region` in `rustc_type_ir`) - rust-lang/rust#160906 (Suggest usize instead of placeholder type for array length constants) - rust-lang/rust#160936 (traits: Represent live alias arguments as bitsets) - rust-lang/rust#161394 (fix `is_homogeneous_aggregate`: use unit size, not total size ) - rust-lang/rust#161400 (Improve diagnostics for references to closures) - rust-lang/rust#161656 (Suggest mutable references for FnMut closure arguments) - rust-lang/rust#161711 (Add more splat fn type tests) - rust-lang/rust#161786 (Make `tcx.def_id_partial_cmp` public) - rust-lang/rust#161953 (sanitizers: Implicitly disable mutually exclusive sanitizers) - rust-lang/rust#162155 (add suggestion for `rustc_allowed_through_unstable_modules` attribute) - rust-lang/rust#162212 (Implement `Rng` for `Box`) - rust-lang/rust#162246 (Fix incorrect meta span) - rust-lang/rust#162266 (std: fix typo) - rust-lang/rust#162291 (Add regression test from 1.98.1) - rust-lang/rust#162303 (Fix a minor spelling error in `library/std/src/sys/fs/unix.rs`)
Fixes #159487
This PR makes the type suggestion for a anonymous constant used as an array length or repeat expression less generic: usize instead of placeholder type.
I divided the work in several commits so I could track my own progress and test my understanding. I could squash them all into one if needed.
Some ideas were pulled from #160155 , which is why the PR might look similar. That said I only used it as reference when I got stuck, because I was prioritizing my own learning instead of just quickly pushing the changes (hence, many commits).