<feed xmlns='http://www.w3.org/2005/Atom'>
<title>rust/src/libsyntax/parse/parser.rs, branch 1.21.0</title>
<subtitle>https://github.com/rust-lang/rust
</subtitle>
<id>http://git.dreamy.place/mirrors/rust/atom?h=1.21.0</id>
<link rel='self' href='http://git.dreamy.place/mirrors/rust/atom?h=1.21.0'/>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/'/>
<updated>2017-08-22T22:50:19+00:00</updated>
<entry>
<title>Ensure that generic arguments don't end up in attribute paths.</title>
<updated>2017-08-22T22:50:19+00:00</updated>
<author>
<name>Jeffrey Seyfried</name>
<email>jeffrey.seyfried@gmail.com</email>
</author>
<published>2017-08-17T18:44:28+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=d54a6d941312b2bd4e0c3f8209a8fd23175d180f'/>
<id>urn:sha1:d54a6d941312b2bd4e0c3f8209a8fd23175d180f</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Auto merge of #43854 - estebank:missing-cond, r=nikomatsakis</title>
<updated>2017-08-22T04:28:49+00:00</updated>
<author>
<name>bors</name>
<email>bors@rust-lang.org</email>
</author>
<published>2017-08-22T04:28:49+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=6722996923157f2089cd5d7ead10f79162e0abb0'/>
<id>urn:sha1:6722996923157f2089cd5d7ead10f79162e0abb0</id>
<content type='text'>
Point out missing if conditional

On a case where an else conditional is missing, point this out
instead of the token immediately after the (incorrect) else block:

```
error: missing condition for `if` statemementt push fork -f

  --&gt; $DIR/issue-13483.rs:16:5
   |
13 |    } else if {
   |             ^ expected if condition here
```

instead of

