Esteban Küber
319dd6f139
When suggesting associated fn with type parameters, include in the structured suggestion
2020-02-04 18:20:10 -08:00
bors
5b0caef54a
Auto merge of #68377 - estebank:fn-obligations-spans, r=oli-obk
...
Tweak obligation error output
- Point at arguments or output when fn obligations come from them, or ident when they don't
- Point at `Sized` bound (fix #47990 )
- When object unsafe trait uses itself in associated item suggest using `Self` (fix #66424 , fix #33375 , partially address #38376 , cc #61525 )
- Point at reason in object unsafe trait with `Self` in supertraits or `where`-clause (cc #40533 , cc #68377 )
- On implicit type parameter `Sized` obligations, suggest `?Sized` (fix #57744 , fix #46683 )
2020-02-04 17:17:55 +00:00
bors
fc07615c49
Auto merge of #68601 - 0dvictor:split, r=tmandry
...
Split `join_codegen_and_link()` into two steps
`join_codegen_and_link()` is split to `join_codegen()` and `link()`.
2020-02-04 05:48:54 +00:00
Victor Ding
ae51d2ba32
Split join_codegen_and_link() into two steps
...
`join_codegen_and_link()` is split to `join_codegen()` and `link()`.
2020-02-04 11:09:50 +11:00
bors
42a0bd2091
Auto merge of #67668 - matthewjasper:or-patterns, r=pnkfelix
...
Implement MIR lowering for or-patterns
This is the last thing needed to get meaningful run-pass tests for or-patterns. There probably need to be more tests before stabilizing this, but the most important cases should have been covered.
Note: we can generate exponentially large MIR CFGs when using or-patterns containing bindings, type ascriptions, or that are for a match arm with a guard. `src/test/mir-opt/exponential-or.rs` shows the best case for what we currently do.
cc #54883
closes #60350
closes #67514
cc @Centril
r? @pnkfelix
2020-02-03 22:02:26 +00:00
matthewjasper
1d90ed6370
Apply suggestions from code review
...
Co-Authored-By: Mazdak Farrokhzad <twingoow@gmail.com>
2020-02-03 19:42:15 +00:00
Matthew Jasper
c7e6f88926
Add more tests for or-patterns
2020-02-03 19:42:15 +00:00
Esteban Küber
0e584114c6
Change wording for object unsafe because of assoc const
2020-02-03 10:54:16 -08:00
Dylan DPC
f17f97d36a
Rollup merge of #68798 - Centril:caller-loc-ctfe-rt-equiv, r=RalfJung
...
Test that `#[track_caller]` as `fn()` respects RT / CTFE equivalence
r? @RalfJung cc @anp @eddyb
2020-02-03 18:58:36 +01:00
Dylan DPC
95d1f6ffcd
Rollup merge of #68744 - JohnTitor:fix-ice-save-analysis, r=cramertj
...
Do not ICE in `type-alias-impl-trait` with save-analysis
FIxes #68621
Fixes #68750
2020-02-03 18:58:30 +01:00
Mazdak Farrokhzad
f0eec88581
track_caller test caller_location ctfe/rt equivalence wrt. fnptrs
2020-02-03 16:15:30 +01:00
bors
c58e09f138
Auto merge of #68778 - RalfJung:raw-addr-of, r=eddyb
...
add raw-addr-of variant to mir_raw_fat_ptr
As suggested at https://github.com/rust-lang/rust/pull/48300#discussion_r372520388
r? @eddyb
2020-02-03 09:54:09 +00:00
bors
0d34a87722
Auto merge of #68772 - matthewjasper:relate-opt, r=davidtwco
...
Avoid exponential behaviour when relating types
When equating bound types we check subtyping in both directions. Since closures are invariant in their substs, we end up comparing the two types an exponential number of times. If there are no bound variables this isn't needed.
Closes #68061
2020-02-03 06:38:34 +00:00
bors
a2e80300cd
Auto merge of #68756 - JohnTitor:fix-ice-save-analysis-2, r=davidtwco
...
Fix ICE with save-analysis
Fixes #68749
It should be fine since it's the same way as `visit_expr`.
2020-02-03 03:28:08 +00:00
bors
01db581942
Auto merge of #68735 - JohnTitor:fix-ice-0202, r=estebank
...
Use `next_point` to avoid ICE
Fixes #68730
r? @estebank (I think you're familiar with that)
2020-02-03 00:04:16 +00:00
Esteban Küber
b9c125af75
Deal with spans showing std lib
...
Address #53081
2020-02-02 13:51:23 -08:00
Esteban Küber
865216b3ad
Point at reason in object unsafe trait with Self in supertraits or where-clause
2020-02-02 13:45:41 -08:00
Esteban Küber
16d935e725
fix rebase
2020-02-02 12:50:07 -08:00
Esteban Küber
342db717e2
Account for ?Sized type parameter bounds
2020-02-02 11:53:10 -08:00
Esteban Küber
cb6dfeaf61
Suggest ?Sized on type parameters
2020-02-02 11:53:10 -08:00
Esteban Küber
542130bde9
add tests for structured suggestion
2020-02-02 11:53:10 -08:00
Esteban Küber
a52ec87a17
Use more appropriate spans on object unsafe traits and provide structured suggestions when possible
2020-02-02 11:53:10 -08:00
Esteban Küber
413bfa4b98
Wording changes to object unsafe trait errors
...
Stemming from the thread at https://twitter.com/indygreg/status/1223279056398929920
2020-02-02 11:53:10 -08:00
Esteban Küber
3ca1c5d5b5
Point at Sized requirements
...
Make #47990 easier to understand
2020-02-02 11:53:10 -08:00
Esteban Küber
144e259445
Slight rewording of diagnostic message
2020-02-02 11:53:10 -08:00
Esteban Küber
6870f79e9c
Use more accurate failed predicate spans
2020-02-02 11:53:09 -08:00
Esteban Küber
8d48597b76
Point at return type obligations instead of at fn ident
2020-02-02 11:52:34 -08:00
Esteban Küber
972ae5afe5
Point at the Sized obligation in where clauses
2020-02-02 11:52:34 -08:00
Esteban Küber
4b2f1db6e4
Tweak Self: Sized restriction diagnostic output
2020-02-02 11:52:34 -08:00
Esteban Küber
d137b7ac11
review comments
2020-02-02 11:52:34 -08:00
Esteban Küber
0eb29d1a44
fix test
2020-02-02 11:52:34 -08:00
Esteban Küber
d72bcdb42c
When object unsafe trait uses itself in associated item suggest using Self
2020-02-02 11:52:34 -08:00
Esteban Küber
1c9242f83f
Point at Sized bound
2020-02-02 11:52:34 -08:00
Esteban Küber
fca5c64abd
Point at arguments or output when fn obligations come from them, or ident when they don't
2020-02-02 11:52:33 -08:00
Ralf Jung
ee60158440
add raw-addr-of variant to mir_raw_fat_ptr
2020-02-02 20:51:24 +01:00
Mazdak Farrokhzad
5951cd3dda
Rollup merge of #68764 - Centril:self-semantic, r=petrochenkov
...
parser: syntactically allow `self` in all `fn` contexts
Part of https://github.com/rust-lang/rust/pull/68728 .
`self` parameters are now *syntactically* allowed as the first parameter irrespective of item context (and in function pointers). Instead, semantic validation (`ast_validation`) is used.
r? @petrochenkov
2020-02-02 14:15:52 +01:00
Mazdak Farrokhzad
2e1790dda1
Rollup merge of #68763 - JohnTitor:do-not-sugg-dup-bounds, r=estebank
...
Do not suggest duplicate bounds
Fixes #68205
Fixes #68695
r? @estebank
2020-02-02 14:15:51 +01:00
Mazdak Farrokhzad
3a7f1edd81
Rollup merge of #68760 - Tyg13:compile_fail_ui_test, r=Centril
...
Issue error on `compile-fail` header in UI test
Fixes #68732
r? @Centril
2020-02-02 14:15:49 +01:00
Mazdak Farrokhzad
71a6f58229
parser: address review comments re. self.
2020-02-02 13:32:37 +01:00
Matthew Jasper
a606ffdb17
Avoid exponential behaviour when relating types
2020-02-02 12:10:08 +00:00
Yuki Okushi
56ad8bcfe0
Do not suggest duplicate bounds
2020-02-02 18:38:23 +09:00
Mazdak Farrokhzad
8674efdb7c
parser: move restrictions re. self to ast_validation.
2020-02-02 10:33:55 +01:00
Mazdak Farrokhzad
00f0b0cd3a
pretty: print attrs in struct expr
2020-02-02 09:25:54 +01:00
Tyler Lanphear
f6c3894724
compiletest: error if compile-fail header in ui test.
2020-02-02 02:08:30 -05:00
bors
bc4a339064
Auto merge of #68672 - jonas-schievink:dedup-witness, r=Zoxc
...
Deduplicate types in the generator witness
For the `await-call-tree` benchmark this often reduces the types inside the witness from 12 to 2.
2020-02-02 03:02:41 +00:00
Yuki Okushi
c377ed606c
Fix ICE with save-analysis
2020-02-02 09:23:47 +09:00
Yuki Okushi
ae22bf9d42
Catch more ICEs
2020-02-02 09:02:54 +09:00
Yuki Okushi
87bb0c4389
Rollup merge of #68740 - JohnTitor:do-not-sugg-underscore, r=Centril
...
Do not suggest things named underscore
Fixes #68719
r? @estebank
2020-02-02 08:30:21 +09:00
Yuki Okushi
1529126411
Rollup merge of #68727 - xfix:remove-comment-about-pretty-printer-in-format-tests, r=jonas-schievink
...
Remove a comment about pretty printer in formatting tests
rustc is now using rustfmt, not the old formatter.
2020-02-02 08:30:18 +09:00
Yuki Okushi
b18b26924c
Rollup merge of #68681 - bobrippling:fix-matched-angle-brackets, r=Centril
...
Suggest path separator for single-colon typos
This commit adds guidance for when a user means to type a path, but ends
up typing a single colon, such as `<<Impl as T>:Ty>`.
This change seemed pertinent as the current error message is
particularly misleading, emitting `error: unmatched angle bracket`,
despite the angle bracket being matched later on, leaving the user to
track down the typo'd colon.
2020-02-02 08:30:11 +09:00