Commit Graph

9421 Commits

Author SHA1 Message Date
Aaron Hill
9a299e4e21 Test trying to cfg-remove an if expression 2020-03-04 16:43:14 -05:00
Aaron Hill
e9ec47bb70 Test that stmt_expr_attrs properly gates if-attrs 2020-03-04 16:43:13 -05:00
Aaron Hill
e912d9d7ec Test #[allow(unused)] on if expression 2020-03-04 16:43:13 -05:00
Aaron Hill
f63b88c761 Permit attributes on 'if' expressions
Previously, attributes on 'if' expressions (e.g. #[attr] if true {})
were disallowed during parsing. This made it impossible for macros to
perform any custom handling of such attributes (e.g. stripping them
away), since a compilation error would be emitted before they ever had a
chance to run.

This PR permits attributes on 'if' expressions ('if-attrs' from here on).
Both built-in attributes (e.g. `#[allow]`, `#[cfg]`) are supported.

We still do *not* accept attributes on 'other parts' of an if-else
chain. That is, the following code snippet still fails to parse:

```rust
if true {} #[attr] else if false {} else #[attr] if false {} #[attr]
else {}
```
2020-03-04 16:43:13 -05:00
Jonas Schievink
3b6a5fbece Move formatting to different function
This slims down the generator MIR considerably, which makes debugging
easier
2020-03-04 21:32:57 +01:00
Esteban Küber
81f435dd37 On mismatched delimiters, only point at empty blocks that are in the same line 2020-03-04 11:05:17 -08:00
Matthew Kuo
ea7b3c3c7b fix tidy error 2020-03-04 02:05:23 -06:00
Matthew Kuo
b4788a739b test(pattern): harden tests for or-patterns with slice-patterns
Some of the nested OR paths were being missed
2020-03-04 01:33:32 -06:00
Matthew Kuo
5456114858 test(pattern): add tests for combinations of pattern features
Reference issue #67311

Tests combinations of the following pattern features:
- bindings_after_at
- or_patterns
- slice_patterns
- box_patterns
2020-03-04 01:17:41 -06:00
Mazdak Farrokhzad
cc9aad452a resolve, inconsistent binding mode: tweak wording. 2020-03-04 03:58:52 +01:00
bors
592e9c3700 Auto merge of #69678 - Dylan-DPC:rollup-yoaueud, r=Dylan-DPC
Rollup of 6 pull requests

Successful merges:

 - #69565 (miri engine: turn some debug_assert into assert)
 - #69621 (use question mark operator in a few places.)
 - #69650 (cleanup more iterator usages (and other things))
 - #69653 (use conditions directly)
 - #69665 (Invoke OptimizerLastEPCallbacks in PreLinkThinLTO)
 - #69670 (Add explanation for E0379)

Failed merges:

r? @ghost
2020-03-03 23:26:38 +00:00
Dylan DPC
587ca17cdb Rollup merge of #69665 - tmiasko:new-pass-manager-thin-lto-opt, r=nikic
Invoke OptimizerLastEPCallbacks in PreLinkThinLTO

The default ThinLTO pre-link pipeline does not include optimizer last
extension points. Thus, when using the new LLVM pass manager & ThinLTO
& sanitizers on any opt-level different from zero, the sanitizer
function passes would be omitted from the pipeline.

Add optimizer last extensions points manually to the pipeline, but guard
registration with stage check in the case this behaviour changes in the
future.
2020-03-03 21:26:16 +01:00
bors
4ad6248825 Auto merge of #69506 - Centril:stmt-semi-none, r=petrochenkov
encode `;` stmt without expr as `StmtKind::Empty`

Instead of encoding `;` statements without a an expression as a tuple in AST, encode it as `ast::StmtKind::Empty`.

r? @petrochenkov
2020-03-03 19:57:07 +00:00
12101111
84349cc564 Remove trailing whitespace. 2020-03-03 19:42:27 +08:00
12101111
89aebbdd7b Only run this test on musl 2020-03-03 19:17:24 +08:00
Yuki Okushi
45a30cdf1d Update tests 2020-03-03 18:22:05 +09:00
Yuki Okushi
321d90e1d6 Remove the no_debug feature 2020-03-03 18:22:05 +09:00
Yuki Okushi
9f3a192327 Rollup merge of #69620 - thekuom:doc/61137-add-long-error-code-e0719, r=davidtwco
doc(librustc_error_codes): add long error explanation for E0719

Reference issue #61137

- Updated error_codes.rs
- Added E0719.md in error_codes
- Updated necessary test .stderr files
2020-03-03 17:50:10 +09:00
Yuki Okushi
4699b29a04 Rollup merge of #69609 - TimDiekmann:excess, r=Amanieu
Remove `usable_size` APIs

This removes the usable size APIs:
- remove `usable_size` (obv)
- change return type of allocating methods to include the allocated size
- remove `_excess` API

r? @Amanieu
closes rust-lang/wg-allocators#17
2020-03-03 17:50:06 +09:00
12101111
7ca1b2f504 Don't use static crt by default when build proc-macro. 2020-03-03 16:17:15 +08:00
Tomasz Miąsko
52c5f2a577 Add test for -Znew-llvm-pass-manager -Clto=thin -Zsanitizer=...
Additionally verify that the current implementation of LLVM version
check (which uses lexicographic ordering) is good enough to exclude
versions before LLVM 9, where the new LLVM pass manager is unsupported.
2020-03-03 08:41:08 +01:00
CAD97
b3777c952f Remove chalk integration 2020-03-02 18:11:53 -05:00
Tim Diekmann
d8e3557dba Remove usable_size APIs 2020-03-03 00:08:24 +01:00
bors
18c275b423 Auto merge of #69635 - Dylan-DPC:rollup-2oh8uu5, r=Dylan-DPC
Rollup of 6 pull requests

Successful merges:

 - #68682 (Add documentation to compiler intrinsics)
 - #69544 (Unrevert "Remove `checked_add` in `Layout::repeat`")
 - #69617 (constify mem::forget)
 - #69622 (Rename `syntax` in librustc_ast/README.md)
 - #69623 (stash API: remove panic to fix ICE.)
 - #69624 (Toolstate: Don't block beta week on already broken tools.)

Failed merges:

 - #69626 (Toolstate: don't duplicate nightly tool list.)

r? @ghost
2020-03-02 12:48:26 +00:00
Dylan DPC
0255561dea Rollup merge of #69623 - Centril:fix-69396-tmp, r=petrochenkov
stash API: remove panic to fix ICE.

Implements the temporary solution suggested in https://github.com/rust-lang/rust/pull/69537#issuecomment-593143975.
Fixes https://github.com/rust-lang/rust/issues/69396.

r? @petrochenkov
2020-03-02 13:42:41 +01:00
Amanieu d'Antras
01d04944ce Apply review feedback 2020-03-02 11:43:07 +00:00
Amanieu d'Antras
35349abeb3 Ignore broken no-landing-pads test 2020-03-02 11:43:07 +00:00
bors
c839a7b4c2 Auto merge of #69257 - RalfJung:layout-visitor, r=eddyb
Adjust Miri value visitor, and doc-comment layout components

I realized that I still didn't have quite the right intuition for how our `LayoutDetails` work, so I had to adjust the Miri value visitor to the things I understood better now. I also added some doc-comments to `LayoutDetails` as a hopefully canonical place to note such things.

The main visitor change is that we *first* look at all the fields (according to `FieldPlacement`), and *then* check the variants and handle `Multiple` appropriately. I did not quite realize how orthogonal "fields" and "variants" are.
I also moved the check for the scalar ABI to *after* checking all the fields; this leads to better (more type-driven) error messages.

And it looks like we can finally remove that magic hack for `ty::Generator`. :D

r? @oli-obk for the Miri/visitor changes and @eddyb for the layout docs
The Miri PR is at: https://github.com/rust-lang/miri/pull/1178
2020-03-02 09:37:35 +00:00
Mazdak Farrokhzad
df20036848 stash API: remove panic to fix ICE. 2020-03-02 00:07:23 +01:00
Mazdak Farrokhzad
176fe3f8ac encode ; stmt w/o expr as StmtKind::Empty 2020-03-01 23:02:17 +01:00
Matthew Jasper
ebc86b441d Fix use of has_infer_types
* Add a new method `has_infer_types_or_consts` that's used instead most
  of the time, since there's generally no reason to only consider types.
*  Remove use of `has_closure_types`, because closures are no longer
  implicitly linked to the `InferCtxt`.
2020-03-01 21:42:34 +00:00
Matthew Kuo
275dac7bfb doc(librustc_error_codes): add long error explanation for E0719
Progresses #61137
2020-03-01 15:17:08 -06:00
Esteban Küber
7b6f5ed956 delay_span_bug when codegen cannot select obligation
Fix #69602, introduced in #60126 by letting the compiler continue past
type checking after encountering errors.
2020-03-01 10:46:07 -08:00
Yuki Okushi
47d87d7ca5 Rollup merge of #69605 - JohnTitor:opt-def-id, r=petrochenkov
Use `opt_def_id()` over `def_id()`

Fixes #69588
2020-03-01 19:28:15 +09:00
Yuki Okushi
9801696214 Rollup merge of #69583 - LeSeulArtichaut:ice-69378, r=Centril
Do not ICE on invalid type node after parse recovery

Closes #69378.
r? @estebank
2020-03-01 19:28:13 +09:00
Yuki Okushi
f9c8c49c0b Use opt_def_id() over def_id() 2020-03-01 15:15:29 +09:00
Mazdak Farrokhzad
2746e12948 check_binding_alt_eq_ty: improve precision wrt. if let. 2020-03-01 03:52:45 +01:00
Vadim Petrochenkov
e08c279eac Rename syntax to rustc_ast in source code 2020-02-29 21:59:09 +03:00
Vadim Petrochenkov
6054a30370 Make it build again 2020-02-29 20:47:10 +03:00
Yuki Okushi
c55df3786a Make rustc_attrs tracking issue None 2020-03-01 00:48:14 +09:00
bors
e9bca510fe Auto merge of #69260 - GuillaumeGomez:create-E0747-error-code, r=varkor,estebank
Create E0747 error code for unterminated raw strings

Reopening of #66035.

r? @estebank
2020-02-29 13:59:45 +00:00
LeSeulArtichaut
febf72861b Add regression test 2020-02-29 14:38:39 +01:00
Matthew Jasper
cbf5f7d23c Use TypeRelating for instantiating query responses 2020-02-29 12:28:32 +00:00
Ralf Jung
bfe593e03a clarify a comment in the test 2020-02-29 09:29:51 +01:00
Ralf Jung
729f4cd9ae we cannot short-circuit just becuase the Abi seems harmless
also add tests for ScalarPair enums
2020-02-29 09:27:25 +01:00
Ralf Jung
b133d6776f make it even more conservative, and note some FIXMEs 2020-02-29 09:27:25 +01:00
Ralf Jung
df6a3a0ed2 test some more things that should not panic 2020-02-29 09:27:25 +01:00
Ralf Jung
503026b622 mem::zeroed/uninit: panic on types that do not permit zero-initialization 2020-02-29 09:27:25 +01:00
bors
55aee8d496 Auto merge of #69255 - estebank:e0599-details, r=varkor
Add more context to E0599 errors

Point at the intermediary unfulfilled trait bounds.

Fix #52523, fix #61661, cc #36513, fix #68131, fix #64417, fix #61768, cc #57457, cc #9082, fix #57994, cc #64934, cc #65149.
2020-02-29 03:52:53 +00:00
Esteban Küber
2fb35adc48 Ignore output for some platforms with diverging test output
Get around #53081.
2020-02-28 12:01:29 -08:00