about summary refs log tree commit diff
path: root/compiler/rustc_middle/src/ty/fast_reject.rs
AgeCommit message (Collapse)AuthorLines
2024-09-02Use `DeepRejectCtxt` to quickly reject `ParamEnv` candidatesBryanskiy-1/+9
2024-07-29Reformat `use` declarations.Nicholas Nethercote-2/+1
The previous commit updated `rustfmt.toml` appropriately. This commit is the outcome of running `x fmt --all` with the new formatting options.
2024-06-30Uplift fast rejection to new solverMichael Goulet-364/+4
2024-06-05Add `Ty` to `ConstKind::Value`Boxy-2/+2
2024-05-17Rename Unsafe to SafetySantiago Pastorino-2/+2
2024-05-03Tweak `consts_may_unify`.Nicholas Nethercote-8/+4
`ConstKind::Value` is the only variant where control flow leaves the first match on `impl_ct.kind()`, so there is no need for a second match on the same expression later on.
2024-04-29Remove `extern crate rustc_macros` from `rustc_middle`.Nicholas Nethercote-0/+1
2024-04-25Remove special-casing for SimplifiedType for next solverMichael Goulet-33/+5
2024-04-08Actually create ranged int types in the type system.Oli Scherer-0/+6
2024-03-22Make RawPtr take Ty and Mutbl separatelyMichael Goulet-3/+5
2024-02-06Add CoroutineClosure to TyKind, AggregateKind, UpvarArgsMichael Goulet-2/+5
2024-01-11Register even erroneous implsOli Scherer-1/+3
Otherwise the specialization graph fails to pick it up, even though other code assumes that all impl blocks have an entry in the specialization graph.
2023-12-28Remove movability from TyKind::CoroutineMichael Goulet-1/+1
2023-12-14update use of feature flagslcnr-1/+1
2023-11-13args~~_ref~~_may_unifylcnr-4/+4
2023-10-20s/Generator/Coroutine/Oli Scherer-10/+10
2023-09-23Remove GeneratorWitness and rename GeneratorWitnessMIR.Camille GILLOT-9/+4
2023-07-20add FIXMElcnr-0/+3
2023-07-20XSimplifiedType to SimplifiedType::Xlcnr-55/+57
2023-07-14refactor(rustc_middle): Substs -> GenericArgMahdi Dibaiee-9/+9
2023-04-17Spelling - compilerJosh Soref-1/+1
* account * achieved * advising * always * ambiguous * analysis * annotations * appropriate * build * candidates * cascading * category * character * clarification * compound * conceptually * constituent * consts * convenience * corresponds * debruijn * debug * debugable * debuggable * deterministic * discriminant * display * documentation * doesn't * ellipsis * erroneous * evaluability * evaluate * evaluation * explicitly * fallible * fulfill * getting * has * highlighting * illustrative * imported * incompatible * infringing * initialized * into * intrinsic * introduced * javascript * liveness * metadata * monomorphization * nonexistent * nontrivial * obligation * obligations * offset * opaque * opportunities * opt-in * outlive * overlapping * paragraph * parentheses * poisson * precisely * predecessors * predicates * preexisting * propagated * really * reentrant * referent * responsibility * rustonomicon * shortcircuit * simplifiable * simplifications * specify * stabilized * structurally * suggestibility * translatable * transmuting * two * unclosed * uninhabited * visibility * volatile * workaround Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2023-03-31Auto merge of #109750 - compiler-errors:deep-reject-less-permissive-num-var, ↵bors-0/+4
r=lcnr numeric vars can only be unified with numerical types in deep reject Don't consider numeric vars (int and float vars) to unify with non-numeric types during deep reject. This helps us reject incompatible impls sooner.
2023-03-30deep reject only unify numeric var with concrete numericMichael Goulet-0/+4
2023-03-29Don't ICE on placeholder consts in deep rejectMichael Goulet-1/+5
2023-03-29Inline and remove `generic_args_may_unify`.Nicholas Nethercote-19/+12
It has a single callsite.
2023-03-29Introduce `DeepRejectCtxt::substs_refs_may_unify`.Nicholas Nethercote-4/+11
It factors out a repeated code pattern.
2023-03-23Don't split up TreatProjections and TreatParams anymoreMichael Goulet-15/+22
2023-03-13Better names?Michael Goulet-13/+16
2023-03-13Treat projections with infer as placeholder during fast reject in new solverMichael Goulet-16/+28
2023-02-22Remove type-traversal trait aliasesAlan Egerton-1/+1
2023-02-16Be better about bound varsMichael Goulet-2/+2
2023-01-27Introduce GeneratorWitnessMIR.Camille GILLOT-2/+6
2022-12-15Rollup merge of #105743 - nnethercote:SimplifiedType-cleanups, r=lcnrMatthias Krüger-50/+10
`SimplifiedType` cleanups r? `@lcnr`
2022-12-15Merge `SimplifiedTypeGen<D>` into `SimplifiedType`.Nicholas Nethercote-20/+10
`SimplifiedTypeGen<DefId>` is the only instantiation used, so we don't need the generic parameter.
2022-12-15Remove `SimplifiedTypeGen::map_def`.Nicholas Nethercote-30/+0
It's unused.
2022-12-13Address nitsMichael Goulet-8/+3
Co-authored-by: Oli Scherer <github35764891676564198441@oli-obk.de>
2022-12-13Combine projection and opaque into aliasMichael Goulet-4/+7
2022-11-25Add empty ConstKind::Abstractkadmin-2/+7
Initial pass at expr/abstract const/s Address comments Switch to using a list instead of &[ty::Const], rm `AbstractConst` Remove try_unify_abstract_consts Update comments Add edits Recurse more More edits Prevent equating associated consts Move failing test to ui Changes this test from incremental to ui, and mark it as failing and a known bug. Does not cause the compiler to ICE, so should be ok.
2022-11-21Allow opaque types in trait impl headers and rely on coherence to reject ↵Oli Scherer-13/+5
unsound cases
2022-10-04It's not about types or consts, but the lack of regionsOli Scherer-1/+1
2022-09-22use valtrees for comparisonb-naber-8/+1
2022-07-06Update TypeVisitor pathsAlan Egerton-1/+1
2022-06-14Rename the `ConstS::val` field as `kind`.Nicholas Nethercote-3/+3
And likewise for the `Const::val` method. Because its type is called `ConstKind`. Also `val` is a confusing name because `ConstKind` is an enum with seven variants, one of which is called `Value`. Also, this gives consistency with `TyS` and `PredicateS` which have `kind` fields. The commit also renames a few `Const` variables from `val` to `c`, to avoid confusion with the `ConstKind::Value` variant.
2022-05-28Fix TyKind lint, make consts no longer fn, etcMichael Goulet-4/+4
2022-05-25add a deep fast_reject routinelcnr-0/+221
2022-05-18fix `simplify_type`lcnr-60/+43
2022-03-11Improve `AdtDef` interning.Nicholas Nethercote-1/+1
This commit makes `AdtDef` use `Interned`. Much the commit is tedious changes to introduce getter functions. The interesting changes are in `compiler/rustc_middle/src/ty/adt.rs`.
2022-03-03Rollup merge of #94057 - lcnr:simplify_type-uwu, r=nikomatsakisMatthias Krüger-36/+33
improve comments for `simplify_type` Should now correctly describe what's going on. Experimented with checking the invariant for projections but that ended up requiring fairly involved changes. I assume that it is not possible to get unsoundness here, at least for now and I can pretty much guarantee that it's impossible to trigger it by accident. r? `````@nikomatsakis````` cc #92721
2022-02-22Remove unused ordering derivations and bounds for `SimplifiedTypeGen`pierwill-4/+4
2022-02-21typolcnr-1/+1
Co-authored-by: Rémy Rakic <remy.rakic+github@gmail.com>