summary refs log tree commit diff
AgeCommit message (Collapse)AuthorLines
2018-03-14Escape stringified expressionShotaro Yamada-5/+77
Payload of `Literal` token must be escaped. Also print printable non-ASCII characters.
2018-03-14Auto merge of #48859 - bdrewery:update-libc, r=alexcrichtonbors-0/+0
Update libc to 0.2.39 CC #42681 r? @alexcrichton
2018-03-14fix ui test error againAndrew Cann-1/+1
2018-03-14Fixes after rebaseAndrew Cann-52/+3
2018-03-14register removed lintsAndrew Cann-0/+4
2018-03-14Fix fallback noteAndrew Cann-9/+10
2018-03-14Add note about fallback to `!: !Trait` errorAndrew Cann-26/+107
2018-03-14really actually fix ui test error for realAndrew Cann-1/+0
2018-03-14really fix ui test errors for realAndrew Cann-0/+3
2018-03-14really fix ui test errorsAndrew Cann-1/+0
2018-03-14change never_type stabilisation versionAndrew Cann-7/+7
2018-03-14Fix ui test errorsAndrew Cann-2/+2
2018-03-14Make coerce_never lint an errorAndrew Cann-102/+21
Remove the coerce_never lint and make the behaviour an error.
2018-03-14Fix version numberAndrew Cann-7/+7
2018-03-14stabilise feature(never_type)Andrew Cann-162/+89
Replace feature(never_type) with feature(exhaustive_patterns). feature(exhaustive_patterns) only covers the pattern-exhaustives checks that used to be covered by feature(never_type)
2018-03-14remove defaulting to unitAndrew Cann-243/+107
Types will no longer default to `()`, instead always defaulting to `!`. This disables the associated warning and removes the flag from TyTuple
2018-03-14Auto merge of #48684 - GuillaumeGomez:put-back-ui-json-check, r=petrochenkovbors-1242/+1280
Put back ui json check r? @petrochenkov
2018-03-14update testsGuillaume Gomez-1163/+1153
2018-03-14test for putting back check on jsonGuillaume Gomez-79/+127
2018-03-14Speed up SVH computation by using Fingerprint::combine()Peter Hrvola-8/+12
Fix #47297 r? @michaelwoerister
2018-03-13fix #48816 don't print help on indirect compiler ICEAlex Butler-0/+6
2018-03-13talk about intra-linksQuietMisdreavus-0/+45
2018-03-13Clarify usage message for --remap-path-prefix.Jeremy Fitzhardinge-1/+1
2018-03-13Auto merge of #48735 - 1011X:master, r=alexcrichtonbors-477/+512
Move ascii::escape_default to libcore As requested in #46409, the `ascii::escape_default` method has been added to the core library. All I did was copy over the `std::ascii` module file, remove the (redundant) `AsciiExt` trait, and change some of the documentation to match. None of the tests were changed. I wasn't sure how to handle the annotations. For `EscapeDefault` and `escape_default()`, I changed them to `#[unstable(feature = "core_ascii", issue = "46409")]`. Is that alright? Or should I leave them as they were?
2018-03-13Fix ICE on malformed plugin attributesMichael Lamparski-2/+4
2018-03-13Add test for issue 48941Michael Lamparski-0/+39
A broken test to be fixed in the next commit.
2018-03-13Move 48070 test to uibobtwinkles-0/+1
2018-03-13Adds a test for #48070bobtwinkles-0/+34
Resolves #48070. The bug itself was fixed by #48770, but that PR didn't add a test for it.
2018-03-13add intrinsics for portable packed simd vector reductionsgnzlbg-3/+525
2018-03-13rustc: Embed LLVM bitcode by default on iOSAlex Crichton-2/+87
This commit updates rustc to embed bitcode in each object file generated by default when compiling for iOS. This was determined in #35968 as a step towards better compatibility with the iOS toolchain, so let's give it a spin and see how it turns out! Note that this also updates the `cc` dependency which should propagate this change of embedding bitcode for C dependencies as well.
2018-03-13rustbuild: Tweak CFLAGS to various libstd piecesAlex Crichton-3/+3
* Pass `opt_level(2)` when calculating CFLAGS to get the right flags on iOS * Unconditionally pass `-O2` when compiling libbacktrace This should... Close #48903 Close #48906
2018-03-13Auto merge of #48411 - nikomatsakis:chalkify-canonical-query-mir, r=eddybbors-1706/+3783
introduce canonical queries, use for normalization and dropck-outlives This branch adds in the concept of a **canonicalized trait query** and uses it for three specific operations: - `infcx.at(cause, param_env).normalize(type_foldable)` - normalizes all associated types in `type_foldable` - `tcx.normalize_erasing_regions(param_env, type_foldable)` - like normalize, but erases regions first and in the result; this leads to better caching - `infcx.at(cause, param_env).dropck_outlives(ty)` - produces the set of types that must be live when a value of type `ty` is dropped - used from dropck but also NLL outlives This is a kind of "first step" towards a more Chalk-ified approach. It leads to a **big** speedup for NLL, which is basically dominated by the dropck-outlives computation. Here are some timing measurements for the `syn` crate (pre-branch measurements coming soon): | Commit | NLL disabled | NLL enabled | | ------- | --- | --- | | Before my branch | 5.43s | 8.99s | | After my branch | 5.36s | 7.25s | (Note that NLL enabled still does *all the work* that NLL disabled does, so this is not really a way to compare the performance of NLL versus the AST-based borrow checker directly.) Since this affects all codepaths, I'd like to do a full perf run before we land anything. Also, this is not the "final point" for canonicalization etc. I think canonicalization can be made substantially faster, for one thing. But it seems like a reasonable starting point for a branch that's gotten a bit larger than I would have liked. **Commit convention:** First of all, this entire branch ought to be a "pure refactoring", I believe, not changing anything about external behavior. Second, I've tagged the most important commits with `[VIC]` (very important commit), so you can scan for those. =) r? @eddyb
2018-03-13add "text" sections for things that seem likely to be a problemNiko Matsakis-2/+6
2018-03-13remove dead codeNiko Matsakis-11/+0
2018-03-13replace inline docs with references to rustc-guideNiko Matsakis-57/+18
2018-03-13add a debug assertion that only outlives-oblig. result from norm.Niko Matsakis-7/+32
2018-03-13`trans_apply_param_substs` => `subst_and_normalize_erasing_regions`Niko Matsakis-70/+91
Consolidate `trans_apply_param_substs` and `trans_apply_param_substs_env`. Also remove `trans_impl_self_ty`
2018-03-13short-circuit work when instantiating query responsesNiko Matsakis-24/+84
Also, perform substitution in smaller parts.
2018-03-13short-circuit `dropck_outlives` for simple casesNiko Matsakis-2/+72
2018-03-13add regression tests for various MIR bugs that get fixedNiko Matsakis-0/+199
Fixes #31567 Fixes #47470 Fixes #48132 Fixes #48179
2018-03-13add some debug outputNiko Matsakis-1/+15
2018-03-13move `drain_fulfillment_cx_or_panic` to be private to traits::transNiko Matsakis-40/+44
2018-03-13transition various normalization functions to the new methodsNiko Matsakis-283/+91
In particular: - `fully_normalize_monormophic_ty` => `normalize_erasing_regions` - `normalize_associated_type_in_env` => `normalize_erasing_regions` - `fully_normalize_associated_types_in` => `normalize_erasing_regions` - `erase_late_bound_regions_and_normalize` => `normalize_erasing_late_bound_regions`
2018-03-13introduce `tcx.normalize_erasing_regions(..)` operaton [VIC]Niko Matsakis-3/+143
2018-03-13introduce `infcx.at(..).dropck_outlives(..)` operaton [VIC]Niko Matsakis-301/+560
Backed by a canonicalized query. This computes all the types/regions that need to be live when the destructor runs (i.e., that the dtor may access).
2018-03-13introduce `infcx.at(..).normalize(..)` operation [VIC]Niko Matsakis-10/+637
It is backed by the new `normalize_projection_ty` query, which uses canonicalization.
2018-03-13Reuse the query caching infrastructure for const evalOliver Schneider-61/+16
2018-03-13in `Foo(X)` dep-nodes, allow X to be a `ty` not a `tt`Niko Matsakis-21/+24
Before, the identifier `X` was also used when generating a pattern to match against the dep-node. So `Foo(DefId)` would generate a match pattern like: match foo { Foo(DefId) => ... } This does not scale to more general types like `&'tcx Ty<'tcx>`. Therefore, we now require *exactly one* argument (the macro was internally tupling anyway, and no actual nodes use more than one argument), and then we can generate a fixed pattern like: match foo { Foo(arg) => ... } Huzzah. (Also, hygiene is nice.)
2018-03-13add `canonicalize` method to `InferCtxt` [VIC]Niko Matsakis-16/+1121
2018-03-13change `ParamEnv::and` to sometimes keep the environment [VIC]Niko Matsakis-21/+28
In general, we've been moving towards a semantics where you can have contradictory where-clauses, and we try to honor them. There are already existing run-pass tests where we take that philosophy as well (e.g., `compile-fail/issue-36839.rs`). The current behavior of `and`, where it strips the environment, breaks that code.