aboutsummaryrefslogtreecommitdiff
path: root/crates/hir_ty/src
Commit message (Collapse)AuthorAgeFilesLines
* Merge #8799bors[bot]2021-05-1211-109/+155
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | 8799: Add basic support for array lengths in types r=flodiebold a=lf- This recognizes `let a = [1u8, 2, 3]` as having type `[u8; 3]` instead of the previous `[u8; _]`. Byte strings and `[0u8; 2]` kinds of range array declarations are unsupported as before. I don't know why a bunch of our rustc tests had single quotes inside strings un-escaped by `UPDATE_EXPECT=1 cargo t`, but I don't think it's bad? Maybe something in a nightly? Co-authored-by: Jade <[email protected]>
| * address review by @eddybJade2021-05-112-2/+3
| |
| * Add basic support for array lengths in typesJade2021-05-1111-109/+154
| | | | | | | | | | | | | | | | | | | | This recognizes `let a = [1u8, 2, 3]` as having type `[u8; 3]` instead of the previous `[u8; _]`. Byte strings and `[0u8; 2]` kinds of range array declarations are unsupported as before. I don't know why a bunch of our rustc tests had single quotes inside strings un-escaped by `UPDATE_EXPECT=1 cargo t`, but I don't think it's bad? Maybe something in a nightly?
* | Merge #8398bors[bot]2021-05-113-2/+51
|\ \ | |/ |/| | | | | | | | | | | 8398: Fix inference with conditionally compiled tails r=flodiebold a=DJMcNab Fixes #8378 Co-authored-by: Daniel McNab <[email protected]>
| * Add a test for conditionally compiled tailsDaniel McNab2021-05-031-0/+49
| |
| * Fix inference with conditionally compiled tailsDaniel McNab2021-05-032-2/+2
| | | | | | | | Fixes #8378
* | Correctly support SelfType when searching for usagesLukas Wirth2021-05-081-2/+34
| |
* | Reuse database in LowerCtxJonas Schievink2021-05-061-1/+1
| |
* | Don't store call-site text offsets in hygiene infoJonas Schievink2021-05-061-2/+2
|/
* Don't look in super traits for <T as Trait>::AssocFlorian Diebold2021-04-292-7/+14
| | | | | | | This isn't actually how it works, you have to specify the exact trait that has the associated type. Fixes #8686.
* Rewrite all_super_trait_refs as an iteratorFlorian Diebold2021-04-291-18/+34
| | | | | Doesn't fix the bug I was trying to fix, but now that I did it anyway it seems fine to keep.
* Handle cycles in generic_defaults more gracefullyFlorian Diebold2021-04-292-0/+22
|
* Add test for #8686Florian Diebold2021-04-291-0/+30
|
* fix: closure unify without check ClosureIdComonad2021-04-292-0/+40
| | | | closes #8604
* Merge #8462bors[bot]2021-04-193-8/+275
|\ | | | | | | | | | | | | | | 8462: Expand macros at type position r=jonas-schievink a=cynecx Co-authored-by: cynecx <[email protected]>
| * hir_ty: cleanups and extend infinitely_recursive_macro_type testcynecx2021-04-182-8/+14
| |
| * hir_ty: keep body::Expander in TyLoweringContextcynecx2021-04-182-14/+83
| |
| * hir_def: refactor expand_macro_type and cleanupscynecx2021-04-171-3/+3
| |
| * hir_ty: deal with TypeRef::Macro in HirFormattercynecx2021-04-171-2/+15
| |
| * hir_ty: Expand macros at type positioncynecx2021-04-173-2/+181
| |
* | Collect inherent impls in unnamed constsJonas Schievink2021-04-192-17/+62
|/
* Merge #8539bors[bot]2021-04-162-1/+2
|\ | | | | | | | | | | | | | | | | | | 8539: fix: Do not propose inherent traits in flyimports and import assists r=flodiebold a=SomeoneToIgnore Closes https://github.com/rust-analyzer/rust-analyzer/issues/8520 I've went with a separate method approach, since the [highlighted code](https://github.com/rust-analyzer/rust-analyzer/issues/8520#issuecomment-819856337) has not`Type` and uses `Ty` to get his data, but the code I had to change has no access to `Ty` and has `Type` only. Co-authored-by: Kirill Bulatov <[email protected]>
| * Exclude inherent traits from flyimportsKirill Bulatov2021-04-162-1/+2
| |
* | Fix primitive shadowing with inner itemsJonas Schievink2021-04-161-0/+18
|/
* Profile trait solving for all invocationsKirill Bulatov2021-04-142-5/+19
|
* Better places for spansKirill Bulatov2021-04-141-2/+1
|
* We need to go deeperKirill Bulatov2021-04-141-1/+5
|
* Add a missing spanKirill Bulatov2021-04-141-0/+2
|
* decl_check: follow test style guideJonas Schievink2021-04-131-60/+59
|
* Merge #8432bors[bot]2021-04-131-14/+140
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8432: decl_check: consider outer scopes' allows r=jonas-schievink a=lf- Fix #8417. Also makes it less noisy about no_mangle annotated stuff the user can do nothing about. Note: this still is broken with bitfield! macros. A repro in an ignore test is included here. I believe this bug is elsewhere, and I don't think I can work around it here. I would like help filing the remaining bug, as it does actually affect users, but I don't know how to describe the behaviour (or even if it is unintended). Co-authored-by: Jade <[email protected]>
| * address review feedbackJade2021-04-131-21/+35
| |
| * decl_check: consider outer scopes' allowsJade2021-04-081-10/+122
| | | | | | | | | | | | | | | | | | Fix #8417. Also makes it less noisy about no_mangle annotated stuff the user can do nothing about. Note: this still is broken with bitfield! macros. A repro in an ignore test is included here. I believe this bug is elsewhere, and I don't think I can work around it here.
* | Remove assertion in impl collectionFlorian Diebold2021-04-111-4/+3
| | | | | | | | | | | | | | This condition should always be true for *valid* code, but of course there might be invalid code or things that we can't currently resolve. Fixes #8464.
* | Merge #8465bors[bot]2021-04-111-3/+3
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8465: Include more info in assert r=jonas-schievink a=jonas-schievink This helped find https://github.com/rust-analyzer/rust-analyzer/issues/8464 changelog skip bors r+ Co-authored-by: Jonas Schievink <[email protected]>
| * | Include more info in assertJonas Schievink2021-04-111-3/+3
| | |
* | | Support macros in pattern positionJonas Schievink2021-04-112-2/+28
|/ /
* | Respect test style guidelines in tests::traitsLukas Wirth2021-04-101-698/+656
| |
* | Add test for binary op return ty with adtLukas Wirth2021-04-101-0/+47
| |
* | Add manual ops::Add impls to test::traits::closure_2Lukas Wirth2021-04-101-20/+46
| |
* | Implement more precise binary op return type predictionLukas Wirth2021-04-102-17/+51
| |
* | Resolve prelude and crate root names in the root DefMapJonas Schievink2021-04-091-0/+30
| |
* | More cleanups / module docsFlorian Diebold2021-04-096-10/+12
| |
* | More cleanupsFlorian Diebold2021-04-093-38/+29
| |
* | More moving stuff aroundFlorian Diebold2021-04-094-78/+74
| |
* | Move some more stuff to better placesFlorian Diebold2021-04-092-100/+93
| |
* | Move ToChalk -> mappingFlorian Diebold2021-04-0910-37/+76
| |
* | Reorganize hir_ty modulesFlorian Diebold2021-04-0910-100/+73
| | | | | | | | | | Chalk isn't really a 'traits' thing anymore, so it doesn't make sense to have all the Chalk-related stuff in submodules of `traits`.
* | Merge #8406bors[bot]2021-04-092-19/+64
|\ \ | | | | | | | | | | | | | | | | | | | | | 8406: Improve indexing of impls r=flodiebold a=flodiebold Store impls for e.g. &Foo with the ones for Foo instead of the big "other" bucket. This can improve performance and simplifies the HIR impl search a bit. Co-authored-by: Florian Diebold <[email protected]>
| * | Improve indexing of implsFlorian Diebold2021-04-092-19/+64
| | | | | | | | | | | | | | | | | | Store impls for e.g. &Foo with the ones for Foo instead of the big "other" bucket. This can improve performance and simplifies the HIR impl search a bit.
* | | Fix crash on syn involving lifetimes returned by ChalkFlorian Diebold2021-04-093-6/+77
|/ / | | | | | | | | | | | | | | | | | | If we get lifetime variables back in autoderef, just immediately replace them by static lifetimes for now. Method resolution doesn't really deal correctly with new variables being introduced (this needs to be fixed more properly). This fixes `rust-analyzer analysis-stats --with-deps` crashing in the RA repo.