Commit Graph

3487 Commits

Author SHA1 Message Date
Jorge Aparicio
fc838ad0fd syntax: Use UFCS instead of secret_* fns in expansion of format_args! 2014-11-02 09:43:12 -05:00
P1start
5bf9ef2122 Convert some notes to help messages
Closes #18126.
2014-11-02 16:12:23 +13:00
Alex Crichton
21ac985af4 collections: Remove all collections traits
As part of the collections reform RFC, this commit removes all collections
traits in favor of inherent methods on collections themselves. All methods
should continue to be available on all collections.

This is a breaking change with all of the collections traits being removed and
no longer being in the prelude. In order to update old code you should move the
trait implementations to inherent implementations directly on the type itself.

Note that some traits had default methods which will also need to be implemented
to maintain backwards compatibility.

[breaking-change]
cc #18424
2014-11-01 11:37:04 -07:00
Jorge Aparicio
1384a43db3 DSTify Hash
- The signature of the `*_equiv` methods of `HashMap` and similar structures
have changed, and now require one less level of indirection. Change your code
from:

```
hashmap.find_equiv(&"Hello");
hashmap.find_equiv(&&[0u8, 1, 2]);
```

to:

```
hashmap.find_equiv("Hello");
hashmap.find_equiv(&[0u8, 1, 2]);
```

- The generic parameter `T` of the `Hasher::hash<T>` method have become
`Sized?`. Downstream code must add `Sized?` to that method in their
implementations. For example:

```
impl Hasher<FnvState> for FnvHasher {
    fn hash<T: Hash<FnvState>>(&self, t: &T) -> u64 { /* .. */ }
}
```

must be changed to:

```
impl Hasher<FnvState> for FnvHasher {
    fn hash<Sized? T: Hash<FnvState>>(&self, t: &T) -> u64 { /* .. */ }
    //      ^^^^^^
}
```

[breaking-change]
2014-10-31 07:25:34 -05:00
Alex Crichton
8e6e846d8a rustc: Implement -l and include! tweaks
This is an implementation of the rustc bits of [RFC 403][rfc]. This adds a new
flag to the compiler, `-l`, as well as tweaking the `include!` macro (and
related source-centric macros).

The compiler's new `-l` flag is used to link libraries in from the command line.
This flag stacks with `#[link]` directives already found in the program. The
purpose of this flag, also stated in the RFC, is to ease linking against native
libraries which have wildly different requirements across platforms and even
within distributions of one platform. This flag accepts a string of the form
`NAME[:KIND]` where `KIND` is optional or one of dylib, static, or framework.
This is roughly equivalent to if the equivalent `#[link]` directive were just
written in the program.

The `include!` macro has been modified to recursively expand macros to allow
usage of `concat!` as an argument, for example. The use case spelled out in RFC
403 was for `env!` to be used as well to include compile-time generated files.
The macro also received a bit of tweaking to allow it to expand to either an
expression or a series of items, depending on what context it's used in.

[rfc]: https://github.com/rust-lang/rfcs/pull/403
2014-10-30 19:02:11 -07:00
Alex Crichton
6fcba8826f Test fixes and rebase conflicts 2014-10-30 17:37:56 -07:00
Alex Crichton
c10c163377 rollup merge of #18445 : alexcrichton/index-mut
Conflicts:
	src/libcollections/vec.rs
2014-10-30 17:37:55 -07:00
Alex Crichton
5d6241ddaf rollup merge of #18430 : bjz/token
Conflicts:
	src/libsyntax/parse/parser.rs
2014-10-30 17:37:41 -07:00
Alex Crichton
00975e041d rollup merge of #18398 : aturon/lint-conventions-2
Conflicts:
	src/libcollections/slice.rs
	src/libcore/failure.rs
	src/libsyntax/parse/token.rs
	src/test/debuginfo/basic-types-mut-globals.rs
	src/test/debuginfo/simple-struct.rs
	src/test/debuginfo/trait-pointers.rs
