Guillaume Gomez
46b93b2e44
Rollup merge of #82163 - matthiaskrgr:slice, r=jyn514
...
avoid full-slicing slices
If we already have a slice, there is no need to get another full-range slice from that, just use the original.
clippy::redundant_slicing
2021-02-16 19:21:20 +01:00
Guillaume Gomez
73d6b603a7
Rollup merge of #82160 - pierwill:patch-2, r=lcnr
...
Fix typo in rustc_infer::infer::UndoLog
Also use double quotes.
2021-02-16 19:21:18 +01:00
Matthias Krüger
4390a61b64
avoid full-slicing slices
...
If we already have a slice, there is no need to get another full-range slice from that, just use the original.
clippy::redundant_slicing
2021-02-16 00:31:11 +01:00
Camille GILLOT
7dd1e8cfdf
Trait impls are Items, therefore HIR owners.
2021-02-15 19:36:13 +01:00
Camille GILLOT
786a80e9ea
Only store a LocalDefId in hir::ImplItem.
2021-02-15 19:32:29 +01:00
Camille GILLOT
a871a0f111
Only store a LocalDefId in hir::TraitItem.
2021-02-15 19:32:28 +01:00
Camille GILLOT
c676e358a5
Use ItemId as a strongly typed index.
2021-02-15 19:24:58 +01:00
pierwill
f2f7ffecd7
Fix typo in rustc_infer::infer::UndoLog
...
Also use double quotes.
2021-02-15 10:02:03 -08:00
Gus Wynn
c28d86c53b
name async generators something more human friendly in type error diagnostics
2021-02-15 08:51:08 -08:00
Jonas Schievink
665bf9e35f
Rollup merge of #82067 - BoxyUwU:hahaicantthinkofabadpun, r=oli-obk
...
const_generics: Fix incorrect ty::ParamEnv::empty() usage
Fixes #80561
Not sure if I should keep the `debug!(..)`s or not but its the second time I've needed them so they sure seem useful lol
cc ``@lcnr``
r? ``@oli-obk``
2021-02-15 16:06:59 +01:00
klensy
93c8ebe022
bumped smallvec deps
2021-02-14 18:03:11 +03:00
Ellen
7bd71262f8
param_env debugs are instrumental to rustc's success
2021-02-14 11:18:40 +00:00
Matthew Jasper
0bf1d73d22
Don't go through TraitRef to relate projections
2021-02-13 19:30:07 +00:00
Ellen
b6144e7a20
yeet ya fixme into the void
2021-02-13 19:10:08 +00:00
Ellen
68405fdc2e
debug!("paramenv={}paramenv={}paramenv={}paramenv={}")
2021-02-13 19:10:08 +00:00
0yoyoyo
788e4bb4e5
Fix suggestion to introduce explicit lifetime
2021-02-12 00:48:44 +09:00
Matthew Jasper
f852160a99
Keep existing names of regions in placeholder_error
2021-02-10 20:00:36 +00:00
Matthew Jasper
9337d4fde8
Print closure signatures when reporting placeholder errors
2021-02-09 23:00:33 +00:00
Matthew Jasper
94c11dfe78
Report "nice" placeholder errors more often
...
If we have a cause containing `ValuePairs::PolyTraitRefs` but neither
TraitRef has any escaping bound regions then we report the same error as
for `ValuePairs::TraitRefs`.
2021-02-09 22:59:32 +00:00
Matthew Jasper
daab6db1a0
Avoid repeating self type in placeholder error
2021-02-09 22:28:09 +00:00
Matthew Jasper
c2066cf069
Remove unnecessary note on errors
...
Seeing the trait definition doesn't help with implementation not general
enough errors, so don't make the error message larger to show it.
2021-02-09 21:16:00 +00:00
Matthew Jasper
638980a07f
Using tracing macros in placeholder_error.rs
2021-02-09 21:03:00 +00:00
Matthew Jasper
1eb79f3c37
Use longer lifetime in try_report_from_nll
return type
2021-02-09 20:56:45 +00:00
Dylan DPC
44e526b2c3
Rollup merge of #80732 - spastorino:trait-inheritance-self2, r=nikomatsakis
...
Allow Trait inheritance with cycles on associated types take 2
This reverts the revert of #79209 and fixes the ICEs that's occasioned by that PR exposing some problems that are addressed in #80648 and #79811 .
For easier review I'd say, check only the last commit, the first one is just a revert of the revert of #79209 which was already approved.
This also could be considered part or the actual fix of #79560 but I guess for that to be closed and fixed completely we would need to land #80648 and #79811 too.
r? `@nikomatsakis`
cc `@Aaron1011`
2021-02-09 02:39:50 +01:00
Santiago Pastorino
8d17c6a85d
Anonymize late bound regions on transitive bounds that define assoc type
2021-02-08 16:47:51 -03:00
Santiago Pastorino
fd092557ce
Adapt to latest master changes by using PredicateKind
2021-02-05 18:56:57 -03:00
Santiago Pastorino
7aa602b84c
Revert "Auto merge of #79637 - spastorino:revert-trait-inheritance-self, r=Mark-Simulacrum"
...
This reverts commit b4def89d76
, reversing
changes made to 7dc1e852d4
.
2021-02-05 18:56:56 -03:00
Eric Huss
bb22eaf39e
tidy: Run tidy style against markdown files.
2021-02-04 09:01:50 -08:00
Jack Huey
7edb3ad39b
Rollup merge of #81655 - matsujika:suggest-accessing-field-rewording, r=estebank
...
Improve wording of suggestion about accessing field
Follow-up to #81504
The compiler at this moment suggests "you might have meant to use field `b` of type `B`", sounding like it's type `B` which has the field `b`.
r? ```@estebank```
2021-02-02 16:01:48 -05:00
Jack Huey
c1623a2ee7
Rollup merge of #80593 - jackh726:chalk-upgrade, r=nikomatsakis
...
Upgrade Chalk
~~Blocked on rust-lang/chalk#670~~
~~Now blocked on rust-lang/chalk#680 and release~~
In addition to the straight upgrade, I also tried to fix some tests by properly returning variables and max universes in the solution. Unfortunately, this actually triggers the same perf problem that rustc traits code runs into in `canonicalizer`. Not sure what the root cause of this problem is, or why it's supposed to be solved in chalk.
r? ```@nikomatsakis```
2021-02-02 16:01:32 -05:00
Mark Rousskov
d5b760ba62
Bump rustfmt version
...
Also switches on formatting of the mir build module
2021-02-02 09:09:52 -05:00
Hirochika Matsumoto
bad0f288d3
Improve wording of suggestion about accessing field
2021-02-02 15:16:07 +09:00
Jack Huey
4b64bc1fc9
Upgrade Chalk
2021-02-01 10:37:45 -05:00
Jonas Schievink
853cfd462f
Rollup merge of #81504 - matsujika:suggestion-field-access, r=estebank
...
Suggest accessing field when appropriate
Fix #81222
r? ``@estebank``
2021-02-01 14:29:37 +01:00
Jonas Schievink
9e8753e2bb
Rollup merge of #81463 - matsujika:nll-ensure-c-case, r=varkor
...
Rename NLL* to Nll* accordingly to C-CASE
Given [C-CASE](https://rust-lang.github.io/api-guidelines/naming.html#casing-conforms-to-rfc-430-c-case ), `NLLRegionVariableOrigin` and `NLL` are encouraged to be `NllRegionVariableOrigin` and `Nll` respectively.
2021-02-01 14:29:35 +01:00
Hirochika Matsumoto
f45a99361a
Rustfmt
2021-01-31 16:52:46 +09:00
Hirochika Matsumoto
a292ac7177
Fix prefix of debug log
2021-01-31 16:49:33 +09:00
Hirochika Matsumoto
6bc9634de3
Rename function to suggest_accessing_field_where_appropriate
2021-01-30 14:25:43 +09:00
Hirochika Matsumoto
2ce2d145c2
Account for union
2021-01-30 14:18:50 +09:00
Hirochika Matsumoto
08d31e0f09
Remove logging iterator
2021-01-30 13:50:44 +09:00
Hirochika Matsumoto
9e4ed337c7
Suggest accessing field when code compiles with it
2021-01-29 06:52:49 +09:00
Hirochika Matsumoto
f8e0e78d75
Rename NLL* to Nll* accordingly to C-CASE
2021-01-28 16:18:25 +09:00
Yuki Okushi
446edd1e1a
Rollup merge of #79951 - LeSeulArtichaut:ty-ir, r=nikomatsakis
...
Refractor a few more types to `rustc_type_ir`
In the continuation of #79169 , ~~blocked on that PR~~.
This PR:
- moves `IntVarValue`, `FloatVarValue`, `InferTy` (and friends) and `Variance`
- creates the `IntTy`, `UintTy` and `FloatTy` enums in `rustc_type_ir`, based on their `ast` and `chalk_ir` equilavents, and uses them for types in the rest of the compiler.
~~I will split up that commit to make this easier to review and to have a better commit history.~~
EDIT: done, I split the PR in commits of 200-ish lines each
r? `````@nikomatsakis````` cc `````@jackh726`````
2021-01-28 15:09:02 +09:00
LeSeulArtichaut
50e1ae15e9
Use ty::{IntTy,UintTy,FloatTy} in rustc
2021-01-18 21:09:30 +01:00
Daiki Ihara
db95b5ca9b
Add suggestion for impl_candidates with E0283
...
Update compiler/rustc_infer/src/infer/error_reporting/need_type_info.rs
Co-authored-by: Esteban Kuber <estebank@users.noreply.github.com>
2021-01-18 21:57:15 +09:00
Jack Huey
dcad9f1893
More review comments
2021-01-16 18:56:37 -05:00
Jack Huey
3dea68de1d
Review changes
2021-01-16 18:56:37 -05:00
Jack Huey
476bd53058
Cleanup
2021-01-16 18:50:34 -05:00
Jack Huey
e76476afe4
Cleanup
2021-01-16 18:40:47 -05:00
Jack Huey
4cd6f85a07
Remove PredicateKind
2021-01-16 18:40:47 -05:00
Jack Huey
8278314a8b
Remove PredicateKind::Atom
2021-01-16 18:40:47 -05:00
LingMan
a56bffb4f9
Use Option::map_or instead of .map(..).unwrap_or(..)
2021-01-14 19:23:59 +01:00
bors
fc93e4719c
Auto merge of #80960 - Dylan-DPC:rollup-89tri8x, r=Dylan-DPC
...
Rollup of 10 pull requests
Successful merges:
- #78901 (diagnostics: Note capturing closures can't be coerced to fns)
- #79588 (Provide more information for HRTB lifetime errors involving closures)
- #80232 (Remove redundant def_id lookups)
- #80662 (Added support for i386-unknown-linux-gnu and i486-unknown-linux-gnu)
- #80736 (use Once instead of Mutex to manage capture resolution)
- #80796 (Update to LLVM 11.0.1)
- #80859 (Fix --pretty=expanded with --remap-path-prefix)
- #80922 (Revert "Auto merge of #76896 - spastorino:codegen-inline-fns2)
- #80924 (Fix rustdoc --test-builder argument parsing)
- #80935 (Rename `rustc_middle::lint::LevelSource` to `LevelAndSource`)
Failed merges:
r? `@ghost`
`@rustbot` modify labels: rollup
2021-01-13 04:29:45 +00:00
bors
150d1fee04
Auto merge of #79322 - jyn514:refactor-impl, r=estebank
...
Separate out a `hir::Impl` struct
This makes it possible to pass the `Impl` directly to functions, instead
of having to pass each of the many fields one at a time. It also
simplifies matches in many cases.
See `rustc_save_analysis::dump_visitor::process_impl` or `rustdoc::clean::clean_impl` for a good example of how this makes `impl`s easier to work with.
r? `@petrochenkov` maybe?
2021-01-13 01:40:41 +00:00
Joshua Nelson
a8ff647deb
Separate out a hir::Impl
struct
...
This makes it possible to pass the `Impl` directly to functions, instead
of having to pass each of the many fields one at a time. It also
simplifies matches in many cases.
2021-01-12 20:32:33 -05:00
Esteban Küber
a8a974245e
Provide more information for HRTB lifetime errors involving closures
2021-01-12 13:53:13 -08:00
William Bain
d46c3e3411
Tweak ?
inference error messages
2021-01-10 19:48:11 -05:00
William Bain
62a39ed526
Extract parent def handling for infer failure err
2021-01-10 19:48:11 -05:00
William Bain
b9d9776fea
Refactor cannot infer ...
message rendering
2021-01-10 19:48:10 -05:00
William Bain
0496fdee4f
Note inference failures using ?
conversion
2021-01-10 19:47:57 -05:00
Yuki Okushi
faf8beddef
Rollup merge of #80637 - LingMan:filter, r=oli-obk
...
Use Option::filter instead of open-coding it
`@rustbot` modify labels +C-cleanup +T-compiler
2021-01-05 09:52:42 +09:00
LingMan
203d5025bb
Use Option::filter instead of open-coding it
2021-01-03 05:53:15 +01:00
Matthias Krüger
8a90626a46
reduce borrowing and (de)referencing around match patterns (clippy::match_ref_pats)
2021-01-02 20:09:17 +01:00
Rémy Rakic
1fc3c4c16d
adjust const generics defaults FIXMEs to the new feature gate
2021-01-01 11:01:01 +01:00
Yuki Okushi
7008911080
FIx ICE on wf check for foreign fns
2020-12-31 11:25:53 +09:00
Yuki Okushi
41fa0dba27
Rollup merge of #80509 - matthiaskrgr:ptr_arg, r=varkor
...
where possible, pass slices instead of &Vec or &String (clippy::ptr_arg)
2020-12-30 22:49:26 +09:00
Matthias Krüger
bdc9291ed9
where possible, pass slices instead of &Vec or &String (clippy::ptr_arg)
2020-12-30 13:11:52 +01:00
Yuki Okushi
a309468a8c
Rollup merge of #80348 - matthiaskrgr:less_clones, r=Dylan-DPC
...
remove redundant clones (clippy::redundant_clone)
2020-12-30 18:15:04 +09:00
Dylan DPC
c51172f38a
Rollup merge of #80344 - matthiaskrgr:matches, r=Dylan-DPC
...
use matches!() macro in more places
2020-12-28 14:13:12 +01:00
Matthias Krüger
d12a358673
use matches!() macro in more places
2020-12-24 13:35:12 +01:00
Matthias Krüger
6e852cc4ce
remove redundant clones (clippy::redundant_clone)
2020-12-24 12:59:22 +01:00
Matthew Jasper
2e92b13a60
Prevent caching projections in the case of cycles
...
When normalizing a projection which results in a cycle, we would
cache the result of `project_type` without the nested obligations
(because they're not needed for inference). This would result in
the nested obligations only being handled once in fulfill, which
would avoid the cycle error.
Fixes #79714 , a regresion from #79305 caused by the removal of
`get_paranoid_cache_value_obligation`.
2020-12-20 21:47:51 +00:00
bors
b1964e60b7
Auto merge of #80163 - jackh726:binder-refactor-part-3, r=lcnr
...
Make BoundRegion have a kind of BoungRegionKind
Split from #76814
Also includes making `replace_escaping_bound_vars` only return `T`
Going to r? `@lcnr`
Feel free to reassign
2020-12-20 07:01:00 +00:00
bors
0c11b93f5a
Auto merge of #79635 - lcnr:const-eval-idk, r=oli-obk
...
const_evaluatable_checked: fix occurs check
fixes #79615
this is kind of a hack because we use `TypeRelation` for both the `Generalizer` and the `ConstInferUnifier` but i am not sure if there is a useful way to disentangle this without unnecessarily duplicating some code.
The error in the added test is kind of unavoidable until we erase the unused substs of `ConstKind::Unevaluated`. We talked a bit about this in the cg lazy norm meeting (https://rust-lang.zulipchat.com/#narrow/stream/260443-project-const-generics/topic/lazy_normalization_consts )
2020-12-20 00:50:46 +00:00
Jack Huey
5e7095850c
More rebinds
2020-12-19 04:26:35 -05:00
Jack Huey
af3b1cb0b5
Change potentially_qualified to be defined on Binder<PredicateAtom>
2020-12-18 15:57:12 -05:00
Jack Huey
328fcee4af
Make BoundRegion have a kind of BoungRegionKind
2020-12-18 15:27:28 -05:00
Dylan DPC
da89dbb41a
Rollup merge of #80046 - camelid:diag-docs, r=lcnr
...
Add more documentation to `Diagnostic` and `DiagnosticBuilder`
cc `@estebank`
2020-12-18 00:30:20 +01:00
Camelid
10487cd784
Fix typo in method name
...
unsuccessfull -> unsuccessful
2020-12-16 14:59:12 -08:00
Jack Huey
ed80815bf2
Move binder for dyn to each list item
2020-12-11 15:02:46 -05:00
Matthias Krüger
20f8538d1f
simplify if let Some(_) = x to if x.is_some() (clippy::redundant_pattern_matching)
2020-12-08 20:27:49 +01:00
Matthias Krüger
1734f9c291
remove redundant clones
2020-12-05 12:59:54 +01:00
Benjamin Peterson
76ff0f408a
The details of higher-rank sub are in the rustc book not a doc module.
2020-12-03 23:38:36 -06:00
Bastian Kauschke
806c7281ec
add comment to visit_ct_substs
2020-12-02 16:41:01 +01:00
Santiago Pastorino
37354ebc97
Revert "Auto merge of #79209 - spastorino:trait-inheritance-self, r=nikomatsakis"
...
This reverts commit 349b3b324d
, reversing
changes made to b776d1c3e3
.
2020-12-02 12:19:38 -03:00
Bastian Kauschke
71d7550350
const_evaluatable_checked: fix occurs check
2020-12-02 15:31:27 +01:00
Santiago Pastorino
ada7c1f429
Return FxIndexSet instead of FxHashSet to avoid order errors on different platforms
2020-11-27 18:45:34 -03:00
Santiago Pastorino
28446ef19e
Inline elaborate_trait_refs_that_define_assoc_type into transitive_bounds_that_define_assoc_type
2020-11-27 11:23:52 -03:00
Santiago Pastorino
9e0538bd07
Document elaborate_trait_refs_that_define_assoc_type
2020-11-27 11:23:51 -03:00
Santiago Pastorino
2ca4964db5
Allow to self reference associated types in where clauses
2020-11-27 11:23:47 -03:00
Jonas Schievink
9b2117d1f6
Rollup merge of #77758 - Stupremee:turbofish-help-for-const, r=varkor
...
suggest turbofish syntax for uninferred const arguments
When not providing a const generic value, and it can not be inferred, the following suggestion is suggested:
![image](https://user-images.githubusercontent.com/39732259/95616180-af127b80-0a69-11eb-8877-551c815f9627.png )
Resolves #76737
r? ``@varkor``
2020-11-26 13:39:00 +01:00
Jonas Schievink
ee6f42ba94
Thread Constness
through selection
2020-11-22 02:13:53 +01:00
LeSeulArtichaut
f59d03038c
Move rustc_ty
-> rustc_ty_utils
2020-11-19 21:57:29 +01:00
Justus K
4379a43e46
Suggest turbofish for uninferred const argument
2020-11-18 19:23:22 +01:00
bors
e0ef0fc392
Auto merge of #78779 - LeSeulArtichaut:ty-visitor-return, r=oli-obk
...
Introduce `TypeVisitor::BreakTy`
Implements MCP rust-lang/compiler-team#383 .
r? `@ghost`
cc `@lcnr` `@oli-obk`
~~Blocked on FCP in rust-lang/compiler-team#383.~~
2020-11-17 12:24:34 +00:00
lcnr
a6cbd64dae
words
2020-11-16 22:42:09 +01:00
Bastian Kauschke
2bf93bd852
compiler: fold by value
2020-11-16 22:34:57 +01:00
LeSeulArtichaut
df6e87cc85
Use TypeVisitor::BreakTy
in UnresolvedTypeFinder
2020-11-14 21:20:10 +01:00
LeSeulArtichaut
e0f3119103
Introduce TypeVisitor::BreakTy
2020-11-14 20:25:27 +01:00
Guillaume Gomez
0b7a7930b4
Rollup merge of #78463 - varkor:placeholder-const, r=nikomatsakis
...
Add type to `ConstKind::Placeholder`
I simply threaded `<'tcx>` through everything that required it. I'm not sure whether this is the correct thing to do, but it seems to work.
r? `@nikomatsakis`
2020-11-13 15:26:14 +01:00
varkor
e24a4b4690
Add type to ConstKind::Placeholder
2020-11-12 15:39:55 +00:00
Jonas Schievink
9596e34ad4
Rollup merge of #76765 - guswynn:async_return, r=tmandry
...
Make it more clear what an about async fn's returns when referring to what it returns
see #76547
This is *likely* not the ONLY place that this happens to be unclear, but we can move this fn to rustc_middle or something like that and reuse it if need be, to apply it to more diagnostics
One outstanding question I have is, if the fn returns (), should I make the message more clear (what about `fn f()` vs `fn f() -> ()`, can you tell those apart in the hir?)
R? `@tmandry`
`@rustbot` modify labels +A-diagnostics +T-compiler
2020-11-10 14:45:09 +01:00
Matthias Krüger
bcd2f2df67
fix a couple of clippy warnings:
...
filter_next
manual_strip
redundant_static_lifetimes
single_char_pattern
unnecessary_cast
unused_unit
op_ref
redundant_closure
useless_conversion
2020-11-04 13:48:50 +01:00
LeSeulArtichaut
9433eb83fe
Remove implicit Continue
type
2020-10-30 12:27:47 +01:00
LeSeulArtichaut
4fe735b320
TypeVisitor: use ControlFlow
in rustc_{infer,lint,trait_selection}
2020-10-30 12:27:34 +01:00
Yuki Okushi
a7a0538802
Rollup merge of #78460 - varkor:turbofish-string-generic, r=lcnr
...
Adjust turbofish help message for const generics
Types are no longer special. (This message arguably only makes sense with `min_const_generics` or more, but we'll be there soon.)
r? @lcnr
2020-10-29 12:08:50 +09:00
varkor
a6d01da716
Remove irrelevant FIXME
2020-10-28 10:47:27 +00:00
Esteban Küber
28f02fbf3e
Suggest calling await on method call and field access
...
When encountering a failing method or field resolution on a `Future`,
look at the `Output` and try the same operation on it. If successful,
suggest calling `.await` on the `Future`.
This had already been introduced in #72784 , but at some point they
stopped working.
2020-10-26 08:11:43 -07:00
Dylan DPC
463b6cc0e1
Rollup merge of #78268 - JohnTitor:issue-78262, r=estebank
...
Do not try to report on closures to avoid ICE
Fixes #78262
2020-10-26 03:09:11 +01:00
Yuki Okushi
7b4c397b73
Do not try to report on closures to avoid ICE
2020-10-25 11:19:49 +09:00
Esteban Küber
f5d7443a6b
Suggest semicolon removal and boxing when appropriate
2020-10-23 08:06:41 -07:00
Esteban Küber
c5485115dc
Add more .await
suggestions on E0308
2020-10-23 08:06:41 -07:00
Esteban Küber
62ba365195
Review comments: use newtype instead of bool
2020-10-23 08:06:41 -07:00
Esteban Küber
671d7c4afb
Account for possible boxable impl Future
in semicolon removal suggestions
2020-10-23 08:06:13 -07:00
David Tolnay
b0059500f6
Reduce diagram mess in 'match arms have incompatible types' error
2020-10-22 16:16:02 -07:00
Bastian Kauschke
8752a560b9
Lift: take self by value
2020-10-21 23:59:35 +02:00
Esteban Küber
88f5e110db
review comments
2020-10-20 09:26:15 -07:00
Esteban Küber
ae0e3d0511
Tweak "object unsafe" errors
...
Fix #77598 .
2020-10-20 09:26:14 -07:00
SNCPlay42
c146e8c54f
revert workaround #73027
2020-10-19 21:11:40 +01:00
Gus Wynn
20e032e650
Make it more clear when complaining about async fn's return types
2020-10-17 15:57:47 -07:00
Jack Huey
f6a53b4c69
Review comments
2020-10-16 15:14:38 -04:00
Jack Huey
eba10270c6
map_bound_ref -> rebind
2020-10-16 14:29:21 -04:00
Jack Huey
dd5c9bf139
Use map_bound(_ref) instead of Binder::bind when possible
2020-10-16 12:58:50 -04:00
est31
9ed2177d86
Remove unused code from rustc_infer
2020-10-14 04:14:32 +02:00
est31
a0fc455d30
Replace absolute paths with relative ones
...
Modern compilers allow reaching external crates
like std or core via relative paths in modules
outside of lib.rs and main.rs.
2020-10-13 14:16:45 +02:00
Matthew Jasper
d4d9e7f67f
Remove unused part of return value from replace_bound_vars_with_placeholders
2020-10-06 11:19:30 +01:00
Matthew Jasper
f958e6c246
Separate bounds and predicates for associated/opaque types
2020-10-06 11:19:29 +01:00
Matthew Jasper
0eb87ed55f
Rename projection_predicates to item_bounds
2020-10-06 11:18:45 +01:00
bors
ea7e131435
Auto merge of #77171 - VFLashM:better_sso_structures, r=oli-obk
...
Better sso structures
This change greatly expands interface of MiniSet/MiniMap and renames them because they are no longer "Mini".
2020-10-05 17:18:01 +00:00
Dylan MacKenzie
c4d8089f00
Revert "Add an unused field of type Option<DefId>
to ParamEnv
struct."
...
This reverts commit ab83d372ed
.
2020-09-26 21:01:09 -07:00
Valerii Lashmanov
5c224a484d
MiniSet/MiniMap moved and renamed into SsoHashSet/SsoHashMap
...
It is a more descriptive name and with upcoming changes
there will be nothing "mini" about them.
2020-09-26 14:30:05 -05:00
Ralf Jung
9e02642fb3
Rollup merge of #77211 - est31:remove_unused_allow, r=oli-obk
...
Remove unused #[allow(...)] statements from compiler/
2020-09-26 12:58:34 +02:00
Ralf Jung
ac8169dc10
Rollup merge of #77093 - lcnr:const-generics-infer-warning, r=varkor
...
merge `need_type_info_err(_const)`
I hoped that this would automatically solve #76737 but it doesn't quite seem like it
fixes #77092
r? @varkor
2020-09-26 12:58:17 +02:00
Bastian Kauschke
9a607c0a27
unused into
2020-09-26 10:31:34 +02:00
Bastian Kauschke
32195ac8f4
rename functions
2020-09-26 10:28:15 +02:00
est31
12187b7f86
Remove unused #[allow(...)] statements from compiler/
2020-09-26 01:25:55 +02:00
marmeladema
9f50c49117
Implement Display
for DisambiguatedDefPathData
and DefPathData
2020-09-25 22:46:15 +01:00
marmeladema
f1878d19fa
Move from {{closure}}#0 syntax to {closure#0} for (def) path components
2020-09-25 22:46:14 +01:00
Jonas Schievink
6f3da3d53f
Rollup merge of #77121 - duckymirror:html-root-url, r=jyn514
...
Updated html_root_url for compiler crates
Closes #77103
r? @jyn514
2020-09-25 02:29:45 +02:00
Bastian Kauschke
e5430e5306
the two hardest things in programming, names and...
2020-09-24 22:01:46 +02:00
Erik Hofmayer
138a2e5eaa
/nightly/nightly-rustc
2020-09-23 21:51:56 +02:00
Erik Hofmayer
dd66ea2d3d
Updated html_root_url for compiler crates
2020-09-23 21:14:43 +02:00
Bastian Kauschke
0e84b61053
use relevant span when unifying ConstVarValue
s
2020-09-23 11:00:44 +02:00
Bastian Kauschke
3dbfdb0182
use the correct span when dealing with inference variables
2020-09-23 10:44:11 +02:00
Bastian Kauschke
0abb1abf04
unused path
2020-09-23 10:06:32 +02:00
Bastian Kauschke
45d92b43e3
merge need_type_info_err(_const)
2020-09-23 09:24:58 +02:00
Andreas Jonson
6586c37bec
Move MiniSet to data_structures
...
remove the need for T to be copy from MiniSet as was done for MiniMap
2020-09-23 08:09:16 +02:00
bors
6d3acf5129
Auto merge of #76928 - lcnr:opaque-types-cache, r=tmandry
...
cache types during normalization
partially fixes #75992
reduces the following test from 14 to 3 seconds locally.
cc `@Mark-Simulacrum` would it make sense to add that test to `perf`?
```rust
#![recursion_limit="2048"]
#![type_length_limit="112457564"]
pub async fn h0(v: &String, x: &u64) { println!("{} {}", v, x) }
pub async fn h1(v: &String, x: &u64) { h0(v, x).await }
pub async fn h2(v: &String, x: &u64) { h1(v, x).await }
pub async fn h3(v: &String, x: &u64) { h2(v, x).await }
pub async fn h4(v: &String, x: &u64) { h3(v, x).await }
pub async fn h5(v: &String, x: &u64) { h4(v, x).await }
pub async fn h6(v: &String, x: &u64) { h5(v, x).await }
pub async fn h7(v: &String, x: &u64) { h6(v, x).await }
pub async fn h8(v: &String, x: &u64) { h7(v, x).await }
pub async fn h9(v: &String, x: &u64) { h8(v, x).await }
pub async fn h10(v: &String, x: &u64) { h9(v, x).await }
pub async fn h11(v: &String, x: &u64) { h10(v, x).await }
pub async fn h12(v: &String, x: &u64) { h11(v, x).await }
pub async fn h13(v: &String, x: &u64) { h12(v, x).await }
pub async fn h14(v: &String, x: &u64) { h13(v, x).await }
pub async fn h15(v: &String, x: &u64) { h14(v, x).await }
pub async fn h16(v: &String, x: &u64) { h15(v, x).await }
pub async fn h17(v: &String, x: &u64) { h16(v, x).await }
pub async fn h18(v: &String, x: &u64) { h17(v, x).await }
pub async fn h19(v: &String, x: &u64) { h18(v, x).await }
macro_rules! async_recursive {
(29, $inner:expr) => { async { async_recursive!(28, $inner) }.await };
(28, $inner:expr) => { async { async_recursive!(27, $inner) }.await };
(27, $inner:expr) => { async { async_recursive!(26, $inner) }.await };
(26, $inner:expr) => { async { async_recursive!(25, $inner) }.await };
(25, $inner:expr) => { async { async_recursive!(24, $inner) }.await };
(24, $inner:expr) => { async { async_recursive!(23, $inner) }.await };
(23, $inner:expr) => { async { async_recursive!(22, $inner) }.await };
(22, $inner:expr) => { async { async_recursive!(21, $inner) }.await };
(21, $inner:expr) => { async { async_recursive!(20, $inner) }.await };
(20, $inner:expr) => { async { async_recursive!(19, $inner) }.await };
(19, $inner:expr) => { async { async_recursive!(18, $inner) }.await };
(18, $inner:expr) => { async { async_recursive!(17, $inner) }.await };
(17, $inner:expr) => { async { async_recursive!(16, $inner) }.await };
(16, $inner:expr) => { async { async_recursive!(15, $inner) }.await };
(15, $inner:expr) => { async { async_recursive!(14, $inner) }.await };
(14, $inner:expr) => { async { async_recursive!(13, $inner) }.await };
(13, $inner:expr) => { async { async_recursive!(12, $inner) }.await };
(12, $inner:expr) => { async { async_recursive!(11, $inner) }.await };
(11, $inner:expr) => { async { async_recursive!(10, $inner) }.await };
(10, $inner:expr) => { async { async_recursive!(9, $inner) }.await };
(9, $inner:expr) => { async { async_recursive!(8, $inner) }.await };
(8, $inner:expr) => { async { async_recursive!(7, $inner) }.await };
(7, $inner:expr) => { async { async_recursive!(6, $inner) }.await };
(6, $inner:expr) => { async { async_recursive!(5, $inner) }.await };
(5, $inner:expr) => { async { async_recursive!(4, $inner) }.await };
(4, $inner:expr) => { async { async_recursive!(3, $inner) }.await };
(3, $inner:expr) => { async { async_recursive!(2, $inner) }.await };
(2, $inner:expr) => { async { async_recursive!(1, $inner) }.await };
(1, $inner:expr) => { async { async_recursive!(0, $inner) }.await };
(0, $inner:expr) => { async { h19(&String::from("owo"), &0).await; $inner }.await };
}
async fn f() {
async_recursive!(14, println!("hello"));
}
fn main() {
let _ = f();
}
```
r? `@eddyb` requires a perf run.
2020-09-22 22:52:07 +00:00
ecstatic-morse
dcf4d1f2be
Rollup merge of #76888 - matthiaskrgr:clippy_single_match_2, r=Dylan-DPC
...
use if let instead of single match arm expressions
use if let instead of single match arm expressions to compact code and reduce nesting (clippy::single_match)
2020-09-21 20:40:55 -07:00
bors
45198456be
Auto merge of #76913 - vandenheuvel:performance_debug, r=lcnr
...
Fixing the performance regression of #76244
Issue https://github.com/rust-lang/rust/issues/74865 suggested that removing the `def_id` field from `ParamEnv` would improve performance. PR https://github.com/rust-lang/rust/pull/76244 implemented this change.
Generally, [results](https://perf.rust-lang.org/compare.html?start=80fc9b0ecb29050d45b17c64af004200afd3cfc2&end=5ef250dd2ad618ee339f165e9b711a1b4746887d ) were as expected: an instruction count decrease of about a percent. The instruction count for the unicode crates increased by about 3%, which `@nnethercote` speculated to be caused by a quirk of inlining or codegen. As the results were generally positive, and for chalk integration, this was also a step in the right direction, the PR was r+'d regardless.
However, [wall-time performance results](https://perf.rust-lang.org/compare.html?start=a055c5a1bd95e029e9b31891db63b6dc8258b472&end=7402a394471a6738a40fea7d4f1891666e5a80c5&stat=task-clock ) show a much larger performance degradation: 25%, as [mentioned](https://github.com/rust-lang/rust/pull/76244#issuecomment-694459840 ) by `@Mark-Simulacrum.`
This PR, for now, reverts #76244 and attempts to find out, which change caused the regression.
2020-09-22 00:22:24 +00:00