aboutsummaryrefslogtreecommitdiff
path: root/crates/hir_ty/src
Commit message (Collapse)AuthorAgeFilesLines
* Merge #6845bors[bot]2020-12-121-1/+9
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | 6845: Don't HirDisplay unknown types when displaying for source r=Veykril a=Veykril Was wondering why the add missing impl assist didn't do anything here: ![Code_JCA1Qo0V9P](https://user-images.githubusercontent.com/3757771/101990300-7af44a80-3ca6-11eb-8431-e5eb4de4e78c.png) Turns out me forgetting to set the Index::Idx type in the trait causes RA to panic due to it trying to to create an unparsable type in the `make` module. Now we get this instead which imo is definitely better to have. ![Code_MUFPJUCULY](https://user-images.githubusercontent.com/3757771/101990347-c9094e00-3ca6-11eb-9c6a-146bddf64b7c.png) Co-authored-by: Lukas Wirth <[email protected]>
| * Don't HirDisplay unknown types when displaying for sourceLukas Wirth2020-12-121-1/+9
| |
* | Merge #6818bors[bot]2020-12-125-39/+77
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | 6818: Add Lifetimes to the HIR r=matklad a=Veykril This doesn't handle resolve yet as I don't know yet how that will be used. I'll get to that once I start moving the lifetime reference PR to the hir. This also adds a new `hir` name type for lifetimes and labels, `hir::LifetimeName`. Co-authored-by: Lukas Wirth <[email protected]>
| * | Add Lifetimes to the HIRLukas Wirth2020-12-115-39/+77
| |/
* | Added remove this semicolon testivan7702020-12-121-0/+10
| |
* | Infer labeled blocksLukas Wirth2020-12-112-4/+74
|/
* Merge #6769bors[bot]2020-12-102-3/+60
|\ | | | | | | | | | | | | | | | | | | 6769: Add native "remove this semicolon" diagnostics r=matklad a=ivan770 Closes #6739 ![demo2](https://user-images.githubusercontent.com/14003886/101530533-b76c3180-399a-11eb-9d18-5c8457721655.gif) Co-authored-by: ivan770 <[email protected]>
| * Cast to ExprStmt, style fixesivan7702020-12-101-6/+5
| |
| * Apply rustfmt changesivan7702020-12-091-9/+8
| |
| * Apply suggestions from code reviewivan7702020-12-091-17/+20
| | | | | | Co-authored-by: bjorn3 <[email protected]>
| * Format codeivan7702020-12-081-4/+13
| |
| * Remove use via superivan7702020-12-081-3/+1
| |
| * Remove this semicolonivan7702020-12-082-1/+50
| |
* | Use mark/hitJonas Schievink2020-12-101-0/+7
| |
* | Ignore extern items in incorrect-case checkJonas Schievink2020-12-101-0/+19
| |
* | Implement HirDisplay for FnSigJonas Schievink2020-12-091-20/+23
| | | | | | | | This could be useful for diagnostics, but isn't used right now
* | Introduce anchored_pathAleksey Kladov2020-12-091-3/+5
|/ | | | | They allow to represent paths like `#[path = "C:\path.rs"] mod foo;` in a lossless cross-platform & network-transparent way.
* Upgrade ChalkFlorian Diebold2020-12-076-14/+126
| | | | | | | Also make overflow depth and max type size configurable through env variables. This can be helpful at least for debugging. Fixes #6628.
* Use correct, full substs for self type in implFlorian Diebold2020-12-042-1/+26
| | | | | | | | Without arbitrary self types, the self type could never refer to the method type parameters, so this wasn't a problem; but with arbitrary self types, it can. This fixes the crash from #6668; but it doesn't make method resolution work for these methods.
* Check structs for match exhaustivenessLukas Wirth2020-11-241-31/+120
|
* Add middle ellipsis missing arm textLukas Wirth2020-11-241-0/+14
|
* Handle ellipsis in tuple patterns in match exhaustiveness checkingLukas Wirth2020-11-241-42/+41
|
* Properly infer tuple struct patterns when encountering ellipsisLukas Wirth2020-11-242-9/+70
|
* Properly infer tuple patterns when encountering ellipsisLukas Wirth2020-11-242-8/+64
|
* Replace RacyFlag with OnceCellAleksey Kladov2020-11-111-3/+4
|
* Improve decl_check module readabilityIgor Aleksanov2020-11-031-6/+6
|
* Remove numbers from comments in decl_check.rsIgor Aleksanov2020-11-031-15/+15
|
* Check for allow(..) attributes for case diagnosticIgor Aleksanov2020-11-031-25/+91
|
* Remove more unreachable pubsAleksey Kladov2020-11-025-21/+21
|
* Deny unreachable-pubAleksey Kladov2020-11-029-67/+68
| | | | | | | | 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.
* Upgrade Chalk to 0.36Florian Diebold2020-10-304-316/+176
| | | | Quite a few changes, because Chalk got rid of the `ApplicationTy` nesting.
* refactor(hir_ty): do not override DisplayTarget in hir_fmtBenjamin Coenen2020-10-281-45/+68
| | | | Signed-off-by: Benjamin Coenen <[email protected]>
* do not use associated types placeholder for inlay hintBenjamin Coenen2020-10-284-8/+17
| | | | Signed-off-by: Benjamin Coenen <[email protected]>
* do not use associated types placeholder for inlay hintBenjamin Coenen2020-10-283-60/+44
| | | | Signed-off-by: Benjamin Coenen <[email protected]>
* do not use associated types placeholder for inlay hintBenjamin Coenen2020-10-285-155/+87
| | | | Signed-off-by: Benjamin Coenen <[email protected]>
* do not use associated types placeholder for inlay hintBenjamin Coenen2020-10-282-31/+102
| | | | Signed-off-by: Benjamin Coenen <[email protected]>
* do not use associated types placeholder for inlay hint #6191Benjamin Coenen2020-10-273-19/+61
| | | | Signed-off-by: Benjamin Coenen <[email protected]>
* Fix case where non FnOnce variables is marked callableGrayJack2020-10-261-0/+13
|
* Merge #6350bors[bot]2020-10-261-126/+123
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | 6350: Make IncorrectDiagnostic match rustc by copying rustc's code. r=popzxc a=ArifRoktim This closes #6343 and closes #6345. The old algorithm which used a `DetectedCase` enum, didn't match how rustc thinks of cases. Some inputs can be interpreted as more than 1 case depending on the situation. For example, to rustc: - `ABCD`: Can be both camel case and upper snake case - `X86_64`: Can be both camel case and upper snake case I could've made `detect_case` return a collection of `DetectedCase` and then modified the other code as such, but I think using the same code rustc uses is simpler and a surefire way to achieve the same diagnostics as rustc. Co-authored-by: Arif Roktim <[email protected]>
| * Make IncorrectDiagnostic match rustc by copying rustc's code.Arif Roktim2020-10-251-126/+123
| |
* | Get rid of FAKE_PLACEHOLDERFlorian Diebold2020-10-251-8/+9
|/ | | | | The lifetime placeholder can be replaced by the static lifetime, and for array sizes we should just be using a concrete const.
* Improve Chalk debuggingFlorian Diebold2020-10-231-7/+23
| | | | | | - add panic context for the trait goal if CHALK_DEBUG is set - print the Chalk program even if we're panicking - log goal/solution while TLS is still set
* Merge #6319bors[bot]2020-10-222-3/+34
|\ | | | | | | | | | | | | | | 6319: Properly identify camel cased acronyms as UpperCamelCase r=popzxc a=ArifRoktim This closes #6305. Co-authored-by: Arif Roktim <[email protected]>
| * Properly identify camel cased acronyms as UpperCamelCaseArif Roktim2020-10-212-3/+34
| |
* | Merge #6307bors[bot]2020-10-211-0/+18
|\ \ | |/ |/| | | | | | | | | | | | | | | | | | | 6307: Add whitelist of safe intrinsics r=frazar a=frazar This PR should fix #5996, where intrinsic operations where all marked as unsafe. I'm rather new to this codebase, so I might be doing something *very* wrong. Please forgive me! In particular, I'm not sure how to "check that we are in extern `rust-intrinsics`" as mentioned [in this comment](https://github.com/rust-analyzer/rust-analyzer/issues/5996#issuecomment-709234802). Co-authored-by: Francesco Zardi <[email protected]>
| * Move safe intrinsic testsFrancesco Zardi2020-10-211-0/+18
| |
* | Add descriptions for diagnostics parseable by xtaskIgor Aleksanov2020-10-191-0/+55
|/
* binary operator overload type inference: add test markRoland Ruckerbauer2020-10-142-0/+6
|
* Implement binary operator overloading type inferenceRoland Ruckerbauer2020-10-133-5/+120
|
* Keep SyntaxNodePtr::range privateIgor Aleksanov2020-10-122-4/+13
|