2014-10-30 17:37:22 -07:00
Alex Crichton
09669772db rollup merge of #18417 : P1start/lint-fixes 2014-10-30 09:29:24 -07:00
Alex Crichton
ce63fbc7bd rollup merge of #18409 : gamazeps/issue15273 2014-10-30 09:29:24 -07:00
Alex Crichton
1d356624a1 collections: Enable IndexMut for some collections
This commit enables implementations of IndexMut for a number of collections,
including Vec, RingBuf, SmallIntMap, TrieMap, TreeMap, and HashMap. At the same
time this deprecates the `get_mut` methods on vectors in favor of using the
indexing notation.

cc #18424
2014-10-30 08:54:30 -07:00
P1start
14398f2929 Add a message for when a . follows a macro invocation 2014-10-30 19:51:16 +13:00
P1start
fb00015246 Improve the error message for parenthesised box expressions
Closes #15386.
2014-10-30 17:12:22 +13:00
Brendan Zabarauskas
98a4770a98 Formatting fixes 2014-10-30 09:35:53 +11:00
Brendan Zabarauskas
1ab50f3600 Remove Token::get_close_delimiter
We can simplify these usages due to the new delimiter representation. `Parser::expect_open_delim` has been added for convenience.
2014-10-30 09:35:53 +11:00
Brendan Zabarauskas
936d999b52 Use common variants for open and close delimiters
This common representation for delimeters should make pattern matching easier. Having a separate `token::DelimToken` enum also allows us to enforce the invariant that the opening and closing delimiters must be the same in `ast::TtDelimited`, removing the need to ensure matched delimiters when working with token trees.
2014-10-30 09:35:52 +11:00
Steve Klabnik
7828c3dd28 Rename fail! to panic!
https://github.com/rust-lang/rfcs/pull/221

The current terminology of "task failure" often causes problems when
writing or speaking about code. You often want to talk about the
possibility of an operation that returns a Result "failing", but cannot
because of the ambiguity with task failure. Instead, you have to speak
of "the failing case" or "when the operation does not succeed" or other
circumlocutions.

Likewise, we use a "Failure" header in rustdoc to describe when
operations may fail the task, but it would often be helpful to separate
out a section describing the "Err-producing" case.

We have been steadily moving away from task failure and toward Result as
an error-handling mechanism, so we should optimize our terminology
accordingly: Result-producing functions should be easy to describe.

To update your code, rename any call to `fail!` to `panic!` instead.
Assuming you have not created your own macro named `panic!`, this
will work on UNIX based systems:

    grep -lZR 'fail!' . | xargs -0 -l sed -i -e 's/fail!/panic!/g'

You can of course also do this by hand.

[breaking-change]
2014-10-29 11:43:07 -04:00
gamazeps
cb5f979942 Diagnostic: resolve bare fn in expected closure
Closes #15273 (I did not find how to get the identifier in the message
:/)

Also creates the span_help! macro associated with #18126
2014-10-29 01:07:40 +01:00
Aaron Turon
e0ad0fcb95 Update code with new lint names 2014-10-28 08:54:21 -07:00
Brendan Zabarauskas
665ad9c175 Move token-to-string functions into print::pprust 2014-10-28 15:55:38 +11:00
Brendan Zabarauskas
cd049591a2 Use an enum rather than a bool in token::Ident 2014-10-28 15:55:37 +11:00
Brendan Zabarauskas
fcb78d65f2 Convert some token functions into methods 2014-10-28 15:55:37 +11:00
Brendan Zabarauskas
d8b1fa0ae0 Use PascalCase for token variants 2014-10-28 15:55:37 +11:00
Alex Crichton
20b9897c58 rollup merge of #18362 : kevinmehall/pprint-struct-pat-shorthand 2014-10-27 15:12:47 -07:00
Alex Crichton
175d6a7435 rollup merge of #18332 : jbcrail/fix-comments 2014-10-27 15:12:30 -07:00
Alex Crichton
650214b170 rollup merge of #18326 : sfackler/cfg-final 2014-10-27 15:12:30 -07:00
Alex Crichton
ee32c04d60 rollup merge of #18303 : cgaebel/make-vec-match-slice 2014-10-27 12:53:02 -07:00
Alex Crichton
2f8ee08f66 rollup merge of #18256 : SimonSapin/view_item_to_string 2014-10-27 12:53:02 -07:00
Kevin Mehall
e5f709079a Preserve struct field pattern shorthand in the prettyprinter.
Use the `is_shorthand` field introduced by #17813 (ead6c4b) to make the
prettyprinter output the shorthand form. Fixes a few places that set
`is_shorthand: true` when the pattern is not a PatIdent with the same
name as the field.
2014-10-27 00:35:35 -07:00
Joseph Crail
30403204d6 Fix spelling mistakes in comments. 2014-10-25 23:11:17 -04:00
Brendan Zabarauskas
6598d33bd0 Update parse::test::string_to_tts_1 test 2014-10-26 11:20:32 +11:00
Steven Fackler
9acce10fe7 Finish cfg syntax transition 2014-10-25 16:43:14 -07:00
Brendan Zabarauskas
94d6eee335 Add a KleeneOp enum for clarity 2014-10-26 09:53:30 +11:00
Brendan Zabarauskas
34dacb80ce Reduce the size of the TokenTree 2014-10-26 09:53:30 +11:00
Brendan Zabarauskas
dfb4163f83 Use standard capitalisation for TokenTree variants 2014-10-26 09:53:30 +11:00
Brendan Zabarauskas
6a50b4d018 Prevent some vector reallocations 2014-10-26 09:53:30 +11:00
Brendan Zabarauskas
ec3f0201e7 Rename TokenTree variants for clarity
This should be clearer, and fits in better with the `TTNonterminal` variant.

