Commit Graph

124158 Commits

Author SHA1 Message Date
Bastian Kauschke
833b1d84e8 cleanup 2020-07-27 21:12:51 +02:00
Bastian Kauschke
51cbcca2eb fix rustdoc 2020-07-27 21:12:51 +02:00
Bastian Kauschke
072cc45839 it works again 🎉 2020-07-27 21:11:19 +02:00
Bastian Kauschke
825cb5bdc9 fix rebase 2020-07-27 21:08:19 +02:00
Bastian Kauschke
cd9743b4d4 directly contain PredicateAtom in PredicateKind::ForAll 2020-07-27 21:08:14 +02:00
Bastian Kauschke
d8cf8ba5f7 introduce PredicateAtom 2020-07-27 21:07:37 +02:00
Bastian Kauschke
52af82bdb9 add reuse_or_mk_predicate 2020-07-27 21:07:37 +02:00
Bastian Kauschke
d030752f63 refactor query_outlives_constraints_into_obligations 2020-07-27 21:06:36 +02:00
Bastian Kauschke
3ba61922d2 this might be unqualified, but at least it's now quantified 2020-07-27 21:06:36 +02:00
Bastian Kauschke
562d478421 fix rustdoc 2020-07-27 21:06:36 +02:00
Bastian Kauschke
1151d62049 split ignore_qualifiers 2020-07-27 21:06:36 +02:00
Bastian Kauschke
c6c0d17c8d review 2020-07-27 21:06:36 +02:00
Bastian Kauschke
bbd581c583 fix elaborate for predicates with unbound variables 2020-07-27 21:06:36 +02:00
Bastian Kauschke
8d4c99ad88 clippy 2020-07-27 21:06:36 +02:00
Bastian Kauschke
b79f7fbda8 rustdoc 2020-07-27 21:06:36 +02:00
Bastian Kauschke
9852b42b58 PredicateKint -> PredicateKind, the beginning of the end 2020-07-27 21:06:36 +02:00
Bastian Kauschke
506f4308b7 progress 2020-07-27 21:06:35 +02:00
Bastian Kauschke
4c3b1e89cf elaborate 2020-07-27 21:06:35 +02:00
Bastian Kauschke
7f39b0c9ab subst_supertrait 2020-07-27 21:06:35 +02:00
Bastian Kauschke
1fda8c207e somewhat related cleanup 2020-07-27 21:06:35 +02:00
Bastian Kauschke
653f56af53 wf 2020-07-27 21:06:35 +02:00
Bastian Kauschke
c1d244ffd8 convert trivial predicates 2020-07-27 21:06:35 +02:00
Bastian Kauschke
fb36c8bc80 query_outlives_constraints_into_obligations 2020-07-27 21:06:35 +02:00
Bastian Kauschke
cd30894c2f anonymize_predicate 2020-07-27 21:06:35 +02:00
Matthew Jasper
1b33f39126 Handle trait/projection predicates with bound regions correctly 2020-07-27 21:06:35 +02:00
Bastian Kauschke
9a33b59154 minimal 2020-07-27 21:06:35 +02:00
Bastian Kauschke
104cb878e3 add PredicateKint, because who doesn't like bodging 2020-07-27 20:15:46 +02:00
bors
52d2c7ac94 Auto merge of #74817 - JohnTitor:rollup-0fchdye, r=JohnTitor
Rollup of 6 pull requests

Successful merges:

 - #74088 (Avoid writes without any data in `Write::write_all_vectored`)
 - #74598 (Fix sync_once_cell_does_not_leak_partially_constructed_boxes)
 - #74750 (Clean up some uses of logging in ui tests)
 - #74783 (python codes cleanup)
 - #74790 (Don't italicize comments in ayu theme)
 - #74799 (Fixed typo in `closure`)

Failed merges:

