diff options
| author | bors <bors@rust-lang.org> | 2015-10-27 22:56:39 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2015-10-27 22:56:39 +0000 |
| commit | e0e262737478b695d115519f7856e475c17f84e1 (patch) | |
| tree | 9005b7015d0b9311321259ad6d53134d5b33690e /src/rustllvm/RustWrapper.cpp | |
| parent | 8a72584f977d2d72f752c2a540e160944159e8db (diff) | |
| parent | 99f9bb16ab83519d67deaf4ca8a78feeba67fb53 (diff) | |
| download | rust-e0e262737478b695d115519f7856e475c17f84e1.tar.gz rust-e0e262737478b695d115519f7856e475c17f84e1.zip | |
Auto merge of #29072 - nagisa:place-arrow, r=pnkfelix
This commit generalises parsing of associative operators from left-associative only (with some ugly hacks to support right-associative assignment) to properly left/right-associative operators. Parsing is still is not general enough to handle non-associative, non-highest-precedence prefix or non-highest-precedence postfix operators (e.g. `..` range syntax) and should be made to be. Lastly, this commit adds support for parsing right-associative `<-` (left arrow) operator with precedence higher than assignment as the operator for placement-in feature. --- This PR still needs various non-parser changes (e.g. src/grammar and tests) and I’m still working on these; the meat of the PR can already be reviewed, though, I think. Please review carefully. I made sure that quirks I have discovered so far are preserved (see e.g. https://github.com/rust-lang/rust/issues/29071) and am looking for more corner cases as I continue to work on tests et al, but there may be something I haven’t noticed or accounted for. EDIT: I’m also not sure I managed to preserve all the semantics with the range operator inside non-trivial expressions since these are a mess at the moment. Crater runs would be nice.
Diffstat (limited to 'src/rustllvm/RustWrapper.cpp')
0 files changed, 0 insertions, 0 deletions
