Commit Graph

98766 Commits

Author SHA1 Message Date
Matthew Jasper
beb2f5b8ff Remove Ident::{gensym, is_gensymed}
`gensym_if_underscore` still exists. The symbol interner can still
create arbitray gensyms, this is just not exposed publicly.
2019-09-05 15:07:16 +01:00
Matthew Jasper
2a82aec36a Move tests for unit tests to their own directory 2019-09-05 15:07:16 +01:00
Matthew Jasper
6fcdb36ccb Make use of hygiene in AST passes 2019-09-05 15:07:16 +01:00
Matthew Jasper
4082cd95a8 Allow ast passes to create hygienic spans 2019-09-05 15:07:16 +01:00
Matthew Jasper
0133941f47 Add an ExpnKind for AST passes 2019-09-05 15:07:16 +01:00
bors
618768492f Auto merge of #64172 - Centril:rollup-8i8oh54, r=Centril
Rollup of 11 pull requests

Successful merges:

 - #62848 (Use unicode-xid crate instead of libcore)
 - #63774 (Fix `window.hashchange is not a function`)
 - #63930 (Account for doc comments coming from proc macros without spans)
 - #64003 (place: Passing `align` = `layout.align.abi`, when also passing `layout`)
 - #64030 (Fix unlock ordering in SGX synchronization primitives)
 - #64041 (use TokenStream rather than &[TokenTree] for built-in macros)
 - #64051 (Add x86_64-linux-kernel target)
 - #64063 (Fix const_err with `-(-0.0)`)
 - #64083 (Point at appropriate arm on type error on if/else/match with one non-! arm)
 - #64100 (Fix const eval bug breaking run-pass tests in Miri)
 - #64157 (Opaque type locations in error message for clarity.)

Failed merges:

r? @ghost
2019-09-05 12:41:41 +00:00
Guillaume Gomez
d4d5aa436d Fix invalid span generation when it should be div 2019-09-05 14:15:58 +02:00
Guillaume Gomez
c9bd2f73a3 Add missing code examples on Iterator trait 2019-09-05 13:38:11 +02:00
Mazdak Farrokhzad
afc7e0e9d3
Rollup merge of #64157 - gilescope:opaque-type-location, r=cramertj,Centril
Opaque type locations in error message for clarity.

Attempts to fix #63167
2019-09-05 12:11:19 +02:00
Mazdak Farrokhzad
23265741d3
Rollup merge of #64100 - wesleywiser:fix_miri_const_eval, r=oli-obk
Fix const eval bug breaking run-pass tests in Miri

PR #63580 broke miri's ability to run the run-pass test suite with MIR
optimizations enabled. The issue was that we weren't properly handling
the substs and DefId associated with a Promoted value. This didn't break
anything in rustc because in rustc this code runs before the Inliner
pass which is where the DefId and substs can diverge from their initial
values. It broke Miri though because it ran this code again after
running the optimization pass.

r? @oli-obk
cc @RalfJung
2019-09-05 12:11:17 +02:00
Mazdak Farrokhzad
59237ec665
Rollup merge of #64083 - estebank:tweak-e0308, r=oli-obk
Point at appropriate arm on type error on if/else/match with one non-! arm

Fix https://github.com/rust-lang/rust/issues/61281.
2019-09-05 12:11:16 +02:00
Mazdak Farrokhzad
2238d19515
Rollup merge of #64063 - JohnTitor:fix-const-err, r=oli-obk
Fix const_err with `-(-0.0)`

Fixes #64059

r? @oli-obk
2019-09-05 12:11:14 +02:00
Mazdak Farrokhzad
043159f918
Rollup merge of #64051 - alex:linux-kernel-module-target, r=joshtriplett
Add x86_64-linux-kernel target

This adds a target specification for Linux kernel modules on x86_64, as well as base code that can be shared with other architectures.

I wasn't totally sure about what the best name for this was.

There's one open question on whether we should use the LLVM generic x86_64-elf target, or the same one used for the Linux userspace.

r? @joshtriplett
2019-09-05 12:11:13 +02:00
Mazdak Farrokhzad
fd46f6ed41
Rollup merge of #64041 - matklad:token-stream-tt, r=petrochenkov
use TokenStream rather than &[TokenTree] for built-in macros

