Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

What should be allowed in the pattern grammar? #5184

Closed
ghost opened this issue Mar 1, 2013 · 6 comments
Closed

What should be allowed in the pattern grammar? #5184

ghost opened this issue Mar 1, 2013 · 6 comments
Labels
A-frontend Area: Compiler frontend (errors, parsing and HIR)

Comments

@ghost
Copy link

ghost commented Mar 1, 2013

Consider the following code:

let a = 0b11;
let b = match a {
  0b01 | 0b10 => true,
  _ => false
};
io::println(b.to_str());

The output is false, but let b = (a == 0b01 | 0b10); yields true.

I don't know how common patterns containing bitwise ors would be, but it seems inconsistent for this operator to be unavailable when the other arithmetic and bitwise ops function as expected here:

let a = 0b11;
let b = match a {
  0b01 + 0b10 => true,
  _ => false
};
io::println(b.to_str());

The output is true.

@brson
Copy link
Contributor

brson commented Mar 2, 2013

I am somewhat surprised that binary + is allowed in patterns. I don't recall seeing binops in patterns before. Can they be forbidden?

@nikomatsakis
Copy link
Contributor

I am also surprised. This seems like a parser bug, if it is indeed true.

@graydon
Copy link
Contributor

graydon commented Mar 5, 2013

Yeah, I don't think any binops like this belong in the pattern grammar. It's already very full and they won't compose: consider matching an integer against a+b. It's not going to work.

@sanxiyn
Copy link
Member

sanxiyn commented Mar 7, 2013

Haskell has n+k pattern which I like, but I agree that arbitrary expressions should not be parsed as patterns.

@graydon
Copy link
Contributor

graydon commented Apr 25, 2013

nominating for backwards-compatible milestone

@pcwalton
Copy link
Contributor

I believe this is now fixed; reopen if not.

bors added a commit to rust-lang-ci/rust that referenced this issue May 2, 2020
Reduce `pulldown-cmark` size

Should reduce `pulldown-cmark` size.
ref. https://github.com/raphlinus/pulldown-cmark#build-options

changelog: none
bors added a commit to rust-lang-ci/rust that referenced this issue May 2, 2020
…shearth,llogiq,flip1995

I like to move it, move it

GHA now runs in the background for 6 days (rust-lang#5088)

Since then ~~15~~ 19 PRs were successfully merged and Travis+Appveyor agreed on the status in every case. ([GitHub PR search query](https://github.com/rust-lang/rust-clippy/pulls?utf8=%E2%9C%93&q=is%3Apr+is%3Amerged+merged%3A%3E%3D2020-02-12T15%3A42%3A00+sort%3Aupdated-desc+NOT+%5Bgh-pages%5D+in%3Atitle))

Some PRs were:
- rust-lang#5163
- rust-lang#5170
- rust-lang#5168
- rust-lang#5173
- rust-lang#5171
- rust-lang#5156
- rust-lang#4809
- rust-lang#5177
- rust-lang#5182
- rust-lang#5183
- rust-lang#5184
- rust-lang#5185
- rust-lang#5186
- rust-lang#5181
- rust-lang#5189

Bug with GHA:
- When a rustc PR gets merged between the `integration_build` and the `integration` job, the `integration` job will fail. This happened once in rust-lang#5162, but not in the past 6 days. Even if it would happen every 4th PR we would save time, since splitting up the integration build and tests saves 5-7 minutes per run and a complete run takes 15-17 minutes
- Sometimes the MacOS build takes up to an hour to download the master toolchain. Until now, this happend 2 or 3 times and can be resolved by a `@bors r3try`+canceling the previous run (restarting single jobs is not supported yet)

## Before merging this, rust-lang/rust-central-station#578 has to get merged

This PR is for starting the discussion and to get consensus (@rust-lang/clippy) on a final move to GHA. If we're ready, I'll contact Pietro, to finalize the move.

changelog: Clippy completely runs on GHA now 🎉

---

BTW: The deployment already runs on GHA, instead of Travis.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-frontend Area: Compiler frontend (errors, parsing and HIR)
Projects
None yet
Development

No branches or pull requests

5 participants