Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Implement binary operator overloading type inference | Roland Ruckerbauer | 2020-10-13 | 3 | -5/+120 |
| | |||||
* | Keep SyntaxNodePtr::range private | Igor Aleksanov | 2020-10-12 | 2 | -4/+13 |
| | |||||
* | Replace 'if let' with 'match' in decl_check.rs | Igor Aleksanov | 2020-10-12 | 1 | -30/+33 |
| | |||||
* | Add to_upper_snake_case function to stdx | Igor Aleksanov | 2020-10-12 | 2 | -4/+3 |
| | |||||
* | Fix compilation error | Igor Aleksanov | 2020-10-12 | 1 | -2/+1 |
| | |||||
* | Apply suggestions from code review | Igor Aleksanov | 2020-10-12 | 1 | -2/+2 |
| | | | Co-authored-by: Lukas Wirth <[email protected]> | ||||
* | Fix code style issues | Igor Aleksanov | 2020-10-12 | 2 | -3/+7 |
| | |||||
* | Fix issues with match arm bindings | Igor Aleksanov | 2020-10-12 | 1 | -7/+12 |
| | |||||
* | Code style adjustments | Igor Aleksanov | 2020-10-12 | 3 | -8/+88 |
| | |||||
* | Make incorrect case diagnostic work inside of functions | Igor Aleksanov | 2020-10-12 | 2 | -33/+248 |
| | |||||
* | Refactor string helpers for decl_check module | Igor Aleksanov | 2020-10-12 | 1 | -32/+97 |
| | |||||
* | Add diagnostics for enum names and variants | Igor Aleksanov | 2020-10-12 | 2 | -2/+147 |
| | |||||
* | Add fix for incorrect case diagnostic | Igor Aleksanov | 2020-10-12 | 1 | -1/+1 |
| | |||||
* | Improve string helpers functions | Igor Aleksanov | 2020-10-12 | 1 | -1/+8 |
| | |||||
* | Check structure fields to be snake_case | Igor Aleksanov | 2020-10-12 | 1 | -46/+65 |
| | |||||
* | Add check for structure names to be CamelCase | Igor Aleksanov | 2020-10-12 | 2 | -1/+139 |
| | |||||
* | Extract helper functions into a separate module | Igor Aleksanov | 2020-10-12 | 2 | -29/+112 |
| | |||||
* | Add checks for function parameters | Igor Aleksanov | 2020-10-12 | 2 | -7/+94 |
| | |||||
* | Create basic support for names case checks and implement function name case ↵ | Igor Aleksanov | 2020-10-12 | 2 | -3/+251 |
| | | | | check | ||||
* | Make unimplemented match variants explicit | Casey Primozic | 2020-10-07 | 1 | -1/+2 |
| | |||||
* | `todo!()` -> `unimplemented!() // FIXME` for CI | Casey Primozic | 2020-10-06 | 2 | -3/+5 |
| | |||||
* | Bump chalk to use latest git to get fix | Casey Primozic | 2020-10-06 | 2 | -0/+13 |
| | | | | * Chalk very recently (like an hour ago) merged a fix that prevents rust analyzer from panicking. This allows it to be usable again for code that hits those situations. See #6134, #6145, Probably #6120 | ||||
* | Fix trait object hir formatting behind pointer and references | Lukas Wirth | 2020-10-06 | 1 | -6/+23 |
| | |||||
* | Update chalk to 0.28.0 | Bram van den Heuvel | 2020-09-25 | 1 | -2/+8 |
| | |||||
* | Bump smol_str from 0.1.16 to 0.1.17 | Jean SIMARD | 2020-09-24 | 1 | -1/+1 |
| | |||||
* | Use Ty::apply instead of simple and fix method resolution. | Charles Lew | 2020-09-16 | 3 | -8/+14 |
| | |||||
* | Add a test. | Charles Lew | 2020-09-16 | 1 | -0/+38 |
| | |||||
* | Lower extern type alias as foreign opaque type. | Charles Lew | 2020-09-16 | 1 | -2/+6 |
| | |||||
* | Update chalk to 0.27 and adapt to chalk changes. | Charles Lew | 2020-09-15 | 6 | -27/+96 |
| | |||||
* | Merge #5971 | bors[bot] | 2020-09-13 | 7 | -53/+213 |
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 5971: Implement async blocks r=flodiebold a=oxalica Fix #4018 @flodiebold already gave a generic guide in the issue. Here's some concern about implementation detail: - Chalk doesn't support generator type yet. - Adding generator type as a brand new type (ctor) can be complex and need to *re-introduced* builtin impls. (Like how we implement closures before native closure support of chalk, which is already removed in #5401 ) - The output type of async block should be known after type inference of the whole body. - We cannot directly get the type from source like return-positon-impl-trait. But we still need to provide trait bounds when chalk asking for `opaque_ty_data`. - During the inference, the output type of async block can be temporary unknown and participate the later inference. `let a = async { None }; let _: i32 = a.await.unwrap();` So in this PR, the type of async blocks is inferred as an opaque type parameterized by the `Future::Output` type it should be, like what we do with closure type. And it really works now. Well, I still have some questions: - The bounds `AsyncBlockImplType<T>: Future<Output = T>` is currently generated in `opaque_ty_data`. I'm not sure if we should put this code here. - Type of async block is now rendered as `impl Future<Output = OutputType>`. Do we need to special display to hint that it's a async block? Note that closure type has its special format, instead of `impl Fn(..) -> ..` or function type. Co-authored-by: oxalica <[email protected]> | ||||
| * | Fix type walking about type of async block | oxalica | 2020-09-11 | 1 | -14/+9 |
| | | |||||
| * | Fix and prettify comments | oxalica | 2020-09-11 | 1 | -4/+6 |
| | | |||||
| * | Implement async blocks | oxalica | 2020-09-10 | 7 | -53/+216 |
| | | |||||
* | | Implement box pattern inference | Jonas Schievink | 2020-09-12 | 1 | -1/+13 |
| | | |||||
* | | Add box pattern test | Jonas Schievink | 2020-09-12 | 1 | -0/+25 |
| | | |||||
* | | Rename record_field_pat to record_pat_field | Pavan Kumar Sunkara | 2020-09-10 | 2 | -4/+4 |
| | | |||||
* | | Tweak interner for chalk | Nathan Whitaker | 2020-09-09 | 1 | -9/+9 |
| | | |||||
* | | Lookup ADT and assoc. type names for chalk debug | Nathan Whitaker | 2020-09-09 | 2 | -5/+21 |
|/ | |||||
* | Switch to expect_test from crates.io | Aleksey Kladov | 2020-08-21 | 9 | -9/+9 |
| | |||||
* | Add type safety to diagnostic codes | Aleksey Kladov | 2020-08-18 | 1 | -17/+17 |
| | |||||
* | Speedup ty tests | Aleksey Kladov | 2020-08-18 | 1 | -6/+11 |
| | | | | Closes #5792 | ||||
* | Merge #5682 | bors[bot] | 2020-08-18 | 1 | -0/+25 |
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | 5682: Add an option to disable diagnostics r=matklad a=popzxc As far as I know, currently it's not possible to disable a selected type of diagnostics provided by `rust-analyzer`. This causes an inconvenient situation with a false-positive warnings: you either have to disable all the diagnostics, or you have to ignore these warnings. There are some open issues related to this problem, e.g.: https://github.com/rust-analyzer/rust-analyzer/issues/5412, https://github.com/rust-analyzer/rust-analyzer/issues/5502 This PR attempts to make it possible to selectively disable some diagnostics on per-project basis. Co-authored-by: Igor Aleksanov <[email protected]> | ||||
| * | Merge branch 'master' into add-disable-diagnostics | Igor Aleksanov | 2020-08-14 | 1 | -0/+25 |
| | | |||||
* | | Fix missing match arm false error on unknown type | CAD97 | 2020-08-17 | 2 | -4/+2 |
| | | |||||
* | | Document missing match arm false positive | CAD97 | 2020-08-17 | 1 | -0/+19 |
| | | | | | | | | | | | | This should already be guarded against (https://github.com/rust-analyzer/rust-analyzer/blob/d2212a49f6d447a14cdc87a9de2a4844e78b6905/crates/hir_ty/src/diagnostics/expr.rs#L225-L230) but it isn't preventing this false positive for some reason. | ||||
* | | Chalk 0.23 | Jeremy Kolb | 2020-08-16 | 1 | -2/+2 |
| | | |||||
* | | Only print chalk programs with CHALK_PRINT | Wilco Kusee | 2020-08-14 | 1 | -10/+15 |
| | | |||||
* | | Lookup adt names | Wilco Kusee | 2020-08-14 | 1 | -1/+2 |
| | | |||||
* | | Only use logging db if CHALK_DEBUG is active | Wilco Kusee | 2020-08-14 | 1 | -12/+15 |
| | | |||||
* | | Print chalk programs in debug output | Wilco Kusee | 2020-08-14 | 2 | -12/+19 |
|/ |