That way, we don't loose the jointness info
2019-09-05 12:11:11 +02:00
Mazdak Farrokhzad
5649131423
Rollup merge of #64030 - jethrogb:jb/sgx-sync-issues, r=alexcrichton
Fix unlock ordering in SGX synchronization primitives

Avoid holding spinlocks during usercalls. This should avoid deadlocks in certain pathological scheduling cases.

cc @mzohreva @parthsane

r? @alexcrichton
2019-09-05 12:11:10 +02:00
Mazdak Farrokhzad
085c9e691e
Rollup merge of #64003 - Dante-Broggi:place-align-in-layout, r=matthewjasper
place: Passing `align` = `layout.align.abi`, when also passing `layout`

Of the calls changed:
7/12 use `align` = `layout.align.abi`.
`from_const_alloc` uses `alloc.align`, but that is `assert_eq!` to `layout.align.abi`.
only 4/11 use something interesting for `align`.
2019-09-05 12:11:08 +02:00
Mazdak Farrokhzad
d855bde457
Rollup merge of #63930 - estebank:rustdoc-ice, r=GuillaumeGomez
Account for doc comments coming from proc macros without spans

Fix https://github.com/rust-lang/rust/issues/63821.
2019-09-05 12:11:07 +02:00
Mazdak Farrokhzad
6da74a2605
Rollup merge of #63774 - chocol4te:fix_63707, r=GuillaumeGomez
Fix `window.hashchange is not a function`

Closes #63707.
2019-09-05 12:11:05 +02:00
Mazdak Farrokhzad
a8d4e4f435
Rollup merge of #62848 - matklad:xid-unicode, r=petrochenkov
Use unicode-xid crate instead of libcore

