aboutsummaryrefslogtreecommitdiff
path: root/crates/hir_ty/src/infer.rs
Commit message (Collapse)AuthorAgeFilesLines
* Align InEnvironment with ChalkFlorian Diebold2021-03-211-1/+1
| | | | | | This in particular means storing a chalk_ir::Environment, not our TraitEnvironment. This makes InEnvironment not usable for Type, where we need to keep the full TraitEnvironment.
* Turn Obligation into something similar to chalk_ir::DomainGoalFlorian Diebold2021-03-201-6/+6
| | | | This includes starting to make use of Chalk's `Cast` trait.
* Replace Projection variant in GenericPredicate with AliasEqLukas Wirth2021-03-191-9/+9
|
* Chalkify TraitRefFlorian Diebold2021-03-181-2/+3
|
* Rename Substs -> SubstitutionFlorian Diebold2021-03-161-4/+4
|
* Merge #8018bors[bot]2021-03-151-6/+24
|\ | | | | | | | | | | | | | | | | | | 8018: Make Ty wrap TyKind in an Arc r=flodiebold a=flodiebold ... to further move towards Chalk. This is a bit of a slowdown (218ginstr vs 213ginstr for inference on RA), even though it allows us to unwrap the Substs in `TyKind::Ref` etc.. Co-authored-by: Florian Diebold <[email protected]>
| * Make Ty wrap TyKind in an ArcFlorian Diebold2021-03-141-6/+24
| | | | | | | | | | | | | | | | ... like it will be in Chalk. We still keep `interned_mut` and `into_inner` methods that will probably not exist with Chalk. This worsens performance slightly (5ginstr inference on RA), but doesn't include other simplifications we can do yet.
* | Simplify source maps for fieldsAleksey Kladov2021-03-151-3/+3
|/
* Rename some fields to their Chalk namesFlorian Diebold2021-03-141-2/+2
|
* Move type lowering methods to TyLoweringContextFlorian Diebold2021-03-131-5/+5
|
* Create TraitEnvironment through a queryFlorian Diebold2021-03-131-1/+3
|
* Use chalk_ir::PlaceholderIndexFlorian Diebold2021-03-131-1/+1
|
* Use chalk_ir::AssocTypeIdFlorian Diebold2021-03-131-2/+5
|
* Separate `Ty` and `TyKind` like in ChalkFlorian Diebold2021-03-131-21/+28
| | | | | Currently `Ty` just wraps `TyKind`, but this allows us to change most places to already use `intern` / `interned`.
* Use chalk_ir::MutabilityLukas Wirth2021-03-011-2/+3
|
* Introduce Ty::AliasLukas Wirth2021-03-011-2/+2
|
* Being Ty::InferenceVar closes to chalk equivalentLukas Wirth2021-03-011-21/+7
|
* Inline TypeCtor into TyLukas Wirth2021-02-281-13/+4
|
* Introduce TypeCtor::ScalarLukas Wirth2021-02-281-3/+3
|
* Make `ModPath`'s representation privateJonas Schievink2021-02-041-1/+1
|
* Remove map module from la-arena public APIAramis Razzaghipour2021-01-151-1/+1
| | | | | | It’s unlikely that more items will be added to the module, so it’s simpler for users if `ArenaMap` is re-exported and the module made private.
* prepare to publish el libro de arenaAleksey Kladov2021-01-141-1/+1
|
* Remove more unreachable pubsAleksey Kladov2020-11-021-1/+1
|
* Deny unreachable-pubAleksey Kladov2020-11-021-3/+3
| | | | | | | | It's very useful when `pub` is equivalent to "this is crate's public API", let's enforce this! Ideally, we should enforce it for local `cargo test`, and only during CI, but that needs https://github.com/rust-lang/cargo/issues/5034.
* Implement binary operator overloading type inferenceRoland Ruckerbauer2020-10-131-1/+23
|
* Bump smol_str from 0.1.16 to 0.1.17Jean SIMARD2020-09-241-1/+1
|
* Rename record_field_pat to record_pat_fieldPavan Kumar Sunkara2020-09-101-3/+3
|
* Rename ra_hir_ty -> hir_tyAleksey Kladov2020-08-131-0/+802