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 | ||||
* | Update crates | kjeremy | 2020-10-11 | 1 | -3/+3 |
| | |||||
* | Switch from git to latest tagged release of chalk deps | Casey Primozic | 2020-10-07 | 1 | -3/+3 |
| | |||||
* | 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 | 3 | -3/+16 |
| | | | | * 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.30.0 | Nathan Whitaker | 2020-09-28 | 1 | -3/+3 |
| | |||||
* | chalk 0.29.0 | Jeremy Kolb | 2020-09-28 | 1 | -3/+3 |
| | |||||
* | Update chalk to 0.28.0 | Bram van den Heuvel | 2020-09-25 | 2 | -5/+11 |
| | |||||
* | 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 | 7 | -30/+99 |
| | |||||
* | 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 |
| | | |||||
* | | Merge #5968 | bors[bot] | 2020-09-09 | 3 | -14/+30 |
|\ \ | |/ |/| | | | | | | | | | | | | | | | 5968: Lookup ADT and associated type names for chalk debugging / tweak chalk interner r=flodiebold a=nathanwhit This PR improves the chalk program writing integration by looking up the names for ADTs and associated types, making the output much more readable. There are also a few small changes to the interner, which gives some nice performance improvements. We clone `Ty`s and `ProgramClause`s relatively often in chalk, so wrapping them in `Arc`s is a perf win. This takes the time for performing type inference on the rust-analyzer codebase from 40s to 33s on my machine. Co-authored-by: Nathan Whitaker <[email protected]> | ||||
| * | 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 |
| | | |||||
* | | Chalk 0.25 | kjeremy | 2020-09-02 | 1 | -3/+3 |
|/ | | | | Picks up flodiebold's infinite loop fix | ||||
* | :arrow_up: expect-test | Aleksey Kladov | 2020-08-28 | 1 | -1/+1 |
| | |||||
* | Add description for crates that will be published | Pavan Kumar Sunkara | 2020-08-24 | 1 | -0/+1 |
| | |||||
* | Add version to deps in cargo.toml | Pavan Kumar Sunkara | 2020-08-24 | 1 | -8/+8 |
| | |||||
* | Switch to expect_test from crates.io | Aleksey Kladov | 2020-08-21 | 10 | -11/+10 |
| | |||||
* | 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 |