```
error: expected `{`, found `else`
  --&gt; ../../src/test/ui/issue-13483.rs:14:7
   |
14 |     } else {
   |       ^^^^
```

Fix #13483.
</content>
</entry>
<entry>
<title>Auto merge of #43540 - petrochenkov:pathrelax, r=nikomatsakis</title>
<updated>2017-08-21T23:03:57+00:00</updated>
<author>
<name>bors</name>
<email>bors@rust-lang.org</email>
</author>
<published>2017-08-21T23:03:57+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=8df670b6a60f245d266dbd0b650a549b7b806bac'/>
<id>urn:sha1:8df670b6a60f245d266dbd0b650a549b7b806bac</id>
<content type='text'>
syntax: Relax path grammar

TLDR: Accept the disambiguator `::` in "type" paths (`Type::&lt;Args&gt;`), accept the disambiguator `::` before parenthesized generic arguments (`Fn::(Args)`).

The "turbofish" disambiguator `::&lt;&gt;` in expression paths is a necessary evil required for path parsing to be both simple and to give reasonable results.
Since paths in expressions usually refer to values (but not necessarily, e.g. `Struct::&lt;u8&gt; { field: 0 }` is disambiguated, but refers to a type), people often consider `::&lt;&gt;` to be inherent to *values*, and not *expressions* and want to write disambiguated paths for values even in contexts where disambiguation is not strictly necessary, for example when a path is passed to a macro `m!(Vec::&lt;i32&gt;::new)`.
The problem is that currently, if the disambiguator is not *required*, then it's *prohibited*. This results in confusion - see https://github.com/rust-lang/rust/issues/41740, https://internals.rust-lang.org/t/macro-path-uses-novel-syntax/5561.

This PR makes the disambiguator *optional* instead of prohibited in contexts where it's not strictly required, so people can pass paths to macros in whatever form they consider natural (e.g. disambiguated form for value paths).
This PR also accepts the disambiguator in paths with parenthesized arguments (`Fn::(Args)`) for consistency and to simplify testing of stuff like https://github.com/rust-lang/rust/pull/41856#issuecomment-301219194.

Closes https://github.com/rust-lang/rust/issues/41740

cc @rust-lang/lang
r? @nikomatsakis
</content>
</entry>
<entry>
<title>Verify that an `if` condition block returns a value</title>
<updated>2017-08-18T03:25:46+00:00</updated>
<author>
<name>Esteban Küber</name>
<email>esteban@kuber.com.ar</email>
</author>
<published>2017-08-17T23:51:52+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=f06323337dd0cf748e8a0ca49d91dac2eae6b4a9'/>
<id>urn:sha1:f06323337dd0cf748e8a0ca49d91dac2eae6b4a9</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Check for `else` keyword on missing `if` condition</title>
<updated>2017-08-17T22:48:39+00:00</updated>
<author>
<name>Esteban Küber</name>
<email>esteban@kuber.com.ar</email>
</author>
<published>2017-08-17T19:14:35+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=20a2716206ca879ad9848cbb4ac9fcc739dd3f77'/>
<id>urn:sha1:20a2716206ca879ad9848cbb4ac9fcc739dd3f77</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Point out missing if conditional</title>
<updated>2017-08-17T17:18:06+00:00</updated>
<author>
<name>Esteban Küber</name>
<email>esteban@kuber.com.ar</email>
</author>
<published>2017-08-13T21:50:27+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=c4672f8e879a0c31fbe26990551693da16f00a98'/>
<id>urn:sha1:c4672f8e879a0c31fbe26990551693da16f00a98</id>
<content type='text'>
On a case where an else conditional is missing, point this out
instead of the token immediately after the (incorrect) else block:

```
error: missing condition for `if` statemementt push fork -f

  --&gt; $DIR/issue-13483.rs:16:5
   |
13 |    } else if {
   |             ^ expected if condition here
```

instead of

```
error: expected `{`, found `else`
  --&gt; ../../src/test/ui/issue-13483.rs:14:7
   |
14 |     } else {
   |       ^^^^
```
</content>
</entry>
<entry>
<title>use field init shorthand EVERYWHERE</title>
<updated>2017-08-15T22:29:17+00:00</updated>
<author>
<name>Zack M. Davis</name>
<email>code@zackmdavis.net</email>
</author>
<published>2017-08-07T05:54:09+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=1b6c9605e41b7c7dc23e0e6f633f05912d0463dd'/>
<id>urn:sha1:1b6c9605e41b7c7dc23e0e6f633f05912d0463dd</id>
<content type='text'>
Like #43008 (f668999), but _much more aggressive_.
</content>
</entry>
<entry>
<title>Include 'let' keyword to the span for ast::Local</title>
<updated>2017-08-12T09:00:57+00:00</updated>
<author>
<name>topecongiro</name>
<email>seuchida@gmail.com</email>
</author>
<published>2017-08-12T09:00:57+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=64503b6ee7e6b861f5c1dc8e27a97cf231b59685'/>
<id>urn:sha1:64503b6ee7e6b861f5c1dc8e27a97cf231b59685</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Issue warnings for unnecessary path disambiguators</title>
<updated>2017-08-10T23:47:22+00:00</updated>
<author>
<name>Vadim Petrochenkov</name>
<email>vadim.petrochenkov@gmail.com</email>
</author>
<published>2017-08-10T23:30:08+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=804459bdca28010137990220e617a6b6cbab18d0'/>
<id>urn:sha1:804459bdca28010137990220e617a6b6cbab18d0</id>
<content type='text'>
</content>
</entry>
<entry>
<title>syntax: Relax path grammar</title>
<updated>2017-08-10T23:06:27+00:00</updated>
<author>
<name>Vadim Petrochenkov</name>
<email>vadim.petrochenkov@gmail.com</email>
</author>
<published>2017-07-29T01:47:12+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=7d21f21f71b9b4a8a0662a223c20db7a789f5637'/>
<id>urn:sha1:7d21f21f71b9b4a8a0662a223c20db7a789f5637</id>
<content type='text'>
</content>
</entry>
</feed>
