summary refs log tree commit diff
path: root/src/librustc/ty/structural_impls.rs
AgeCommit message (Collapse)AuthorLines
2018-09-10generalize `AscribeUserType` to handle sub or super typeNiko Matsakis-0/+1
2018-09-08Auto merge of #53903 - GabrielMajeri:opt-miri-array-slice, r=oli-obkbors-1/+1
Optimize miri checking of integer array/slices This pull request implements the optimization described in #53845 (the `E-easy` part of that issue, not the refactoring). Instead of checking every element of an integral array, we can check the whole memory range at once. r? @RalfJung
2018-09-08Optimize miri checking of integer array/slicesGabriel Majeri-1/+1
Instead of checking every element, we can check the whole memory range at once.
2018-09-05Changing TyAnon -> TyOpaque and relevant functionsms2300-2/+2
2018-08-29re-do argument passing one more time to finally be saneRalf Jung-1/+3
2018-08-29Auto merge of #53659 - nnethercote:rm-AccumulateVec, r=Mark-Simulacrumbors-4/+4
Remove `AccumulateVec` and its uses. It's basically just a less capable version of `SmallVec`. FWIW, the only use of `ArrayVec` is now within `HybridIdxSet`. r? @Mark-Simulacrum
2018-08-29Remove `AccumulateVec` and its uses.Nicholas Nethercote-4/+4
It's basically just a less capable version of `SmallVec`.
2018-08-28address nitsRalf Jung-1/+1
2018-08-27Miri Memory WorkRalf Jung-2/+2
* Unify the two maps in memory to store the allocation and its kind together. * Share the handling of statics between CTFE and miri: The miri engine always uses "lazy" `AllocType::Static` when encountering a static. Acessing that static invokes CTFE (no matter the machine). The machine only has any influence when writing to a static, which CTFE outright rejects (but miri makes a copy-on-write). * Add an `AllocId` to by-ref consts so miri can use them as operands without making copies. * Move responsibilities around for the `eval_fn_call` machine hook: The hook just has to find the MIR (or entirely take care of everything); pushing the new stack frame is taken care of by the miri engine. * Expose the intrinsics and lang items implemented by CTFE so miri does not have to reimplement them.
2018-08-22Auto merge of #52011 - ↵bors-1/+5
oli-obk:dont_you_hate_it_too_when_everything_panics_constantly, r=eddyb Allow panicking with string literal messages inside constants r? @eddyb cc https://github.com/rust-lang/rust/issues/51999 we can't implement things like `panic!("foo: {}", x)` right now because we can't call trait methods (most notably `Display::fmt`) inside constants. Also most of these impls probably have loops and conditions, so it's messy anyway. But hey `panic!("foo")` works at least. cc @japaric got any test ideas for `#![no_std]`?
2018-08-22Allow panicking with string literal messages inside constantsOliver Schneider-1/+5
2018-08-22Remove Ty prefix from Ty{Bool|Char|Int|Uint|Float|Str}varkor-4/+4
2018-08-22Remove Ty prefix from Ty{Foreign|Param}varkor-2/+2
2018-08-22Remove Ty prefix from ↵varkor-36/+36
Ty{Adt|Array|Slice|RawPtr|Ref|FnDef|FnPtr|Dynamic|Closure|Generator|GeneratorWitness|Never|Tuple|Projection|Anon|Infer|Error}
2018-08-22Rename ty::Slice to ty::Listvarkor-3/+3
2018-07-21Convert implied_outlives_bounds to a queryTyler Mandry-0/+1
2018-07-04Add an `InfiniteLoop` variant to `EvalErrorKind`Dylan MacKenzie-0/+1
2018-06-30Added miri error for evaluating foreign statics.Alexander Regueiro-0/+1
Updated tests accordingly.
2018-06-28Merge `ConstVal` and `ConstValue`Oliver Schneider-7/+11
2018-06-28Move everything over from `middle::const_val` to `mir::interpret`Oliver Schneider-1/+1
2018-06-28Move the Lrc outside the error type and name the fieldsOliver Schneider-4/+4
2018-06-28Address review commentsOliver Schneider-1/+1
2018-06-28Eliminate old CTFE's `ErrKind`Oliver Schneider-17/+5
2018-06-05Remove another unused error variantOliver Schneider-1/+0
2018-06-05Remove unused IndexOutOfBounds variantOliver Schneider-2/+0
2018-06-05Properly report transitive errorsOliver Schneider-7/+2
2018-05-08Insert fields from TypeAndMut into TyRef to allow layout optimizationJohn Kåre Alsaker-3/+3
2018-05-08Store the GeneratorInterior in the new GeneratorSubstsJohn Kåre Alsaker-11/+10
2018-05-08Store generator movability outside GeneratorInteriorJohn Kåre Alsaker-5/+9
2018-04-30Unify MIR assert messages and const eval errorsOliver Schneider-6/+17
2018-04-30Merge ConstMathError into EvalErrorKindOliver Schneider-2/+4
2018-04-30Remove unused const error variantOliver Schneider-1/+0
2018-04-26rustc_target: move in syntax::abi and flip dependency.Irina Popa-1/+1
2018-04-24Make Binder's field private and clean up its usageTyler Mandry-3/+3
2018-04-13Don't abort const eval due to long running evals, just warnOliver Schneider-1/+0
2018-03-29Auto merge of #49313 - sgrif:sg-revert-stuff, r=nikomatsakisbors-24/+2
Remove universes from `ty::ParamEnv` This change was never meant to land. #48407 takes an alternate approach. However, that PR is now blocked on some issues with canonicalization, and rebasing these reverts gets harder each time, so let's just get this bit out of the way now. r? @nikomatsakis
2018-03-23Revert "introduce `UniverseIndex` into `ParamEnv`"Sean Griffin-24/+2
This reverts commit d4df52cacbee5d95e912a43188192a5054d36b4f.
2018-03-17Replace Rc with LrcJohn Kåre Alsaker-1/+2
2018-03-14remove defaulting to unitAndrew Cann-2/+2
Types will no longer default to `()`, instead always defaulting to `!`. This disables the associated warning and removes the flag from TyTuple
2018-03-13improve TypeFoldable/Lift macros and make a bunch of stuff use themNiko Matsakis-414/+127
Improvements: - Use Clone not Copy for the "simple cases" - Separate TypeFoldable and Lift for the "simple cases" - Support generics type parameters - Support named fields in enum variants - etc
2018-03-08Const eval will oom together with rustc nowOliver Schneider-5/+0
2018-03-08Const eval error refactoringOliver Schneider-0/+1
2018-03-08Add stack traces to miri errorsOliver Schneider-5/+5
2018-03-08Remove unused error variants and const eval typesOliver Schneider-12/+0
2018-03-08Wrap the miri ErrorKind in an Rc to reduce work in queriesOliver Schneider-2/+2
2018-03-08Prepare for using miri in transAlexander Regueiro-1/+51
2018-03-08Nuke the entire ctfe from orbit, it's the only way to be sureOliver Schneider-67/+2
2018-03-08Produce instead of pointersOliver Schneider-0/+55
2018-03-08Add miri errors to the const eval error enumOliver Schneider-0/+112
2018-03-08Add a variant to ConstVal for storing miri resultsOliver Schneider-0/+2