Renames:

- `TTTok` -> `TTToken`
- `TTDelim` -> `TTDelimited`
- `TTSeq` -> `TTSequence`
2014-10-26 09:53:29 +11:00
Brendan Zabarauskas
971d776aa5 Add Span and separate open/close delims to TTDelim
This came up when working [on the gl-rs generator extension](990383de80/src/gl_generator/lib.rs (L135-L146)).

The new definition of  `TTDelim` adds an associated `Span` that covers the whole token tree and enforces the invariant that a delimited sequence of token trees must have an opening and closing delimiter.

A `get_span` method has also been added to `TokenTree` type to make it easier to implement better error messages for syntax extensions.
2014-10-26 09:53:29 +11:00
Clark Gaebel
87a5f0ddf4 Make the Vec data structure layout match raw::Slice.
Fixes #18302

r? @thestinger
2014-10-24 20:12:53 -07:00
P1start
ead6c4b9d4 Add a lint for not using field pattern shorthands
Closes #17792.
2014-10-24 15:44:18 +13:00
Simon Sapin
941d90d97f Add syntax::print::pprint::view_item_to_string
… similar to the existing `item_to_string`.

There may be more missing like this.
2014-10-23 23:56:33 +09:00
bors
7088c45ef4 auto merge of #18141 : phildawes/rust/master, r=brson
Hello! I noticed spans are wrong for the PatIdents of self args. (I use spans a lot in racer)
2014-10-22 07:07:09 +00:00
Niko Matsakis
dad2db7c83 Change method lookup infrastructure to use the trait methods. Instead
of tracking individual candidates per impl, we just track one
candidate for the extension trait itself, and let the trait resolution
handle walking the individual impls and so forth. Also change the
interface to report back a richer notion of error.
2014-10-21 12:32:36 -04:00
bors
7d0cc44f87 auto merge of #18070 : alexcrichton/rust/spring-cleaning, r=aturon
This is a large spring-cleaning commit now that the 0.12.0 release has passed removing an amount of deprecated functionality. This removes a number of deprecated crates (all still available as cargo packages in the rust-lang organization) as well as a slew of deprecated functions. All `#[crate_id]` support has also been removed.

I tried to avoid anything that was recently deprecated, but I may have missed something! The major pain points of this commit is the fact that rustc/syntax have `#[allow(deprecated)]`, but I've removed that annotation so moving forward they should be cleaned up as we go.
2014-10-20 16:07:43 +00:00
Alex Crichton
9d5d97b55d Remove a large amount of deprecated functionality
Spring cleaning is here! In the Fall! This commit removes quite a large amount
of deprecated functionality from the standard libraries. I tried to ensure that
only old deprecated functionality was removed.

This is removing lots and lots of deprecated features, so this is a breaking
change. Please consult the deprecation messages of the deleted code to see how
to migrate code forward if it still needs migration.

