Commit Graph

17355 Commits

Author SHA1 Message Date
bors
8a13871b69 Auto merge of #100944 - nnethercote:shrink-thir-Expr, r=cjgillot
Shrink `thir::Expr`

r? `@cjgillot`
2022-08-26 10:00:27 +00:00
Sébastien Marie
908ac84662 openbsd: rustc_target: reorder spec by name 2022-08-26 06:15:54 +00:00
bors
983f4daddf Auto merge of #100705 - compiler-errors:issue-100620, r=oli-obk
Avoid reporting overflow in `is_impossible_method`

Fixes #100620

We're evaluating a new predicate in a different param-env than it was checked during typeck, so be more careful about handling overflow errors. Instead of using `FulfillmentCtxt`, using `InferCtxt::evaluate_obligation` by itself will give us back the overflow error, so we can throw it away properly.

This may give us more false-positives, but it doesn't regress the `<HashMap as Iterator>::rev` example that originally motivated adding `is_impossible_method` in the first place.
2022-08-26 06:05:06 +00:00
Michael Goulet
48b3d8aa82 Drive-by: same_type_modulo_infer should handle ReVar == ReVar 2022-08-26 04:42:53 +00:00
Michael Goulet
cfd47afa19 Erase late bound regions before comparing types in suggest_dereferences 2022-08-26 04:42:36 +00:00
AndyJado
622217da59 diag-mig 2022-08-26 10:32:59 +08:00
Michael Goulet
448c6a4db7 Suggest returning closure as impl Fn 2022-08-26 01:25:56 +00:00
Nicholas Nethercote
f974617bda Move ArgAbi::pad_i32 into PassMode::Cast.
Because it's only needed for that variant. This shrinks the types and
clarifies the logic.
2022-08-26 11:12:36 +10:00
Nicholas Nethercote
b853e8a619 Turn ArgAbi::pad into a bool.
Because it's only ever set to `None` or `Some(Reg::i32())`.
2022-08-26 10:53:41 +10:00
Yuki Okushi
d4a5ec17a7 Rollup merge of #100978 - nnethercote:fix-100948, r=petrochenkov
Handle `Err` in `ast::LitKind::to_token_lit`.

Fixes #100948.

r? ``@petrochenkov``
2022-08-26 09:51:46 +09:00
Yuki Okushi
ba31a9b505 Rollup merge of #100604 - dtolnay:okorerr, r=m-ou-se
Remove unstable Result::into_ok_or_err

Pending FCP: https://github.com/rust-lang/rust/issues/82223#issuecomment-1214920203

```@rustbot``` label +waiting-on-fcp
2022-08-26 09:51:44 +09:00
Yuki Okushi
55562c7ddc Rollup merge of #100034 - tmiasko:elaborate-box-derefs, r=oli-obk
Elaborate all box dereferences in `ElaborateBoxDerefs`

so that it is the only pass responsible for elaboration, instead of
splitting this responsibility between the `StateTransform` and
`ElaborateBoxDerefs`.
2022-08-26 09:51:42 +09:00
Yuki Okushi
28457e10f5 Rollup merge of #99920 - emarteca:custom-allocator-support, r=oli-obk
Custom allocator support in `rustc_serialize`

Adding support for `rustc_serialize` encode/decode for `Box` and `Vec` that use a custom allocator.
2022-08-26 09:51:41 +09:00
Yuki Okushi
f7f80c27f2 Rollup merge of #99064 - lyming2007:issue-97687-fix, r=estebank
distinguish the method and associated function diagnostic information

Methods are defined within the context of a struct and their first parameter is always self
Associated functions don’t take self as a parameter
```
	modified:   compiler/rustc_typeck/src/check/method/suggest.rs
	modified:   src/test/ui/auto-ref-slice-plus-ref.stderr
	modified:   src/test/ui/block-result/issue-3563.stderr
	modified:   src/test/ui/issues/issue-28344.stderr
	modified:   src/test/ui/suggestions/dont-suggest-pin-array-dot-set.stderr
	modified:   src/test/ui/suggestions/suggest-methods.stderr
	modified:   src/test/ui/traits/trait-upcasting/subtrait-method.stderr
```
2022-08-26 09:51:40 +09:00
Nicholas Nethercote
feeaa4db3c Simplify arg capacity calculations.
Currently they try to be very precise. But they are wrong, i.e. they
don't match what's happening in the loop below. This code isn't hot
enough for it to matter that much.
2022-08-26 10:45:45 +10:00
Nicholas Nethercote
b75b3b3afe Change FnAbi::args to a boxed slice. 2022-08-26 10:30:36 +10:00
Nicholas Nethercote
4df7bffa95 Change FnAbi::fixed_count to a u32. 2022-08-26 10:29:40 +10:00
Michael Goulet
e5602cb2a0 Add and use ObligationCtxt::new_in_snapshot 2022-08-26 00:10:38 +00:00
Nicholas Nethercote
e4bf113027 Box CastTarget within PassMode.
Because `PassMode::Cast` is by far the largest variant, but is
relatively rare.

