Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Better tests: check if match checking bails out. | Dawer | 2021-05-31 | 1 | -0/+2 |
| | |||||
* | Replace the old match checking algorithm | Dawer | 2021-05-31 | 1 | -102/+17 |
| | |||||
* | Clean up, more docs. | Dawer | 2021-05-31 | 1 | -1/+0 |
| | |||||
* | Check pattern types. | Dawer | 2021-05-31 | 1 | -29/+48 |
| | |||||
* | Do not do match check if lowering failed. | Dawer | 2021-05-31 | 1 | -2/+19 |
| | |||||
* | Basic lowering hir_def::exrp::Pat -> typed HIR. | Dawer | 2021-05-31 | 1 | -9/+30 |
| | | | | Pattern arena is broken | ||||
* | Implement struct ctor application | Dawer | 2021-05-31 | 1 | -1/+1 |
| | |||||
* | Remove unneeded indirection on PatCtxt | Dawer | 2021-05-31 | 1 | -2/+2 |
| | |||||
* | Enable generation of non-exhaustiveness witnesses | Dawer | 2021-05-31 | 1 | -1/+2 |
| | |||||
* | Update match checking. | Dawer | 2021-05-31 | 1 | -1/+69 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | fn is_useful , more skeletons Specify a lifetime on pattern references impl PatStack fill impl Matrix PatStack::pop_head_constructor Index-based approach struct PatCtxt fields construction fn Fields::wildcards split wildcard fn Constructor::is_covered_by_any(..) fn Matrix::specialize_constructor(..) impl Usefulness Initial work on witness construction Reorganize files Replace match checking diagnostic Handle types of expanded patterns unit match checking go brrr | ||||
* | internal: move diagnostics to hir | Aleksey Kladov | 2021-05-25 | 1 | -1/+2 |
| | | | | | | | | | | | | | | | | | | | | | | | The idea here is to eventually get rid of `dyn Diagnostic` and `DiagnosticSink` infrastructure altogether, and just have a `enum hir::Diagnostic` instead. The problem with `dyn Diagnostic` is that it is defined in the lowest level of the stack (hir_expand), but is used by the highest level (ide). As a first step, we free hir_expand and hir_def from `dyn Diagnostic` and kick the can up to `hir_ty`, as an intermediate state. The plan is then to move DiagnosticSink similarly to the hir crate, and, as final third step, remove its usage from the ide. One currently unsolved problem is testing. You can notice that the test which checks precise diagnostic ranges, unresolved_import_in_use_tree, was moved to the ide layer. Logically, only IDE should have the infra to render a specific range. At the same time, the range is determined with the data produced in hir_def and hir crates, so this layering is rather unfortunate. Working on hir_def shouldn't require compiling `ide` for testing. | ||||
* | Record method call substs and use them in call info | Florian Diebold | 2021-05-23 | 1 | -8/+4 |
| | |||||
* | Add last remaining module docstring | Florian Diebold | 2021-05-22 | 1 | -1/+3 |
| | |||||
* | Check patterns for type match recursively. | Dawer | 2021-05-19 | 1 | -2/+18 |
| | |||||
* | internal: Record mismatches of pattern types. | Dawer | 2021-05-19 | 1 | -1/+1 |
| | |||||
* | Fix inference with conditionally compiled tails | Daniel McNab | 2021-05-03 | 1 | -1/+1 |
| | | | | Fixes #8378 | ||||
* | infer: remove `record_field_resolutions` field | Jonas Schievink | 2021-04-06 | 1 | -5/+4 |
| | | | | | It stores no useful data, since we can derive all fields from `variant_resolutions` | ||||
* | Add Lifetime to TyKind::Ref | Lukas Wirth | 2021-04-06 | 1 | -1/+1 |
| | |||||
* | Hide Binders internals more | Florian Diebold | 2021-04-05 | 1 | -1/+2 |
| | |||||
* | Add TyBuilder::unit() and TyExt::is_unit() | Florian Diebold | 2021-04-04 | 1 | -2/+2 |
| | |||||
* | Rename Ty::interned to Ty::kind | Florian Diebold | 2021-04-03 | 1 | -1/+1 |
| | | | | ... since that's the actual method on Chalk side that matches the signature. | ||||
* | Introduce `GenericArg` like in Chalk | Florian Diebold | 2021-04-03 | 1 | -1/+3 |
| | | | | | | | Plus some more adaptations to Substitution. Lots of `assert_ty_ref` that we should revisit when introducing lifetime/const parameters. | ||||
* | Improve test | Jonas Schievink | 2021-03-17 | 1 | -0/+21 |
| | |||||
* | Add test for `#[cfg]` on function params | Jonas Schievink | 2021-03-17 | 1 | -0/+13 |
| | |||||
* | Handle `#[cfg]` on call arguments | Jonas Schievink | 2021-03-17 | 1 | -0/+23 |
| | |||||
* | avoid converting types into themselves via .into() (clippy::useless-conversion) | Matthias Krüger | 2021-03-17 | 1 | -9/+9 |
| | | | | example: let x: String = String::from("hello world").into(); | ||||
* | Separate `Ty` and `TyKind` like in Chalk | Florian Diebold | 2021-03-13 | 1 | -11/+10 |
| | | | | | Currently `Ty` just wraps `TyKind`, but this allows us to change most places to already use `intern` / `interned`. | ||||
* | Use chalk_ir::AdtId | Lukas Wirth | 2021-03-04 | 1 | -6/+8 |
| | |||||
* | Inline TypeCtor into Ty | Lukas Wirth | 2021-02-28 | 1 | -7/+4 |
| | |||||
* | Update tests to register the required standard library types | Phil Ellison | 2021-01-23 | 1 | -6/+10 |
| | |||||
* | Identify methods using functions ids rather than string names | Phil Ellison | 2021-01-23 | 1 | -7/+27 |
| | |||||
* | Implement fix, add tests | Phil Ellison | 2021-01-23 | 1 | -20/+7 |
| | |||||
* | Add diagnostic for filter_map followed by next | Phil Ellison | 2021-01-23 | 1 | -9/+61 |
| | |||||
* | Fixed typos in local bindings | Vincent Esche | 2021-01-09 | 1 | -2/+2 |
| | |||||
* | cargo fmt | Phil Ellison | 2021-01-07 | 1 | -6/+9 |
| | |||||
* | Add fix to wrap return expression in Some | Phil Ellison | 2021-01-07 | 1 | -6/+16 |
| | |||||
* | Don't emit arg count diagnostics for method calls with unknown receiver | Florian Diebold | 2021-01-01 | 1 | -1/+25 |
| | | | | Fixes #7098. | ||||
* | Cast to ExprStmt, style fixes | ivan770 | 2020-12-10 | 1 | -6/+5 |
| | |||||
* | Apply rustfmt changes | ivan770 | 2020-12-09 | 1 | -9/+8 |
| | |||||
* | Apply suggestions from code review | ivan770 | 2020-12-09 | 1 | -17/+20 |
| | | | Co-authored-by: bjorn3 <[email protected]> | ||||
* | Format code | ivan770 | 2020-12-08 | 1 | -4/+13 |
| | |||||
* | Remove use via super | ivan770 | 2020-12-08 | 1 | -3/+1 |
| | |||||
* | Remove this semicolon | ivan770 | 2020-12-08 | 1 | -1/+26 |
| | |||||
* | Deny unreachable-pub | Aleksey Kladov | 2020-11-02 | 1 | -11/+4 |
| | | | | | | | | 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. | ||||
* | Fix missing match arm false error on unknown type | CAD97 | 2020-08-17 | 1 | -2/+2 |
| | |||||
* | Rename ra_hir_ty -> hir_ty | Aleksey Kladov | 2020-08-13 | 1 | -0/+569 |