[breaking-change]
2014-10-19 12:59:40 -07:00
Aleksandr Koshlo
49ec356c60 fix printing signed literal in print_literal 2014-10-19 18:39:51 +03:00
Phil Dawes
9c7865fa6f Parser: Fix spans of explicit self arg idents 2014-10-18 16:05:26 +01:00
bors
41a79104a4 auto merge of #18099 : jakub-/rust/fixed-issues, r=alexcrichton
Closes #9249.
Closes #13105.
Closes #13837.
Closes #13847.
Closes #15207.
Closes #15261.
Closes #16048. 
Closes #16098.
Closes #16256.
Closes #16562.
Closes #16596.
Closes #16709.
Closes #16747.
Closes #17025.
Closes #17121.
Closes #17450.
Closes #17636.
2014-10-18 13:22:11 +00:00
bors
4694b99102 auto merge of #16855 : P1start/rust/help-messages, r=brson
This adds ‘help’ diagnostic messages to rustc. This is used for anything that provides help to the user, particularly the `--explain` messages that were previously integrated into the relevant error message.

They look like this:

```
match.rs:10:13: 10:14 error: unreachable pattern [E0001]
match.rs:10             1 => {},
                        ^
match.rs:3:1: 3:38 note: in expansion of foo!
match.rs:7:5: 20:2 note: expansion site
match.rs:10:13: 10:14 help: pass `--explain E0001` to see a detailed explanation
```