This requires making `PassMode` not impl `Copy`, and `Clone` is no
longer necessary. This causes lots of sigil adjusting, but nothing very
notable.
2022-08-26 09:35:28 +10:00
Michael Goulet
fee9e9b9d3 Do not leak variables from probe 2022-08-25 23:32:46 +00:00
Michael Goulet
075b3ce89d Attempt to normalize FnDef signature in InferCtxt::cmp 2022-08-25 23:32:46 +00:00
Michael Goulet
e69cad449a Use real inference variable in build_fn_sig_ty 2022-08-25 23:32:46 +00:00
Michael Goulet
c655d4b233 Don't create an extra infcx in report_closure_arg_mismatch 2022-08-25 23:32:46 +00:00
Nicholas Nethercote
263c426bfd Add size assertions for FnAbi and ArgAbi. 2022-08-26 09:30:30 +10:00
Sikkema, Isaac
06139e57d5 use File::options() instead of File::create() 2022-08-25 18:00:45 -04:00
bors
cfb5ae26a4 Auto merge of #100748 - SparrowLii:query_depth, r=cjgillot
add `depth_limit` in `QueryVTable` to avoid entering a new tcx in `layout_of`

Fixes #49735
Updates #48685

The `layout_of` query needs to check whether it overflows the depth limit, and the current implementation needs to create a new `ImplicitCtxt` inside `layout_of`. However, `start_query` will already create a new `ImplicitCtxt`, so we can check the depth limit in `start_query`.

We can tell whether we need to check the depth limit simply by whether the return value of `to_debug_str` of the query is `layout_of`. But I think adding the `depth_limit` field in `QueryVTable` may be more elegant and more scalable.
2022-08-25 21:27:38 +00:00
Ellen Arteca
258d3672f0 Adding support for rustc_serialize encode and decode for Box and Vec that use a custom allocator 2022-08-25 20:19:49 +00:00
Michael Goulet
c3f568b331 Do not report too many expr field candidates 2022-08-25 18:59:48 +00:00
Nathan Stocks
82d609c8df have LangItemError derive everything LangItem does 2022-08-25 11:06:45 -06:00
Nathan Stocks
6cdfdd02f6 adjust to new error value 2022-08-25 11:06:45 -06:00
Nathan Stocks
30c7506655 allow non-monomorphize modules to access hard-coded error message through new struct, use fluent message in monomorphize 2022-08-25 11:06:45 -06:00
Nathan Stocks
33cbbc2789 remove stray comment 2022-08-25 11:06:45 -06:00
Nathan Stocks
40f44736e8 replace some usages of [Span]FatalError with error-specific types 2022-08-25 11:06:45 -06:00
Nathan Stocks
137f20c112 rebased: convert rustc_monomorphize errors to SessionDiagnostic 2022-08-25 11:06:32 -06:00
Adrian Tombu
d0401f7f47 Code cleaning 2022-08-25 19:04:00 +02:00
Adrian Tombu
bf7ce6a1a6 Replace spaghetti with a simple errors enum 2022-08-25 18:06:12 +02:00
Adrian Tombu
3f883b850d Start adding enum errors for deserialize_rlink 2022-08-25 18:06:12 +02:00
Adrian Tombu
1c575c5fe0 Use std::io::Error and remove useless to_string 2022-08-25 18:06:12 +02:00
Adrian Tombu
e7ded9246c Fixes fmt & SessionDiagnostic structs 2022-08-25 18:06:12 +02:00
Adrian Tombu
dbe39d835e Start moving rustc_driver to SessionDiagnostic 2022-08-25 18:06:11 +02:00
Esteban Küber
752902957b Provide structured suggestion for hashmap[idx] = val 2022-08-25 08:44:36 -07:00
Mara Bos
1b044da5bb Separate CountIsStar from CountIsParam in rustc_parse_format. 2022-08-25 14:49:09 +02:00
lcnr
ef7bda3b62 no unnormalized types for implied bounds 2022-08-25 11:12:04 +02:00
Tomasz Miąsko
4394ea8b82 Inline trivial From<Local> for Place<'_> impl 2022-08-25 10:38:00 +02:00
Tomasz Miąsko
58eabb291d Add method that applies DefUse effect 2022-08-25 10:38:00 +02:00
Tomasz Miąsko
4462b4af52 Elaborate all box dereferences in ElaborateBoxDerefs
so that it is the only pass responsible for elaboration, instead of
splitting this responsibility between the `StateTransform` and
`ElaborateBoxDerefs`.
2022-08-25 10:38:00 +02:00
bors
4d45b0745a Auto merge of #100571 - cjgillot:mir-cost-visit, r=compiler-errors
Check projection types before inlining MIR

Fixes https://github.com/rust-lang/rust/issues/100550

I'm very unhappy with this solution, having to duplicate MIR validation code, but at least it removes the ICE.

r? `@compiler-errors`
2022-08-25 08:16:43 +00:00
bors
76531befc4 Auto merge of #100436 - jyn514:macro-query-system, r=cjgillot
try and simplify some things in the query system
2022-08-25 05:35:27 +00:00
Tomasz Miąsko
31d892a942 Fix liveness analysis for yield terminators
A resume place is evaluated and assigned to only after a yield
terminator resumes. Ensure that locals used when evaluating the
resume place are live across the yield.
2022-08-25 07:12:16 +02:00
bors
9b9bc63599 Auto merge of #100977 - JohnTitor:rollup-8hc7rxh, r=JohnTitor
Rollup of 8 pull requests

Successful merges:

 - #99332 (Stabilize `#![feature(label_break_value)]`)
 - #99954 (let-else: break out to one scope higher for let-else)
 - #100188 (Parser will not suggest invalid expression when use public)
 - #100780 (save_analysis: Migrate diagnostic)
 - #100808 (Migrate `rustc_interface` diagnostics )
 - #100921 (Add a warning about `Option/Result::and()` being eagerly evaluated)
 - #100960 (rustdoc: ayu code color selector more specific)
 - #100964 (Sync rustc_codegen_cranelift)

Failed merges:

r? `@ghost`
`@rustbot` modify labels: rollup
2022-08-25 02:32:11 +00:00