Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | Merge #1034 | bors[bot] | 2019-03-25 | 1 | -30/+57 | |
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1034: HIR diagnostics API r=matklad a=matklad This PR introduces diagnostics API for HIR, so we can now start issuing errors and warnings! Here are requirements that this solution aims to fulfill: * structured diagnostics: rather than immediately rendering error to string, we provide a well-typed blob of data with error-description. These data is used by IDE to provide fixes * open set diagnostics: there's no single enum with all possible diagnostics, which hopefully should result in better modularity The `Diagnostic` trait describes "a diagnostic", which can be downcast to a specific diagnostic kind. Diagnostics are expressed in terms of macro-expanded syntax tree: they store pointers to syntax nodes. Diagnostics are self-contained: you don't need any context, besides `db`, to fully understand the meaning of a diagnostic. Because diagnostics are tied to the source, we can't store them in salsa. So subsystems like type-checking produce subsystem-local diagnostic (which is a closed `enum`), which is expressed in therms of subsystem IR. A separate step converts these proto-diagnostics into `Diagnostic`, by merging them with source-maps. Note that this PR stresses type-system quite a bit: we now type-check every function in open files to compute errors! Discussion on Zulip: https://rust-lang.zulipchat.com/#narrow/stream/185405-t-compiler.2Fwg-rls-2.2E0/topic/Diagnostics.20API Co-authored-by: Aleksey Kladov <[email protected]> | |||||
| * | move tests to where they belong | Aleksey Kladov | 2019-03-25 | 1 | -0/+31 | |
| | | ||||||
| * | simplify | Aleksey Kladov | 2019-03-25 | 1 | -6/+1 | |
| | | ||||||
| * | tweak diagnostics API | Aleksey Kladov | 2019-03-25 | 1 | -2/+2 | |
| | | ||||||
| * | more enterprisey diagnostics setup | Aleksey Kladov | 2019-03-25 | 1 | -49/+30 | |
| | | ||||||
| * | fixes | Aleksey Kladov | 2019-03-25 | 1 | -3/+2 | |
| | | ||||||
| * | check impls as well | Aleksey Kladov | 2019-03-25 | 1 | -0/+9 | |
| | | ||||||
| * | cleanup | Aleksey Kladov | 2019-03-25 | 1 | -2/+2 | |
| | | ||||||
| * | switch modules to new diagnostics | Aleksey Kladov | 2019-03-25 | 1 | -36/+30 | |
| | | ||||||
| * | allow dyn diagnostics | Aleksey Kladov | 2019-03-25 | 1 | -18/+8 | |
| | | ||||||
| * | diagnostics | Aleksey Kladov | 2019-03-25 | 1 | -1/+29 | |
| | | ||||||
* | | structure moved to ra_ide_api | Sergey Parilin | 2019-03-25 | 3 | -6/+377 | |
|/ | | | | ra_ide_api_light removed completely | |||||
* | Rename source_edit to source_file_edit to match file_system_edit | Ville Penttinen | 2019-03-25 | 5 | -11/+11 | |
| | ||||||
* | Further improvements to the SourceChange convenience methods | Ville Penttinen | 2019-03-25 | 4 | -27/+50 | |
| | | | | | Rename system_edit to file_system_edit, add more documentation, add source_file_edit_from to create a SourceChange from `FileId` and `TextEdit`. | |||||
* | Add convenience functions to SourceChange for creating single edits | Ville Penttinen | 2019-03-24 | 4 | -44/+63 | |
| | ||||||
* | Merge #1031 | bors[bot] | 2019-03-23 | 6 | -31/+594 | |
|\ | | | | | | | | | | | | | | | | | | | 1031: Move most things out of ra_ide_api_light r=matklad a=detrumi This moves everything except `structure` out of `ra_ide_api_light`. So this PR and #1019 finish up #1009, whichever is merged last should probably remove the `ra_ide_api_light` crate. Also, `LocalEdit` was removed since it wasn't used any more. Co-authored-by: Wilco Kusee <[email protected]> | |||||
| * | Move highlighting and matching_brace | Wilco Kusee | 2019-03-23 | 5 | -11/+165 | |
| | | ||||||
| * | Remove LocalEdit usage | Wilco Kusee | 2019-03-23 | 2 | -55/+55 | |
| | | ||||||
| * | Move typing to ra_ide_api | Wilco Kusee | 2019-03-23 | 2 | -3/+412 | |
| | | ||||||
* | | remove obsolete diagnostic | Aleksey Kladov | 2019-03-23 | 1 | -21/+0 | |
| | | ||||||
* | | rename persistent hir database -> def database | Aleksey Kladov | 2019-03-23 | 1 | -1/+1 | |
|/ | ||||||
* | replace todo with fixme | Aleksey Kladov | 2019-03-23 | 7 | -7/+7 | |
| | ||||||
* | Simplify changes and fix tests | Wilco Kusee | 2019-03-22 | 3 | -19/+15 | |
| | ||||||
* | Remove LocalEdit usage | Wilco Kusee | 2019-03-22 | 2 | -16/+17 | |
| | ||||||
* | Move join_lines to ra_ide_api | Wilco Kusee | 2019-03-22 | 3 | -4/+616 | |
| | ||||||
* | Move folding_ranges to ra_ide_api | Sergey Parilin | 2019-03-22 | 2 | -2/+330 | |
| | ||||||
* | line_index and line_index_utils moved to ra_ide_api | Sergey Parilin | 2019-03-22 | 3 | -1/+614 | |
| | ||||||
* | Rename name field to ctor as well | Florian Diebold | 2019-03-21 | 1 | -1/+1 | |
| | ||||||
* | TypeName => TypeCtor | Florian Diebold | 2019-03-21 | 1 | -3/+3 | |
| | ||||||
* | Remove the old variants replaced by Ty::Apply | Florian Diebold | 2019-03-21 | 4 | -42/+22 | |
| | ||||||
* | cleanup | Aleksey Kladov | 2019-03-21 | 1 | -68/+73 | |
| | ||||||
* | move diagnostics to ide_api | Aleksey Kladov | 2019-03-21 | 1 | -10/+250 | |
| | ||||||
* | move extend selection from ra_ide_api_light to ra_ide_api | Aleksey Kladov | 2019-03-20 | 1 | -6/+371 | |
| | ||||||
* | introduce Analysis::from_single_file | Aleksey Kladov | 2019-03-20 | 1 | -0/+17 | |
| | ||||||
* | remove old macro support | Aleksey Kladov | 2019-03-17 | 2 | -78/+4 | |
| | ||||||
* | remove lower module | Aleksey Kladov | 2019-03-17 | 2 | -9/+4 | |
| | ||||||
* | Replace module_tree with CrateDefMap | Aleksey Kladov | 2019-03-17 | 1 | -1/+1 | |
| | ||||||
* | Replace Display by a pretty printing trait for Ty | Florian Diebold | 2019-03-16 | 2 | -6/+10 | |
| | | | | | This allows removing the names from Adt and FnDef (and more later), as a first step towards aligning more with chalk's Ty :) | |||||
* | sort navigations to make tests stable | Aleksey Kladov | 2019-03-14 | 1 | -1/+2 | |
| | ||||||
* | Remove superfluous semicolons | kjeremy | 2019-03-08 | 1 | -5/+5 | |
| | | | | | Doesn't change the result of the test but it does prevent the syntax tree from rendering. | |||||
* | Use ast::Name::text() instead of name().syntax().text() | Ville Penttinen | 2019-03-07 | 1 | -2/+2 | |
| | ||||||
* | Fix EnumVariants not showing properly when hovering | Ville Penttinen | 2019-03-07 | 1 | -2/+56 | |
| | | | | This fixes documentation as well for EnumVariants | |||||
* | Add support for goto definition and hover on Self | Ville Penttinen | 2019-03-07 | 3 | -2/+165 | |
| | | | | This fixes #943 | |||||
* | Use source map | kjeremy | 2019-03-06 | 1 | -14/+9 | |
| | ||||||
* | Hover for associated items in patterns | kjeremy | 2019-03-06 | 2 | -8/+55 | |
| | ||||||
* | dont produce giant debug dumps | Aleksey Kladov | 2019-03-05 | 1 | -1/+8 | |
| | ||||||
* | Make ExpOrPatId private | kjeremy | 2019-03-04 | 1 | -1/+1 | |
| | ||||||
* | Format | Jeremy Kolb | 2019-03-04 | 1 | -7/+2 | |
| | ||||||
* | Add NavigationTarget::from_impl_item | Jeremy Kolb | 2019-03-04 | 2 | -14/+22 | |
| | ||||||
* | Use ImplItems instead of just Function | Jeremy Kolb | 2019-03-04 | 2 | -6/+17 | |
| |