r? @ghost
2020-07-27 11:07:32 +00:00
Yuki Okushi
7df242dd09
Rollup merge of #74799 - Dhs92:master, r=joshtriplett
Fixed typo in `closure`
2020-07-27 19:32:02 +09:00
Yuki Okushi
0042e41181
Rollup merge of #74790 - Cldfire:ayu-no-italic-comments, r=GuillaumeGomez
Don't italicize comments in ayu theme

Closes #74770.

Before:

![image](https://user-images.githubusercontent.com/13814214/88486217-2bf18700-cf4a-11ea-896d-e7787b94e7a7.png)

After:

![image](https://user-images.githubusercontent.com/13814214/88486225-3a3fa300-cf4a-11ea-929f-90461799dc01.png)
2020-07-27 19:32:00 +09:00
Yuki Okushi
807d221ddd
Rollup merge of #74783 - jnozsc:python_cleanup, r=Mark-Simulacrum
python codes cleanup
2020-07-27 19:31:58 +09:00
Yuki Okushi
72aad35649
Rollup merge of #74750 - oli-obk:logging_and_test_cleanups, r=JohnTitor
Clean up some uses of logging in ui tests

The removed test can't possibly trigger anything today as we don't have logging in libstd.

The `exec-env` flag was mistakenly used for adding env vars to rustc invocations both in test and in the test suite and there were some accidental renames from RUST_LOG to RUSTC_LOG that I reverted.
2020-07-27 19:31:56 +09:00
Yuki Okushi
ba3c245227
Rollup merge of #74598 - mzohreva:mz/fix-test, r=KodrAus
Fix sync_once_cell_does_not_leak_partially_constructed_boxes

Spinning multiple threads in this test causes a deadlock in
SGX where thread scheduling is not preemptive.

cc @jethrogb @AdrianCX
2020-07-27 19:31:55 +09:00
Yuki Okushi
1361b02c9f
Rollup merge of #74088 - tmiasko:write-all-vectored-empty, r=KodrAus
Avoid writes without any data in `Write::write_all_vectored`

Previously, when non-empty sequence of empty IoSlices have been provided
to `Write::write_all_vectored`, the buffers would be written as is with
`Write::write_vectored` and subsequently the return value `Ok(0)` would
be misinterpreted as an error.

Avoid writes without any data by advancing the buffers first. This
matches the documented behaviour of `Write::write_all_vectored`
and is analogous to what happens in `Write::write_all`.
2020-07-27 19:31:53 +09:00
bors
9af6b3d4e7 Auto merge of #74737 - smmalis37:astconv-factor, r=davidtwco
Pull out some duplicated code into a new function

I debated pulling the actual struct_span_err calls into the new method, but I felt like having to pass in multiple arguments for it and wiring up string formatting outweighed the benefits.

Viewing the diff with whitespace ignored is recommended.
2020-07-27 09:22:09 +00:00
bors
1841fb97e1 Auto merge of #74653 - petrochenkov:pmenv, r=dtolnay
proc_macro: Add API for tracked access to environment variables

Continuation of https://github.com/rust-lang/rust/pull/71858.

`proc_macro::tracked_env::var` is similar to regular `env::var` called from a proc macro, except that it also adds the accessed variable to depinfo.
2020-07-27 05:50:29 +00:00
bors
f721fb5933 Auto merge of #74784 - anp:track-vtables, r=eddyb
Fix #[track_caller] shims for trait objects.

We were missing an Instance::resolve_for_fn_ptr in resolve_for_vtable.

Closes #74764.
2020-07-27 03:47:17 +00:00
bors
fa36f96068 Auto merge of #72121 - Aaron1011:final-hygiene-rebase, r=petrochenkov
Serialize span hygiene data

Fixes #68686
Fixes #70963

This PR serializies global hygiene data into both the incremental compilation cache and the crate metadata. This allows hygiene information to be preserved across compilation sessions (both incremental and cross-crate).

When serializing a `SyntaxContext`, we simply write out the raw id from the current compilation session. Whenever we deserialize a `SyntaxContext`, we 'remap' the id to a fresh id in our current compilation session, and load the associated `SyntaxContextData`.

As a result, some 'upstream' `SyntaxContextData` will end up getting duplicated in 'downstream' crates. This only happens when we actually need to use an 'upstream' `SyntaxContext`, which occurs when we deserialize a `Span` that requires it.

We serialize an `ExpnData` into the metadata of the crate which generated it. An `ExpnId` is serialized as a reference into the crate which 'owns' the corresponding `ExpnData`, which avoids duplication in downstream crates.

I've included a macros 2.0 test which requires hygiene serialization to compile successfully.

TODO:

- [x] <strike>Determine how many additional `DefId`s we end up creating for `ExpnId`s - this may be significant for `libcore`, which uses macros heavily. Alternatively, we could try to compute a `DefPathHash` without making a corresponding `DefId` - however, this might significantly complicate the implementation.</strike> (We no longer create `DefId`s)
- [x] Investigate the overhead of duplicating `SyntaxContextData` in crate metadata.
- [x] Investigate how `resolve_crate_root` behaves with deserialized hygiene data - the current logic may be wrong.
- [x] Add additional tests. The effects of this PR are usually only noticeable when working with headache-inducing macro expansions (e.g. macros expanding to macros), so there are lots of corner cases to test.
- [x] Determine what to do about this:

4774f9b523/src/librustc_resolve/build_reduced_graph.rs (L892)

- [x] Determine if we need to do anything here - I think the fact that `src/test/ui/hygiene/cross_crate_hygiene.rs` passes means that this is working.

3d5d0f898c/src/librustc_resolve/imports.rs (L1389-L1392)
2020-07-27 01:54:27 +00:00
Alex
06cc666197
Fixed typo in closure 2020-07-26 17:05:49 -07:00
Aaron Hill
f7235a898a
Normalize the test output of hygiene-related tests
A raw SyntaxContext id is implicitly dependent on the target platform,
since libstd and libcore have platform-dependent #[cfg]s which affect
which macros are invoked. As a result, we must strip out any
SyntaxContext ids from test output to ensure that the captured stdout is
not platform-dependent.
2020-07-26 20:05:02 -04:00
Aaron Hill
768803cbb5
Remove explicit extern crate from proc-macro test
We only want to load this auxiliary crate from a proc-macro, so that it
only ever needs to get built for the host platform.
2020-07-26 18:37:03 -04:00
Aaron Hill
f622f45afd
Share serialization optimization between incr and metadata 2020-07-26 18:37:03 -04:00
Aaron Hill
cf7bef302a
Properly reset orig_id when loading from incremental cache 2020-07-26 18:37:02 -04:00
Aaron Hill
7e0d3fdd88
Add test for hygiene caching issue 2020-07-26 18:37:02 -04:00
Aaron Hill
dc21612383
Ignore orig_id for stable hashing
This does not affect semantic equality, and was causing an enormous
number of Span hash invalidations.
2020-07-26 18:37:02 -04:00
Aaron Hill
979dd77c5d
Add test for serializing hygiene *into* a proc-macro crate
This is a very obscure corner case, and should never be hit in practice.
2020-07-26 18:37:02 -04:00
Aaron Hill
5cd1b5dd79
Add test for use of $crate in nested foreign macro_rules! 2020-07-26 18:37:02 -04:00
Aaron Hill
0caebfabe6
Hygiene serialization implementation 2020-07-26 18:37:02 -04:00
bors
c70986264b Auto merge of #74708 - kanru:issue-74564, r=davidtwco
Ensure stack when type checking and building MIR for large if expressions

Fixes #74564
2020-07-26 22:35:13 +00:00
bors
6c8927b0cf Auto merge of #74792 - flip1995:clippyup, r=Manishearth
Update Clippy

Biweekly Clippy Sync

r? @Manishearth
2020-07-26 20:08:45 +00:00