aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_syntax
Commit message (Collapse)AuthorAgeFilesLines
* Implement type inference for more binary operatorsMarcus Klaas de Vries2019-01-071-2/+2
| | | | | Mostly just for primitive numeric types such as u32 and f64. Not yet a general solution using trait resolution.
* Add remaining binary operations to ASTMarcus Klaas de Vries2019-01-073-1/+72
|
* Merge #440bors[bot]2019-01-061-0/+52
|\ | | | | | | | | | | | | | | | | | | 440: Implement type inference for boolean operators r=flodiebold a=marcusklaas Tried implementing the easiest part of https://github.com/rust-analyzer/rust-analyzer/issues/390. Hope this is somewhat close to what the intent of the issue was. Found it surprisingly easy to find my way around the repository - it's well organized! Very grateful for any pointers. Co-authored-by: Marcus Klaas de Vries <[email protected]>
| * Touch up type inference for boolean operatorsMarcus Klaas de Vries2019-01-063-26/+26
| | | | | | | | | | Also try to infer its subexpressions and set type expectations whenever possible.
| * Implement type inference for boolean operatorsMarcus Klaas de Vries2019-01-053-2/+54
| |
* | Make FnScopes use hir::ExprFlorian Diebold2019-01-052-22/+13
| | | | | | | | | | | | This was a bit complicated. I've added a wrapper type for now that does the LocalSyntaxPtr <-> ExprId translation; we might want to get rid of that or give it a nicer interface.
* | Add HIR Expr machineryFlorian Diebold2019-01-052-3/+11
|/
* change visibility can change pub to pub(crate)Aleksey Kladov2019-01-051-0/+18
|
* split import assistAleksey Kladov2019-01-051-0/+6
|
* Rename traits::impl_item -> impl_block as well, as well as the testsFlorian Diebold2019-01-046-4/+4
|
* Type the self parameterFlorian Diebold2019-01-043-2/+79
|
* Add HIR for impl blocksFlorian Diebold2019-01-042-3/+43
| | | | | | | | | Since we need to be able to go from def to containing impl block, as well as the other direction, and to find all impls for a certain type, a design similar to the one for modules, where we collect all impls for the whole crate and keep them in an arena, seemed fitting. The ImplBlock type, which provides the public interface, then consists only of an Arc to the arena containing all impls, and the index into it.
* Rename ImplItem to ImplBlockFlorian Diebold2019-01-0421-47/+46
| | | | | rustc uses the name ImplItem for items in impls, not the impl {} block itself, which could lead to confusion.
* add mod doc comments test in astcsmoe2019-01-041-0/+13
|
* parse doc comment for itemscsmoe2019-01-041-0/+12
|
* add mod doc comment testcsmoe2019-01-042-0/+22
|
* Merge #391bors[bot]2019-01-045-59/+117
|\ | | | | | | | | | | | | | | 391: docing parser methods r=csmoe a=csmoe Co-authored-by: csmoe <[email protected]>
| * consume trivias for type/const defcsmoe2019-01-041-2/+1
| |
| * doc parsing eventscsmoe2019-01-044-43/+71
| |
| * doc parser inputcsmoe2019-01-012-10/+30
| |
| * docing parser methodscsmoe2018-12-314-12/+23
| |
* | more enterprisey assists APIAleksey Kladov2019-01-031-0/+6
| |
* | visibility ownerAleksey Kladov2019-01-033-4/+64
| |
* | add items from macros to modulesAleksey Kladov2019-01-011-0/+30
| |
* | save top-level macros in module itemsAleksey Kladov2019-01-011-1/+1
| |
* | bump depsAleksey Kladov2019-01-011-3/+3
| |
* | Fix the same bug as #396 but for bytes tooDJMcNab2019-01-012-1/+4
| |
* | Use an else ifDJMcNab2019-01-011-3/+2
| |
* | Fix the `panic` found whilst fuzzingDJMcNab2018-12-312-3/+10
|/
* Merge #366bors[bot]2018-12-303-33/+51
|\ | | | | | | | | | | | | | | | | | | | | 366: parse minus before number literal pattern r=matklad a=csmoe r?@matklad ![unknown](https://user-images.githubusercontent.com/35686186/50547871-d5449e00-0c7d-11e9-9ff5-1031e78019de.png) Co-authored-by: csmoe <[email protected]>
| * parse minus before number literalcsmoe2018-12-303-33/+51
| |
* | Add fuzz failure to the fuzz-failures directoryDJMcNab2018-12-291-0/+1
| |
* | Fix a fuzzing bug and add Cargo.lock to the fuzzing directoryDJMcNab2018-12-293-2/+532
| |
* | super simplistic macro expansionAleksey Kladov2018-12-282-1/+5
| |
* | add macro-call nodeAleksey Kladov2018-12-282-0/+42
| |
* | Bump parking_lot from 0.6.4 to 0.7.0dependabot[bot]2018-12-271-1/+1
| | | | | | | | | | | | | | | | Bumps [parking_lot](https://github.com/Amanieu/parking_lot) from 0.6.4 to 0.7.0. - [Release notes](https://github.com/Amanieu/parking_lot/releases) - [Changelog](https://github.com/Amanieu/parking_lot/blob/master/CHANGELOG.md) - [Commits](https://github.com/Amanieu/parking_lot/commits) Signed-off-by: dependabot[bot] <[email protected]>
| |
| \
*-. \ Merge #343 #344bors[bot]2018-12-271-2/+2
|\ \ \ | |_|/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 343: Bump arrayvec from 0.4.9 to 0.4.10 r=matklad a=dependabot[bot] Bumps [arrayvec](https://github.com/bluss/arrayvec) from 0.4.9 to 0.4.10. <details> <summary>Commits</summary> - [`21661fa`](https://github.com/bluss/arrayvec/commit/21661facf8f5d65b4bd6701e48d218eb957314fa) 0.4.10 - [`06930d2`](https://github.com/bluss/arrayvec/commit/06930d27ce8e292755754b1e09901fb36cd46919) FIX: Remove unused Copy/Clone for MaybeUninit - [`85d9a06`](https://github.com/bluss/arrayvec/commit/85d9a06a62d73776b2fe7786e2d50e2833384331) FIX: Use repr(C) MaybeUninit after discussion with RalfJung - See full diff in [compare view](https://github.com/bluss/arrayvec/compare/0.4.9...0.4.10) </details> <br /> [![Dependabot compatibility score](https://api.dependabot.com/badges/compatibility_score?dependency-name=arrayvec&package-manager=cargo&previous-version=0.4.9&new-version=0.4.10)](https://dependabot.com/compatibility-score.html?dependency-name=arrayvec&package-manager=cargo&previous-version=0.4.9&new-version=0.4.10) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- **Note:** This repo was added to Dependabot recently, so you'll receive a maximum of 5 PRs for your first few update runs. Once an update run creates fewer than 5 PRs we'll remove that limit. You can always request more updates by clicking `Bump now` in your [Dependabot dashboard](https://app.dependabot.com). <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot ignore this [patch|minor|major] version` will close this PR and stop Dependabot creating any more for this minor/major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) - `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language - `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language - `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language - `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language - `@dependabot badge me` will comment on this PR with code to add a "Dependabot enabled" badge to your readme Additionally, you can set the following in your Dependabot [dashboard](https://app.dependabot.com): - Update frequency (including time of day and day of week) - Automerge options (never/patch/minor, and dev/runtime dependencies) - Pull request limits (per update run and/or open at any time) - Out-of-range updates (receive only lockfile updates, if desired) - Security updates (receive only security updates, if desired) Finally, you can contact us by mentioning @dependabot. </details> 344: Bump itertools from 0.7.11 to 0.8.0 r=matklad a=dependabot[bot] Bumps [itertools](https://github.com/bluss/rust-itertools) from 0.7.11 to 0.8.0. <details> <summary>Commits</summary> - [`cd0602a`](https://github.com/bluss/rust-itertools/commit/cd0602addc43bfb0d2335e5c0034a89bcbb0f326) 0.8.0 - [`5a8f2fd`](https://github.com/bluss/rust-itertools/commit/5a8f2fd5edbc62eea8a877180eaec171f05f66d3) MAINT: Require Rust 1.24 as minimum version - [`4986d92`](https://github.com/bluss/rust-itertools/commit/4986d92d7f6fb128afe8c9228ccdb443f4bc1537) DOC: Minor edits to module docs - [`01f15a0`](https://github.com/bluss/rust-itertools/commit/01f15a0910e3c843df15958f5b0296708286d4ee) Merge [#288](https://github-redirect.dependabot.com/bluss/rust-itertools/issues/288) - [`883d40a`](https://github.com/bluss/rust-itertools/commit/883d40a6efcf0451dab0a9cd006ab7de18be8de2) map_into method - [`3bf265d`](https://github.com/bluss/rust-itertools/commit/3bf265d5b7e991b63b174b2e091659e8ee54b4c4) Merge pull request [#321](https://github-redirect.dependabot.com/bluss/rust-itertools/issues/321) from JohnHeitmann/master - [`e820996`](https://github.com/bluss/rust-itertools/commit/e820996f6409c5615c9dd61d1865e48a7a2ad520) Document the trait extension behavior of Itertools a bit more clearly - [`44c9654`](https://github.com/bluss/rust-itertools/commit/44c9654fdb3653389ddd57048363808de9737381) Merge pull request [#318](https://github-redirect.dependabot.com/bluss/rust-itertools/issues/318) from bluss/std-deprecations - [`d2e254f`](https://github.com/bluss/rust-itertools/commit/d2e254f22fe3bd962c38ab1db8d9f6c162dbf81c) API: Fix the mystery deprecation message for Step - [`602f2f6`](https://github.com/bluss/rust-itertools/commit/602f2f675ea87c0860d9161cbfdc98d09911cde7) API: Deprecate .foreach() in favour of std's .for_each() - Additional commits viewable in [compare view](https://github.com/bluss/rust-itertools/compare/0.7.11...0.8.0) </details> <br /> [![Dependabot compatibility score](https://api.dependabot.com/badges/compatibility_score?dependency-name=itertools&package-manager=cargo&previous-version=0.7.11&new-version=0.8.0)](https://dependabot.com/compatibility-score.html?dependency-name=itertools&package-manager=cargo&previous-version=0.7.11&new-version=0.8.0) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- **Note:** This repo was added to Dependabot recently, so you'll receive a maximum of 5 PRs for your first few update runs. Once an update run creates fewer than 5 PRs we'll remove that limit. You can always request more updates by clicking `Bump now` in your [Dependabot dashboard](https://app.dependabot.com). <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot ignore this [patch|minor|major] version` will close this PR and stop Dependabot creating any more for this minor/major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) - `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language - `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language - `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language - `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language - `@dependabot badge me` will comment on this PR with code to add a "Dependabot enabled" badge to your readme Additionally, you can set the following in your Dependabot [dashboard](https://app.dependabot.com): - Update frequency (including time of day and day of week) - Automerge options (never/patch/minor, and dev/runtime dependencies) - Pull request limits (per update run and/or open at any time) - Out-of-range updates (receive only lockfile updates, if desired) - Security updates (receive only security updates, if desired) Finally, you can contact us by mentioning @dependabot. </details> Co-authored-by: dependabot[bot] <[email protected]>
| | * Bump itertools from 0.7.11 to 0.8.0dependabot[bot]2018-12-271-1/+1
| |/ |/| | | | | | | | | | | Bumps [itertools](https://github.com/bluss/rust-itertools) from 0.7.11 to 0.8.0. - [Release notes](https://github.com/bluss/rust-itertools/releases) - [Commits](https://github.com/bluss/rust-itertools/compare/0.7.11...0.8.0) Signed-off-by: dependabot[bot] <[email protected]>
| * Bump arrayvec from 0.4.9 to 0.4.10dependabot[bot]2018-12-271-1/+1
|/ | | | | | | Bumps [arrayvec](https://github.com/bluss/arrayvec) from 0.4.9 to 0.4.10. - [Release notes](https://github.com/bluss/arrayvec/releases) - [Commits](https://github.com/bluss/arrayvec/compare/0.4.9...0.4.10) Signed-off-by: dependabot[bot] <[email protected]>
* fix suffix rangesAleksey Kladov2018-12-276-4/+95
|
* dump validation errorsAleksey Kladov2018-12-271-2/+5
|
* support literal suffixesAleksey Kladov2018-12-277-2/+40
|
* dedupe literal parsersAleksey Kladov2018-12-2710-374/+220
|
* Add a hir::TypeRef as an intermediate between ast::TypeRef and ty::TyFlorian Diebold2018-12-252-10/+38
|
* Implement reference / pointer typesFlorian Diebold2018-12-253-6/+57
| | | | | - parse them - infer types of & and * expressions
* Implement basic completion for fieldsFlorian Diebold2018-12-252-1/+5
|
* Improve parsing of incomplete field accesses in preparation for field completionFlorian Diebold2018-12-253-9/+45
| | | | | We need to be able to get the receiver even if there is no field name yet, and currently "a." wouldn't get parsed as a field name at all. This seems to help.
* Type field accessesFlorian Diebold2018-12-252-2/+10
|
* Add AST definitions for struct/variant fields etc.Florian Diebold2018-12-253-12/+256
| | | | Fixes #117
* Infer result of struct literals, and recurse into their child expressionsFlorian Diebold2018-12-252-6/+26
|