Nicholas Nethercote
6a83352aa3
Introduce RawVec::reserve_for_push
.
...
If `Vec::push`'s capacity check fails it calls `RawVec::reserve`, which
then also does a capacity check.
This commit introduces `reserve_for_push` which skips the redundant
capacity check, for some slight compile time speed-ups.
I tried lots of minor variations on this, e.g. different inlining
attributes. This was the best one I could find.
2021-11-30 08:10:47 +11:00
Dylan MacKenzie
188d670125
Don't re-export MirPass
2021-11-29 12:58:15 -08:00
Jack Huey
692e96c327
Bless nll
2021-11-29 15:24:44 -05:00
Yacin Tmimi
1f28683ffa
Update nightly only test with #[nightly_only_test] attribute
2021-11-29 14:02:02 -06:00
Michael Howell
85ba6c7b34
Only show notable traits if both types are the same
...
Checking only their DefId doesn't work because all slices have the same
fake DefId.
Fixes #91347
2021-11-29 12:23:07 -07:00
Esteban Kuber
c02710530c
review comments: clean up
2021-11-29 18:39:08 +00:00
Fabian Wolff
821b92b102
Improve error message for incorrect field accesses through raw pointers
2021-11-29 19:31:17 +01:00
Laurențiu Nicola
dec0d83b41
⬆️ rust-analyzer
2021-11-29 18:53:28 +02:00
Ralf Jung
6c3c3e0952
CTFE: support assert_zero_valid and assert_uninit_valid
2021-11-29 11:49:31 -05:00
kijima
3c42a11895
Fix small typo
2021-11-30 01:31:10 +09:00
bors
6db0a0e9a4
Auto merge of #91299 - cjgillot:expect-ldid, r=petrochenkov
...
Take a LocalDefId in expect_*item.
Items and item-likes are always HIR owners.
When trying to find such nodes, there is no ambiguity, the `LocalDefId` and the `HirId::owner` always match.
In such cases, `local_def_id_to_hir_id` does not carry any meaningful information, so we can just skip calling it altogether.
2021-11-29 15:02:01 +00:00
Deadbeef
87cd1ce6c1
ParamEnv
should be const when ImplItem
is within a const impl.
2021-11-29 22:21:38 +08:00
Deadbeef
8710a2e169
Reformat everything
2021-11-29 21:19:51 +08:00
Deadbeef
fdf5322169
Fix tools
2021-11-29 21:19:50 +08:00
Oli Scherer
f394bb57bb
Always use const param envs for const eval.
...
Nothing else makes sense, and there is no "danger" in doing so, as it only does something if there are const bounds, which are unstable. This used to happen implicitly via the inferctxt before, which was much more fragile.
2021-11-29 21:19:50 +08:00
Oli Scherer
a9a79f657c
Completely remove ConstnessAnd
2021-11-29 21:19:49 +08:00
Oli Scherer
a848c4ba3f
Avoid storing the ImplPolarity and Constness next to a TraitRef and use TraitPredicate instead
2021-11-29 21:19:49 +08:00
Oli Scherer
d161cc2071
Replace ConstnessAnd<TraitRef>
with TraitPredicate
which conveys the same information
2021-11-29 21:19:48 +08:00
Oli Scherer
b16c811f1c
Prefer TraitPredicate over ConstnessAnd<TraitRef>
2021-11-29 21:19:48 +08:00
Oli Scherer
40f39e6c6a
Fixup
2021-11-29 21:19:48 +08:00
Oli Scherer
d51068ca28
Use the constness from the param env instead of having a separate dimension for it
...
This breaks a ~const test that will be fixed in a follow up commit of this PR
2021-11-29 21:19:47 +08:00
Oli Scherer
19f2101272
Fixup add const to param env
2021-11-29 21:19:47 +08:00
Oli Scherer
e37947f097
Re-use constness_for_typeck
instead of rolling it ourselves
2021-11-29 21:19:46 +08:00
Oli Scherer
1761d88f4a
Static items are also const
2021-11-29 21:19:46 +08:00
Oli Scherer
721ffd14c3
Add constness to ParamEnv
...
This now causes a lot of queries to be executed twice, as reveal_all forces NotConst
2021-11-29 21:19:46 +08:00
Oli Scherer
22eeff700e
Prepare for more ParamEnv flags
2021-11-29 21:19:42 +08:00
bors
8b954910c5
Auto merge of #91350 - matthiaskrgr:rollup-nleabdj, r=matthiaskrgr
...
Rollup of 5 pull requests
Successful merges:
- #91049 (Add a caveat to std::os::windows::fs::symlink_file)
- #91281 (Add demonstration test for #91161 )
- #91327 (Delete an unreachable codepath from format_args implementation)
- #91336 (Remove unused root_parent.)
- #91349 (Accumulate all values of `-C remark` option)
Failed merges:
r? `@ghost`
`@rustbot` modify labels: rollup
2021-11-29 10:34:52 +00:00
Matthias Krüger
e15e0ba45c
Rollup merge of #91349 - tmiasko:accumulate-remark-args, r=nikic
...
Accumulate all values of `-C remark` option
When `-C remark=...` option is specified multiple times,
accumulate all values instead of using only the last one.
r? `@nikic`
2021-11-29 10:41:38 +01:00
Matthias Krüger
b8a4a4c232
Rollup merge of #91336 - cjgillot:root_parent, r=matthewjasper
...
Remove unused root_parent.
2021-11-29 10:41:37 +01:00
Matthias Krüger
7df49eff10
Rollup merge of #91327 - dtolnay:exact, r=michaelwoerister
...
Delete an unreachable codepath from format_args implementation
2021-11-29 10:41:36 +01:00
Matthias Krüger
a2f924a255
Rollup merge of #91281 - scottmcm:non-exhaustive-as-test, r=Mark-Simulacrum
...
Add demonstration test for #91161
Since cross-crate things are hard to demonstrate in playground, here's a test showing that something currently works that shouldn't.
cc https://github.com/rust-lang/rust/issues/91161 that tracks fixing the problem (and updating this test)
2021-11-29 10:41:34 +01:00
Matthias Krüger
80277dcc4f
Rollup merge of #91049 - dimo414:patch-1, r=kennytm
...
Add a caveat to std::os::windows::fs::symlink_file
This is similar to the note on [Python's `os.symlink()`](https://docs.python.org/3/library/os.html#os.symlink ). Some additional notes in https://github.com/dimo414/bkt/issues/3 .
2021-11-29 10:41:33 +01:00
Tomasz Miąsko
e74e39a699
Accumulate all values of -C remark
option
...
When `-C remark=...` option is specified multiple times,
accumulate all values instead of using only the last one.
2021-11-29 09:12:01 +01:00
bors
44723c5d59
Auto merge of #91043 - camsteffen:descendant-eq, r=petrochenkov
...
Add fast path to `is_descendant_of`
2021-11-29 07:46:36 +00:00
Caleb Cartwright
0fc846f979
refactor: maintain more AST info when formatting a RHS
2021-11-28 23:25:06 -06:00
bors
9981e56d3b
Auto merge of #91344 - RalfJung:miri, r=RalfJung
...
update Miri
Fixes https://github.com/rust-lang/rust/issues/91289
2021-11-29 04:40:31 +00:00
Ibraheem Ahmed
2e8358e1ab
add Option::inspect
and Result::{inspect, inspect_err}
2021-11-28 23:31:45 -05:00
William D. Jones
e500eb6950
Bump compiler_builtins to 0.1.55 to bring in fixes for targets lacking atomic support.
2021-11-28 23:01:03 -05:00
Ralf Jung
8a7e90ab9e
update Miri
2021-11-28 20:37:49 -05:00
bors
a19e748baa
Auto merge of #91338 - matthiaskrgr:rollup-46ry8wi, r=matthiaskrgr
...
Rollup of 3 pull requests
Successful merges:
- #90131 (Fix a format_args span to be expansion)
- #90832 (Add 1.57.0 release notes)
- #90833 (Emit LLVM optimization remarks when enabled with `-Cremark`)
Failed merges:
r? `@ghost`
`@rustbot` modify labels: rollup
2021-11-29 01:35:33 +00:00
Matthias Krüger
67762ffe35
Rollup merge of #90833 - tmiasko:optimization-remarks, r=nikic
...
Emit LLVM optimization remarks when enabled with `-Cremark`
The default diagnostic handler considers all remarks to be disabled by
default unless configured otherwise through LLVM internal flags:
`-pass-remarks`, `-pass-remarks-missed`, and `-pass-remarks-analysis`.
This behaviour makes `-Cremark` ineffective on its own.
Fix this by configuring a custom diagnostic handler that enables
optimization remarks based on the value of `-Cremark` option. With
`-Cremark=all` enabling all remarks.
Fixes #90924 .
r? `@nikic`
2021-11-28 23:45:17 +01:00
Matthias Krüger
9ef0bcfc68
Rollup merge of #90832 - cuviper:relnotes-1.57.0, r=Mark-Simulacrum
...
Add 1.57.0 release notes
2021-11-28 23:45:16 +01:00
Matthias Krüger
9715724006
Rollup merge of #90131 - camsteffen:fmt-args-span-fix, r=cjgillot
...
Fix a format_args span to be expansion
I found this while exploring solutions for rust-lang/rust-clippy#7843 .
r? `@m-ou-se`
2021-11-28 23:45:15 +01:00
Cameron Steffen
ac8d514376
Add parent crate assert to register_expn_id
2021-11-28 16:35:54 -06:00
Cameron Steffen
768cfac705
Add fast path to is_descendant_of
2021-11-28 16:35:54 -06:00
bors
350158dd6d
Auto merge of #90681 - workingjubilee:update-libc, r=JohnTitor
...
Update libc to 0.2.108
Changelog:
https://github.com/rust-lang/libc/releases/tag/0.2.107
https://github.com/rust-lang/libc/releases/tag/0.2.108
Primarily intended to pull in rust-lang/libc@fd331f65f2
This should help with https://github.com/rust-lang/rust/pull/90044
2021-11-28 22:29:57 +00:00
Camille GILLOT
06b2e659d3
Remove unused root_parent.
2021-11-28 21:48:28 +01:00
Camille GILLOT
877b2d79d9
Remove eval_always for lib_features.
2021-11-28 21:13:36 +01:00
Camille GILLOT
5fb4648757
Take a LocalDefId in expect_*item.
2021-11-28 21:09:45 +01:00
Aaron Hill
4910fe6889
Fix incorrect usage of EvaluatedToOk
when evaluating TypeOutlives
...
A global predicate is not guarnatenteed to outlive all regions.
If the predicate involves late-bound regions, then it may fail
to outlive other regions (e.g. `for<'b> &'b bool: 'static` does not
hold)
We now only produce `EvaluatedToOk` when a global predicate has no
late-bound regions - in that case, the ony region that can be present
in the type is 'static
2021-11-28 15:03:58 -05:00