est31
66c1fc4c87
Move orphan module-name/mod.rs files into module-name.rs files
2020-10-18 20:56:15 +02:00
bors
4d247ad7d3
Auto merge of #77306 - lcnr:inline-ok, r=eddyb
...
normalize substs while inlining
fixes #68347 or more precisely, this fixes the same ICE in rust analyser as veloren is pinned to a specific nightly
and had an error with the current one.
I didn't look into creating an MVCE here as that seems fairly annoying, will spend a few minutes doing so rn. (failed)
r? `@eddyb` cc `@bjorn3`
2020-10-18 16:10:00 +00: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
Dániel Buga
8c7a8a62dd
Turn Outcome into an opaque type to remove some runtime checks
2020-10-15 08:32:41 +02:00
bors
93deabce03
Auto merge of #77873 - sexxi-goose:use_tuple_inference_for_closures, r=nikomatsakis
...
Replace tuple of infer vars for upvar_tys with single infer var
This commit allows us to decide the number of captures required after
completing capture ananysis, which is required as part of implementing
RFC-2229.
closes https://github.com/rust-lang/project-rfc-2229/issues/4
r? `@nikomatsakis`
2020-10-15 04:17:10 +00:00
Roxane
a64ad51ff7
Address comments
2020-10-14 00:17:42 -04:00
est31
215cd36e1c
Remove unused code from remaining compiler crates
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
bors
abbdec3be6
Auto merge of #77792 - matthewjasper:instrument-trait-selection, r=oli-obk
...
Use tracing spans in rustc_trait_selection
Spans are very helpful when debugging this code. It's also hot enough to make a good benchmark.
r? `@oli-obk`
2020-10-12 23:04:55 +00:00
Yuki Okushi
687d7646de
Rollup merge of #77550 - lcnr:ty-dep-path-ct-cleanup, r=ecstatic-morse
...
add shims for WithOptConstParam query calls
r? @ecstatic-morse @eddyb
2020-10-13 04:07:50 +09:00
Matthew Jasper
b8d2560dca
Use tracing spans in rustc_trait_selection
2020-10-11 16:08:23 +01:00
Aman Arora
3c46fd67f8
traits diagnostics: Don't print closure/generator upvar_tys tuple
...
Co-authored-by: Roxane Fruytier <roxane.fruytier@hotmail.com>
2020-10-11 03:33:27 -04:00
Aman Arora
08d1ab0bf1
Always return tupled_upvar_tys for Closure/Generator consituent tys
...
Depending on if upvar_tys inferred or not, we were returning either an
inference variable which later resolves to a tuple or else the upvar tys
themselves
Co-authored-by: Roxane Fruytier <roxane.fruytier@hotmail.com>
2020-10-11 03:32:35 -04:00
Roxane
dc183702da
Replace tuple of infer vars for upvar_tys with single infer var
...
This commit allows us to decide the number of captures required after
completing capture ananysis, which is required as part of implementing
RFC-2229.
Co-authored-by: Aman Arora <me@aman-arora.com>
Co-authored-by: Jenny Wills <wills.jenniferg@gmail.com>
2020-10-11 03:32:35 -04:00
Dániel Buga
7993ddd89d
Add find_map_relevant_impl
2020-10-09 16:22:49 +02:00
Bastian Kauschke
f0487cee74
normalize substs during inlining
2020-10-07 10:04:08 +02:00
Bastian Kauschke
9c302f55bd
normalize in codegen_fulfill_obligations
2020-10-07 09:50:30 +02:00
Matthew Jasper
022c148fcd
Fix tests from rebase
2020-10-06 11:19:33 +01:00
Matthew Jasper
27534b3932
Fix rebase
2020-10-06 11:19:33 +01:00
Matthew Jasper
852073a7d2
Deduplicate item bounds after normalization
2020-10-06 11:19:32 +01:00
Matthew Jasper
e42c97919c
Don't require lifetime super-bounds on traits apply to trait objects of that trait
2020-10-06 11:19:32 +01:00
Matthew Jasper
e674cf0200
Normalize super trait bounds when confirming object candidates
2020-10-06 11:19:32 +01:00
Matthew Jasper
d08ab945de
Fix rebase
2020-10-06 11:19:32 +01:00
Matthew Jasper
6c4feb681f
Fix bootstrap
2020-10-06 11:19:32 +01:00
Matthew Jasper
ed32482534
Handle multiple trait-def projection candidates
2020-10-06 11:19:32 +01:00
Matthew Jasper
0dfa6ff3be
Avoid cycles from projection bounds
...
Only check the own predicates of associated types when confirming
projection candidates.
Also consider implied bounds when comparing trait and impl methods.
2020-10-06 11:19:32 +01:00
Matthew Jasper
596d6c4b3b
Avoid cycle with projections from object types
...
Normalizing `<dyn Iterator<Item = ()> as Iterator>::Item` no longer
requires selecting `dyn Iterator<Item = ()>: Iterator`. This was
previously worked around by using a special type-folder to normalize
things.
2020-10-06 11:19:31 +01:00
Matthew Jasper
34e5a4992c
Normalize projection bounds when considering candidates
...
This unfortunately requires some winnowing hacks to avoid
now ambiguous candidates.
2020-10-06 11:19:31 +01:00
Matthew Jasper
cfee49593d
Handle multiple applicable projection candidates
2020-10-06 11:19:31 +01:00
Matthew Jasper
bc08b791bc
Fix bugs in evaluating WellFormed predicates
...
- List the nestsed obligations in an order that works with the
single pass used by evaluation
- Propagate recursion depth correctly
2020-10-06 11:19:31 +01:00
Matthew Jasper
f52b2d8890
Avoid cycle in nested obligations for object candidate
...
Bounds of the form `type Future: Future<Result=Self::Result>` exist in
some ecosystem crates. To validate these bounds for trait objects we
need to normalize `Self::Result` in a way that doesn't cause a cycle.
2020-10-06 11:19:31 +01:00
Matthew Jasper
8787090964
Address review comments
2020-10-06 11:19:31 +01:00
Matthew Jasper
21eccbb587
Fix ICE
2020-10-06 11:19:30 +01:00
Matthew Jasper
042464f75a
Fix tests and bootstrap
2020-10-06 11:19:30 +01:00
Matthew Jasper
2bdf723da7
Ensure that associated types for trait objects satisfy their bounds
2020-10-06 11:19:30 +01:00
Matthew Jasper
0a76584dcc
Move some code from rustc_typeck to rustc_trait_selection
2020-10-06 11:19:30 +01: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
1b07991574
Check associated type bounds for object safety violations
2020-10-06 11:19:30 +01:00
Matthew Jasper
5b279c8016
Check opaque types satisfy their bounds
2020-10-06 11:19:30 +01:00
Matthew Jasper
b3057f4d5f
Check projections are well-formed when using projection candidates
2020-10-06 11:19:29 +01:00
Matthew Jasper
87f2f42dc2
Make projection wf check the predicates for the projection
2020-10-06 11:19:29 +01:00
Matthew Jasper
d297147e62
Split bounds from predicates
2020-10-06 11:19:22 +01:00
Matthew Jasper
0eb87ed55f
Rename projection_predicates to item_bounds
2020-10-06 11:18:45 +01:00
Yuki Okushi
2970af8e28
Rollup merge of #77559 - camelid:fix-rustdoc-warnings-invalid-rust-syntax, r=lcnr
...
Fix rustdoc warnings about invalid Rust syntax
2020-10-06 16:26:09 +09:00
Camelid
c8d25af698
Fixup
2020-10-05 15:07:27 -07: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
Bastian Kauschke
8160bfa39c
query_name_of_opt_const_arg -> query_name_opt_const_arg
2020-10-05 08:49:21 +02:00
Camelid
c877ff3664
Fix rustdoc warnings about invalid Rust syntax
2020-10-04 19:35:44 -07:00