This PR proposes to remove `char::is_xid_start` and `char::is_xid_continue` functions from `libcore` and use `unicode_xid` crate from crates.io (note that this crate is already present in rust-lang/rust's Cargo.lock).

Reasons to do this:

* removing rustc-binary-specific stuff from libcore
* making sure that, across the ecosystem, there's a single definition of what rust identifier is (`unicode-xid` has almost 10 million downs, as a `proc_macro2` dependency)
* making it easier to share `rustc_lexer` crate with rust-analyzer: no need to `#[cfg]` if we are building as a part of the compiler

Reasons not to do this:

* increased maintenance burden: we'll need to upgrade unicode version both in libcore and in unicode-xid. However, this shouldn't be a too heavy burden: just running `./unicode.py` after new unicode version. I (@matklad) am ready to be a t-compiler side maintainer of unicode-xid. Moreover, given that xid-unicode is an important dependency of syn, *someone* needs to maintain it anyway.
* xid-unicode implementation is significantly slower. It uses a more compact table with binary search, instead of a trie. However, this shouldn't matter in practice, because we have fast-path for ascii anyway, and code size savings is a plus. Moreover, in #59706 not using libcore turned out to be *faster*, presumably beacause checking for whitespace with match is even faster.

<details>

<summary>old description</summary>

Followup to #59706

r? @eddyb

Note that this doesn't actually remove tables from libcore, to avoid conflict with https://github.com/rust-lang/rust/pull/62641.

cc https://github.com/unicode-rs/unicode-xid/pull/11

</details>
2019-09-05 12:11:04 +02:00
Lzu Tao
bafff2d2c5 Update Clippy 2019-09-05 09:36:49 +00:00
bors
9776723881 Auto merge of #62800 - albins:polonius-initialization-1, r=nikomatsakis
Extend Polonius fact generation for (some) move tracking

This PR will extend rustc to emit facts used for tracking moves and initialization in Polonius. It is most likely the final part of my master's thesis work.
2019-09-05 08:51:38 +00:00
Mazdak Farrokhzad
16ba5029a1 or-patterns: fix fallout from #664128. 2019-09-05 09:17:19 +02:00
Ximin Luo
485697bf42 Better way of conditioning the sanitizer builds
Previously the build would take the presence of the LLVM_CONFIG envvar to
mean that the sanitizers should be built, but this is a common envvar that
could be set for reasons unrelated to the rustc sanitizers.

This commit adds a new envvar RUSTC_BUILD_SANITIZERS and uses it instead.
2019-09-05 00:14:09 -07:00
Esteban Küber
24d0a01b75 review comment 2019-09-05 00:01:37 -07:00
Mazdak Farrokhzad
0341b78044 resolve: bool -> enum PatBoundCtx 2019-09-05 08:33:09 +02:00
Mazdak Farrokhzad
a7db1a4861 or-patterns: address review comments. 2019-09-05 08:33:09 +02:00
Mazdak Farrokhzad
d70b0c5d42 or-patterns: fix pprust-expr-roundtrip due to AST change. 2019-09-05 08:33:09 +02:00
Mazdak Farrokhzad
be95dee5a1 or-patterns: adjust save_analysis wrt. process_var_decl{_multi}. 2019-09-05 08:33:09 +02:00
Mazdak Farrokhzad
a867c5f9cc resolve: merge resolve_pats and resolve_pattern_top. 2019-09-05 08:33:09 +02:00
Mazdak Farrokhzad
d8ef907886 or-patterns: adjust lowering of ast::Arm & ast::ExprKind::Let.
Introduces a temporary hack to keep `Vec<P<Pat>>` in
`hir::Arm.pats` so that we keep the changes more incremental.
2019-09-05 08:33:09 +02:00
Mazdak Farrokhzad
3fccbac4d3 or-patterns: adjust librustc_lint. 2019-09-05 08:33:09 +02:00
Mazdak Farrokhzad
76625eb0cc or-patterns: syntax: adjust derive, format, and building. 2019-09-05 08:33:09 +02:00
Mazdak Farrokhzad
424492acc8 or-patterns: syntax: adjust pretty printing. 2019-09-05 08:33:09 +02:00
Mazdak Farrokhzad
ad3db726d1 or-patterns: syntax: adjust parser removing a hack.
Fuse `parse_top_pat` and `parse_top_pat_unpack` into just `parse_top_pat`.
2019-09-05 08:33:09 +02:00
Mazdak Farrokhzad
998060ba3f or-patterns: syntax: adjust visit and mut_visit. 2019-09-05 08:33:09 +02:00
Mazdak Farrokhzad
ca968a10d8 or-patterns: syntax: simplify Arm.pats and ExprKind::Let.0. 2019-09-05 08:33:09 +02:00
Mazdak Farrokhzad
dbe6873387 resolve: test consistent or-patterns being allowed. 2019-09-05 08:33:09 +02:00
Mazdak Farrokhzad
aa7a02b029 resolve: test binding mode consistency for or-patterns. 2019-09-05 08:33:09 +02:00
Mazdak Farrokhzad
33317c7baa resolve: add test for missing bindings in or-patterns. 2019-09-05 08:33:09 +02:00
Mazdak Farrokhzad
896a1c7fcd resolve: account for general or-patterns in consistency checking. 2019-09-05 08:33:09 +02:00
Mazdak Farrokhzad
498ec59520 resolve: add tests for already-bound check. 2019-09-05 08:33:09 +02:00
Mazdak Farrokhzad
166a558da6 resolve: revamp already-bound check -- fix some bugs. 2019-09-05 08:33:09 +02:00
Mazdak Farrokhzad
70cae78387 resolve: already-bound-check: account for or-patterns.
Also document `ast::Pat::walk`.
2019-09-05 08:33:09 +02:00
Mazdak Farrokhzad
dc91e229d2 resolve: move resolve_block to a better place. 2019-09-05 08:33:09 +02:00
Mazdak Farrokhzad
fd3b441846 resolve: move fresh_binding. 2019-09-05 08:33:09 +02:00
Mazdak Farrokhzad
f343e84f40 resolve: add type IdentMap<T> alias. 2019-09-05 08:33:09 +02:00
Mazdak Farrokhzad
219ddde26b resolve: extract try_resolve_as_non_binding. 2019-09-05 08:33:09 +02:00
Mazdak Farrokhzad
6d537d4020 resolve: simplify resolve_arm. 2019-09-05 08:33:09 +02:00
Mazdak Farrokhzad
f8835eeaf8 resolve: cleanup using with_rib, etc. 2019-09-05 08:33:09 +02:00
Mazdak Farrokhzad
af06bfb84c resolve: extract resolve_params. 2019-09-05 08:33:09 +02:00