aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_syntax/src/grammar/items/traits.rs
diff options
context:
space:
mode:
authorbors[bot] <bors[bot]@users.noreply.github.com>2018-12-17 19:43:51 +0000
committerbors[bot] <bors[bot]@users.noreply.github.com>2018-12-17 19:43:51 +0000
commit1875aa024f885f1d6119bff8aa828634b4941248 (patch)
tree273bdffe892f2eeef1850e2d3f7b1ca9ed228285 /crates/ra_syntax/src/grammar/items/traits.rs
parent8d42deeac354d1f8297d6c4d52b2707fb8d7a771 (diff)
parentd0f1334226fc25a8c00ecccd64c0021e4aef9ca5 (diff)
Merge #280
280: Fixed cast expression parsing in ra_syntax. r=matklad a=ruabmbua Fixes #279 Related to https://github.com/rust-analyzer/rust-analyzer/pull/273 The cast expression expected any type via types::type_() function, but the language spec does only allow TypeNoBounds (types without direct extra bounds via `+`). **Example:** ```rust fn test() { 6i8 as i32 + 5; } ``` This fails, because the types::type_() function which should parse the type after the as keyword is greedy, and takes the plus sign after path types as extra type bounds. My proposed fix is to replace the not implemented `type_no_plus()` just calls (`type_()`) function, which is used at several places. The replacement is `type_with_bounds_cond(p: &mut Parser, allow_bounds: bool)`, which passes the condition to relevant sub-parsers. This function is then called by `type_()` and the new public `type_no_bounds()`. Co-authored-by: Roland Ruckerbauer <[email protected]>
Diffstat (limited to 'crates/ra_syntax/src/grammar/items/traits.rs')
0 files changed, 0 insertions, 0 deletions