(`help` is coloured cyan.) Adding these errors on a separate line stops the lines from being too long, as discussed in #16619.
2014-10-17 20:32:22 +00:00
Jakub Wieczorek
64716d529a Add tests for a few fixed issues 2014-10-17 00:27:12 +02:00
Luqman Aden
6f9b3b574b libsyntax: Don't accept :? as a format specifier. 2014-10-16 11:15:36 -04:00
Luqman Aden
26e547af5d libsyntax: Remove all uses of {:?}. 2014-10-16 11:15:34 -04:00
Luqman Aden
38aca17c47 Remove libdebug and update tests. 2014-10-16 11:15:34 -04:00
Alex Crichton
412f4d1fc7 rollup merge of #17927 : alexcrichton/more-const 2014-10-13 15:09:25 -07:00
bors
c7e0724274 auto merge of #17733 : jgallagher/rust/while-let, r=alexcrichton
This is *heavily* based on `if let` (#17634) by @jakub- and @kballard

This should close #17687
2014-10-13 19:37:40 +00:00
bors
d670d76221 auto merge of #17963 : sfackler/rust/cfg-error, r=alexcrichton
All deprecation warnings have been converted to errors. This includes
the warning for multiple cfgs on one item. We'll leave that as an error
for some period of time to ensure that all uses are updated before the
behavior changes from "or" to "and".
2014-10-13 12:27:43 +00:00
bors
a6e0c76ef4 auto merge of #17757 : gamazeps/rust/issue17709, r=alexcrichton
I did not put the crate name in the error note, if that's necessary I'll look into it.

Closes #17709
2014-10-13 02:47:37 +00:00
Alex Crichton
18e41299f9 rustc: Warn about dead constants
A few catch-all blocks ended up not having this case for constants.

Closes #17925
2014-10-12 12:15:22 -07:00
Steven Fackler
aa3b1261b1 Continue cfg syntax transition
All deprecation warnings have been converted to errors. This includes
the warning for multiple cfgs on one item. We'll leave that as an error
for some period of time to ensure that all uses are updated before the
behavior changes from "or" to "and".
2014-10-12 11:40:19 -07:00
Jakub Wieczorek
403cd40e6a Remove virtual structs from the language 2014-10-11 19:42:26 +02:00
John Gallagher
660cf18070 Move while let behind while_let feature gate 2014-10-10 20:30:32 -04:00
John Gallagher
b003f10449 Desugar while let into loop { match { ... } } 2014-10-10 20:30:32 -04:00
John Gallagher
0c2c8116a3 Teach libsyntax about while let 2014-10-10 20:30:31 -04:00
bors
f9fc49c06e auto merge of #17853 : alexcrichton/rust/issue-17718, r=pcwalton
This change is an implementation of [RFC 69][rfc] which adds a third kind of
global to the language, `const`. This global is most similar to what the old
`static` was, and if you're unsure about what to use then you should use a
`const`.

The semantics of these three kinds of globals are:

* A `const` does not represent a memory location, but only a value. Constants
  are translated as rvalues, which means that their values are directly inlined
  at usage location (similar to a #define in C/C++). Constant values are, well,
  constant, and can not be modified. Any "modification" is actually a
  modification to a local value on the stack rather than the actual constant
  itself.

  Almost all values are allowed inside constants, whether they have interior
  mutability or not. There are a few minor restrictions listed in the RFC, but
  they should in general not come up too often.

* A `static` now always represents a memory location (unconditionally). Any
  references to the same `static` are actually a reference to the same memory
  location. Only values whose types ascribe to `Sync` are allowed in a `static`.
  This restriction is in place because many threads may access a `static`
  concurrently. Lifting this restriction (and allowing unsafe access) is a
  future extension not implemented at this time.

* A `static mut` continues to always represent a memory location. All references
  to a `static mut` continue to be `unsafe`.

This is a large breaking change, and many programs will need to be updated
accordingly. A summary of the breaking changes is:

* Statics may no longer be used in patterns. Statics now always represent a
  memory location, which can sometimes be modified. To fix code, repurpose the
  matched-on-`static` to a `const`.

      static FOO: uint = 4;
      match n {
          FOO => { /* ... */ }
          _ => { /* ... */ }
      }

  change this code to:

      const FOO: uint = 4;
      match n {
          FOO => { /* ... */ }
          _ => { /* ... */ }
      }

* Statics may no longer refer to other statics by value. Due to statics being
  able to change at runtime, allowing them to reference one another could
  possibly lead to confusing semantics. If you are in this situation, use a
  constant initializer instead. Note, however, that statics may reference other
  statics by address, however.

* Statics may no longer be used in constant expressions, such as array lengths.
  This is due to the same restrictions as listed above. Use a `const` instead.

[breaking-change]
Closes #17718 

[rfc]: https://github.com/rust-lang/rfcs/pull/246
2014-10-10 00:07:08 +00:00
Brian Anderson
5c92a8e054 Use the same html_root_url for all docs 2014-10-09 10:50:13 -07:00
Brian Anderson
6beddcfd83 Revert "Update html_root_url for 0.12.0 release"
This reverts commit 2288f33230.
2014-10-09 10:34:34 -07:00
Alex Crichton
9c09c94347 syntax: Tweak the return value of bytes!()
Instead of returning &'static [u8], an invocation of `bytes!()` now returns
`&'static [u8, ..N]` where `N` is the length of the byte vector. This should
functionally be the same, but there are some cases where an explicit cast may be
needed, so this is a:

[breaking-change]
2014-10-09 09:44:51 -07:00
Alex Crichton
edf8841642 syntax: Convert statics to constants 2014-10-09 09:44:51 -07:00
Alex Crichton
90d03d7926 rustc: Add const globals to the language
This change is an implementation of [RFC 69][rfc] which adds a third kind of
global to the language, `const`. This global is most similar to what the old
`static` was, and if you're unsure about what to use then you should use a
`const`.

The semantics of these three kinds of globals are:

* A `const` does not represent a memory location, but only a value. Constants
  are translated as rvalues, which means that their values are directly inlined
  at usage location (similar to a #define in C/C++). Constant values are, well,
  constant, and can not be modified. Any "modification" is actually a
  modification to a local value on the stack rather than the actual constant
  itself.

  Almost all values are allowed inside constants, whether they have interior
  mutability or not. There are a few minor restrictions listed in the RFC, but
  they should in general not come up too often.

* A `static` now always represents a memory location (unconditionally). Any
  references to the same `static` are actually a reference to the same memory
  location. Only values whose types ascribe to `Sync` are allowed in a `static`.
  This restriction is in place because many threads may access a `static`
  concurrently. Lifting this restriction (and allowing unsafe access) is a
  future extension not implemented at this time.

* A `static mut` continues to always represent a memory location. All references
  to a `static mut` continue to be `unsafe`.

This is a large breaking change, and many programs will need to be updated
accordingly. A summary of the breaking changes is:

* Statics may no longer be used in patterns. Statics now always represent a
  memory location, which can sometimes be modified. To fix code, repurpose the
  matched-on-`static` to a `const`.

      static FOO: uint = 4;
      match n {
          FOO => { /* ... */ }
          _ => { /* ... */ }
      }

  change this code to:

      const FOO: uint = 4;
      match n {
          FOO => { /* ... */ }
          _ => { /* ... */ }
      }

* Statics may no longer refer to other statics by value. Due to statics being
  able to change at runtime, allowing them to reference one another could
  possibly lead to confusing semantics. If you are in this situation, use a
  constant initializer instead. Note, however, that statics may reference other
  statics by address, however.

* Statics may no longer be used in constant expressions, such as array lengths.
  This is due to the same restrictions as listed above. Use a `const` instead.

[breaking-change]

[rfc]: https://github.com/rust-lang/rfcs/pull/246
2014-10-09 09:44:50 -07:00
Brian Anderson
158eaa643b 0.12.0 release
-----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1
 
 iQIcBAABAgAGBQJUNrj+AAoJEIWrlub6G+X+4TMQAIlyIoTpbZfA7MgaqHmrqp/O
 DkWH4sjoiTL3pdqHitbaJWFzStLjmM+hzOKYVYxXJGqpHuZv7pbnN2sQCKvJ6m9E
 htojoy9ZVeOUjkqz3+PYc6mh+SuQq4bpAhnnt60tLSxZCda7uTpdTcsOgDlwhu8P
 /YIbnBHo6brcQi6kEK27uN7U2MsluRR/ZhAmZH1mvrTtjKrGsKTEdta2NW1tUzNT
 sDluM9D0/WFjwSA9OohjtpUI7KYudqChOCRaqREgNq6xc/9at/TQHULsjzxLFIiC
 tAttF7ZZ2s1TmS4qzmx3AAWl8n8xYrDo+CpfPqKvSGwDegfHN9Epa+24Cdf2Q5GO
 9RSup89NlNNo3tjmK+G1cUqi/K9RseiZNPSJSoLlR2L9QFg/VFEVbcaZX+oX+CQF
 pfWkKqsfLqj50EimO+vuXRZhShHlu/McOdN0cd+S0KEGdd7ngqU3d7YJf9Ppm1mV
 d1VUqnPxvDrGQTGqk4cpGMIv+LmT6vY2iix3ha583zMYcU9VWrC9VEmR3I4XZefE
 UgsbAx2jIgagWa6ylDpes7X8dn/7qj3BA6l3Bt9aGrs9KnyQ+a3xOyz8dFvRJwks
 T8izOhfJXpxW4CLFZjDIQ9RD/joJuvuqTSIqf7zGIxIbMUQFB9EC/Rn7a3ftidds
 aZVZSl2li1vOa3DucW64
 =4lHl
 -----END PGP SIGNATURE-----

Merge tag '0.12.0'

0.12.0 release
2014-10-09 09:36:30 -07:00
bors
c588e407b9 auto merge of #17866 : jgallagher/rust/reserve-inheritance-keywords, r=huonw
Closes #17862
2014-10-08 13:47:13 +00:00
bors
593174b42d auto merge of #17838 : vadimcn/rust/macros, r=alexcrichton 2014-10-08 02:52:08 +00:00
John Gallagher
1426f5834c Add abstract, final, and override to reserved keywords 2014-10-07 22:17:54 -04:00
bors
3b945dcae6 auto merge of #17787 : bgamari/rust/fix-quote-method, r=huonw
The previous fix introduced in 75d49c8203 neglected to parse outer attributes as described in #17782.
2014-10-07 23:12:08 +00:00
Brian Anderson
2288f33230 Update html_root_url for 0.12.0 release 2014-10-07 11:18:50 -07:00
Vadim Chugunov
fc60797f7f Fix the most egregious instances of "local ambiguity: multiple parsing options..." error in macros, which often occurs when trying to match parts of Rust syntax.
For example, this matcher: `fn $name:ident( $($param:ident : $pty:ty),* )` would fail when parsing `fn foo()`, because macro parser wouldn't realize that an ident cannot start with `)`.

This resolves #5902, and at least partially mitigates #9364 and #3232.
2014-10-07 02:13:05 -07:00
Nick Cameron
cd21e4a72c Rename slice::Slice 2014-10-07 15:49:53 +13:00
Nick Cameron
2d3823441f Put slicing syntax behind a feature gate.
[breaking-change]

If you are using slicing syntax you will need to add #![feature(slicing_syntax)] to your crate.
2014-10-07 15:49:53 +13:00
Nick Cameron
59976942ea Use slice syntax instead of slice_to, etc. 2014-10-07 15:49:53 +13:00
Ben Gamari
a5a11a8ef0 syntax: Parse outer attributes in quote_method!
Fixes #17782.
2014-10-06 10:53:05 -04:00
bors
0e2f0acf22 auto merge of #17781 : P1start/rust/bitflags-lints, r=alexcrichton
Closes #17773.
2014-10-06 07:37:19 +00:00
P1start
8e58771965 Remove the #[allow(non_uppercase_statics)] attr from bitflags! 2014-10-06 16:43:34 +13:00
P1start
cc31d9cabc Give a more descriptive error when marking non-test items as #[test]
Closes #14772.
2014-10-05 14:16:32 +13:00
Felix Raimundo
e69f2ab8c0 Changed extern crate foo as bar; error message
Closes #17709
2014-10-04 19:51:22 +02:00
Björn Steinbrink
2d93a0406b Register new snapshots 2014-10-04 15:44:50 +02:00
Alex Crichton
79d0e82f73 rollup merge of #17729 : alexcrichton/issue-17718-start 2014-10-03 07:38:29 -07:00
Alex Crichton
2a11f2b544 rollup merge of #17215 : P1start/lints 2014-10-03 07:38:12 -07:00
P1start
042cdeefc7 Correct error message for invalid ref/mut bindings
Closes #15914.
2014-10-03 20:39:56 +13:00
P1start
94bcd3539c Set the non_uppercase_statics lint to warn by default 2014-10-03 20:39:56 +13:00
bors
9a2286d3a1 auto merge of #16995 : kmcallister/rust/plugin-tutorial, r=alexcrichton
@steveklabnik, are you interested in looking this over?
2014-10-03 07:33:26 +00:00
Alex Crichton
7e22af3582 syntax: Enable parsing of const globals
This rewrites them to the current `ItemStatic` production of the compiler, but I
want to get this into a snapshot. It will be illegal to use a `static` in a
pattern of a `match` statement, so all those current uses will need to be
rewritten to `const` once it's implemented. This requires that the stage0
snapshot is able to parse `const`.

cc #17718
2014-10-02 19:37:06 -07:00
Alex Crichton
7ae802f57b rollup merge of #17666 : eddyb/take-garbage-out
Conflicts:
	src/libcollections/lib.rs
	src/libcore/lib.rs
	src/librustdoc/lib.rs
	src/librustrt/lib.rs
	src/libserialize/lib.rs
	src/libstd/lib.rs
	src/test/run-pass/issue-8898.rs
2014-10-02 14:53:18 -07:00
Aaron Turon
d2ea0315e0 Revert "Use slice syntax instead of slice_to, etc."
This reverts commit 40b9f5ded5.
2014-10-02 11:48:07 -07:00
Aaron Turon
7bf56df4c8 Revert "Put slicing syntax behind a feature gate."
This reverts commit 95cfc35607.
2014-10-02 11:47:51 -07:00
Eduard Burtescu
aa59693565 syntax: remove ObsoleteManaged{Type,Expr}. 2014-10-02 17:02:04 +03:00
Eduard Burtescu
db55e70c97 syntax: mark the managed_boxes feature as Removed. 2014-10-02 17:02:03 +03:00
Eduard Burtescu
d1a57e479c syntax: ast: remove TyBox and UnBox. 2014-10-02 16:36:01 +03:00
Eduard Burtescu
a99e626d07 syntax: remove unused imports of Gc and GC. 2014-10-02 16:36:01 +03:00
Nick Cameron
95cfc35607 Put slicing syntax behind a feature gate.
[breaking-change]

If you are using slicing syntax you will need to add #![feature(slicing_syntax)] to your crate.
2014-10-02 13:23:36 +13:00