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

When encountering chained operators use heuristics to recover from bad turbofish #64909

Merged
merged 8 commits into from
Oct 6, 2019

Conversation

estebank
Copy link
Contributor

No description provided.

@rust-highfive
Copy link
Collaborator

r? @eddyb

(rust_highfive has picked a reviewer for you, use r? to override)

@rust-highfive rust-highfive added the S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. label Sep 30, 2019
@rust-highfive

This comment has been minimized.

@estebank
Copy link
Contributor Author

r? @Centril

src/libsyntax/parse/diagnostics.rs Outdated Show resolved Hide resolved
src/libsyntax/parse/diagnostics.rs Outdated Show resolved Hide resolved
src/libsyntax/parse/diagnostics.rs Outdated Show resolved Hide resolved
src/libsyntax/parse/diagnostics.rs Outdated Show resolved Hide resolved
src/libsyntax/parse/diagnostics.rs Outdated Show resolved Hide resolved
src/libsyntax/parse/diagnostics.rs Outdated Show resolved Hide resolved
src/libsyntax/parse/diagnostics.rs Outdated Show resolved Hide resolved
src/libsyntax/parse/diagnostics.rs Outdated Show resolved Hide resolved
src/libsyntax/parse/diagnostics.rs Show resolved Hide resolved
@Centril
Copy link
Contributor

Centril commented Oct 1, 2019

Since @varkor has done some work in this area it would be good if they could take a look as well.

@Centril Centril added S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Oct 1, 2019
Comment on lines 33 to 41
error: chained comparison operators require parentheses
--> $DIR/require-parens-for-chained-comparison.rs:22:21
|
LL | let _ = identity<u8>;
| ^^^^
|
= help: use the "turbofish" `::<...>` instead of `<...>` to specify type arguments
= help: or use `(...)` if you meant to specify fn arguments

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Possible heuristic: look-ahead to see if we have ; -- at that point we can be sure it should be turbofish.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This fails with let _: Box<('a) + Trait>;.

Copy link
Contributor

@Centril Centril Oct 3, 2019

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

But that's in a type context not expression context?
(Can always follow up...)

@estebank estebank added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. and removed S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. labels Oct 2, 2019
@Centril
Copy link
Contributor

Centril commented Oct 3, 2019

r=me with reference to "turbofish" removed (per #64909 (comment)) and optionally #64909 (comment) and #64909 (comment) implemented.

@Centril Centril added S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Oct 3, 2019
@estebank
Copy link
Contributor Author

estebank commented Oct 4, 2019

@bors r=Centril

@bors
Copy link
Contributor

bors commented Oct 4, 2019

📌 Commit 76456e7 has been approved by Centril

@bors bors added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. labels Oct 4, 2019
@bors
Copy link
Contributor

bors commented Oct 4, 2019

⌛ Testing commit 76456e7 with merge 9b1ac2dd83494262a26554e0bf08c9b6407d43b6...

Mark-Simulacrum added a commit to Mark-Simulacrum/rust that referenced this pull request Oct 4, 2019
When encountering chained operators use heuristics to recover from bad turbofish
@Mark-Simulacrum
Copy link
Member

@bors retry yielding to rollup including this PR #65109

bors added a commit that referenced this pull request Oct 4, 2019
Rollup of 7 pull requests

Successful merges:

 - #64909 (When encountering chained operators use heuristics to recover from bad turbofish)
 - #65020 (Always mark rust and rust-call abi's as unwind)
 - #65064 (permit asyncawait-ondeck to be added by anyone)
 - #65066 ([const-prop] Fix ICE when trying to eval polymorphic promoted MIR)
 - #65100 (Replace GeneratorSubsts with SubstsRef)
 - #65101 (Upgrade librustc_macros dependencies)
 - #65105 (Split out some passes from librustc)

Failed merges:

r? @ghost
Centril added a commit to Centril/rust that referenced this pull request Oct 4, 2019
When encountering chained operators use heuristics to recover from bad turbofish
bors added a commit that referenced this pull request Oct 5, 2019
Rollup of 8 pull requests

Successful merges:

 - #64708 (Stabilize `Option::as_deref` and `Option::as_deref_mut`)
 - #64909 (When encountering chained operators use heuristics to recover from bad turbofish)
 - #65011 (Do not ICE when dereferencing non-Copy raw pointer)
 - #65064 (permit asyncawait-ondeck to be added by anyone)
 - #65066 ([const-prop] Fix ICE when trying to eval polymorphic promoted MIR)
 - #65100 (Replace GeneratorSubsts with SubstsRef)
 - #65105 (Split out some passes from librustc)
 - #65106 (Allow unused attributes to avoid incremental bug)

Failed merges:

r? @ghost
@bors
Copy link
Contributor

bors commented Oct 5, 2019

⌛ Testing commit 76456e7 with merge 58914e7...

bors added a commit that referenced this pull request Oct 5, 2019
When encountering chained operators use heuristics to recover from bad turbofish
@bors
Copy link
Contributor

bors commented Oct 5, 2019

💥 Test timed out

@bors bors added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. and removed S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. labels Oct 5, 2019
@estebank
Copy link
Contributor Author

estebank commented Oct 5, 2019

@bors retry

@bors bors added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Oct 5, 2019
@tmandry tmandry added the A-spurious Area: Spurious failures in builds (spuriously == for no apparent reason) label Oct 6, 2019
tmandry added a commit to tmandry/rust that referenced this pull request Oct 6, 2019
When encountering chained operators use heuristics to recover from bad turbofish
bors added a commit that referenced this pull request Oct 6, 2019
Rollup of 18 pull requests

This contains changes from all the successful runs that bors marked as timed out, plus a revert of #63649 which appears to be the immediate cause of the timeouts.

Successful merges:

 - #64708 (Stabilize `Option::as_deref` and `Option::as_deref_mut`)
 - #64728 (Stabilize UdpSocket::peer_addr)
 - #64765 (std: Reduce checks for `feature = "backtrace"`)
 - #64909 (When encountering chained operators use heuristics to recover from bad turbofish)
 - #65011 (Do not ICE when dereferencing non-Copy raw pointer)
 - #65064 (permit asyncawait-ondeck to be added by anyone)
 - #65066 ([const-prop] Fix ICE when trying to eval polymorphic promoted MIR)
 - #65100 (Replace GeneratorSubsts with SubstsRef)
 - #65105 (Split out some passes from librustc)
 - #65106 (Allow unused attributes to avoid incremental bug)
 - #65113 (Fix lonely backtick)
 - #65116 (Remove unneeded visit_statement definition)
 - #65118 (Update the documented default of -Z mutable-noalias)
 - #65123 (Account for macro invocation in `let mut $pat` diagnostic.)
 - #65124 (Replace some instances of `as *[const | mut] _` with `.cast()`)
 - #65126 (Fix typo on `now()` comments)
 - #65130 (lint: extern non-exhaustive types are improper)
 - #65151 (Revert #63649 - "Upgrade Emscripten targets to use upstream LLVM backend")

Failed merges:

r? @ghost
@bors bors merged commit 76456e7 into rust-lang:master Oct 6, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-spurious Area: Spurious failures in builds (spuriously == for no apparent reason) S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

7 participants