aboutsummaryrefslogtreecommitdiff
path: root/crates/hir_ty/src/lib.rs
Commit message (Collapse)AuthorAgeFilesLines
* Ignore type bindings in generic_predicates_for_paramFlorian Diebold2021-03-211-2/+11
| | | | | | | | | | | | | This allows us to handle more cases without a query cycle, which includes certain cases that rustc accepted. That in turn means we avoid triggering salsa-rs/salsa#257 on valid code (it will still happen if the user writes an actual cycle). We actually accept more definitions than rustc now; that's because rustc only ignores bindings when looking up super traits, whereas we now also ignore them when looking for predicates to disambiguate associated type shorthand. We could introduce a separate query for super traits if necessary, but for now I think this should be fine.
* Test for a Salsa bugFlorian Diebold2021-03-211-0/+4
|
* Turn Obligation into something similar to chalk_ir::DomainGoalFlorian Diebold2021-03-201-2/+5
| | | | This includes starting to make use of Chalk's `Cast` trait.
* Remove WhereClause::ErrorFlorian Diebold2021-03-201-10/+1
| | | | | Chalk doesn't have it, and judging from the removed code, it wasn't useful anyway.
* Rename GenericPredicate -> WhereClauseFlorian Diebold2021-03-201-19/+19
|
* Replace Projection variant in GenericPredicate with AliasEqLukas Wirth2021-03-191-8/+41
|
* Chalkify TraitRefFlorian Diebold2021-03-181-12/+27
|
* Rename Substs -> SubstitutionFlorian Diebold2021-03-161-47/+47
|
* Use SmallVec for SubstsFlorian Diebold2021-03-151-7/+20
| | | | | Doesn't help as much as I hoped, but it helps a bit and I also did some refactorings that were necessary anyway.
* Don't use Substs for Ref/Raw/Array/SliceFlorian Diebold2021-03-141-49/+18
|
* Make Ty wrap TyKind in an ArcFlorian Diebold2021-03-141-9/+17
| | | | | | | | ... 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.
* More renamingFlorian Diebold2021-03-141-4/+4
|
* Use chalk_ir::FnSigFlorian Diebold2021-03-141-7/+6
|
* Rename some fields to their Chalk namesFlorian Diebold2021-03-141-9/+9
|
* Use chalk_ir::OpaqueTyIdFlorian Diebold2021-03-131-7/+9
|
* Use chalk_ir::PlaceholderIndexFlorian Diebold2021-03-131-6/+25
|
* Use chalk_ir::ClosureIdFlorian Diebold2021-03-131-8/+6
|
* Use chalk_ir::FnDefIdFlorian Diebold2021-03-131-6/+18
|
* Use chalk_ir::AssocTypeIdFlorian Diebold2021-03-131-9/+19
|
* Use chalk_ir::ForeignDefIdFlorian Diebold2021-03-131-4/+16
|
* Separate `Ty` and `TyKind` like in ChalkFlorian Diebold2021-03-131-121/+155
| | | | | Currently `Ty` just wraps `TyKind`, but this allows us to change most places to already use `intern` / `interned`.
* Use chalk_ir::AdtIdLukas Wirth2021-03-041-8/+14
|
* Use chalk_ir::MutabilityLukas Wirth2021-03-011-6/+4
|
* Introduce Ty::AliasLukas Wirth2021-03-011-35/+41
|
* Assert index relationship between type_variable_table and var_unification_tableLukas Wirth2021-03-011-2/+2
|
* Being Ty::InferenceVar closes to chalk equivalentLukas Wirth2021-03-011-12/+5
|
* Lift FnPointer into a structLukas Wirth2021-02-281-32/+48
|
* Remove Substs from Ty::ForeignTypeLukas Wirth2021-02-281-4/+1
|
* Turn Ty::Tuple variant into a tuple-variantLukas Wirth2021-02-281-9/+7
|
* Fix code_model::Type::walk not walking all typesLukas Wirth2021-02-281-6/+4
|
* Inline TypeCtor into TyLukas Wirth2021-02-281-277/+215
|
* Use chalk_ir::Scalar directlyLukas Wirth2021-02-281-16/+8
|
* Introduce TypeCtor::ScalarLukas Wirth2021-02-281-29/+22
|
* Wrap `BuiltinType` in code modelJonas Schievink2021-02-111-0/+10
|
* Classify function calls as functions when shadowed by typesLukas Wirth2021-01-281-5/+14
|
* Make `ModuleId`'s `krate` field privateJonas Schievink2021-01-221-6/+8
|
* Don't emit arg count diagnostics for method calls with unknown receiverFlorian Diebold2021-01-011-0/+4
| | | | Fixes #7098.
* Add Lifetimes to the HIRLukas Wirth2020-12-111-2/+8
|
* Deny unreachable-pubAleksey Kladov2020-11-021-2/+1
| | | | | | | | 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.
* Update chalk to 0.27 and adapt to chalk changes.Charles Lew2020-09-151-0/+11
|
* Fix type walking about type of async blockoxalica2020-09-111-14/+9
|
* Implement async blocksoxalica2020-09-101-2/+37
|
* Rename ra_hir_ty -> hir_tyAleksey Kladov2020-08-131-0/+1078