57810 Commits

Author SHA1 Message Date
Jeffrey Seyfried
f4fa62f4f2 Add regression test. 2016-09-21 21:39:41 +00:00
Nick Cameron
6a2d2c9495 Adds a ProcMacro form of syntax extension
This commit adds syntax extension forms matching the types for procedural macros 2.0 (RFC #1566), these still require the usual syntax extension boiler plate, but this is a first step towards proper implementation and should be useful for macros 1.1 stuff too.

Supports both attribute-like and function-like macros.
2016-09-22 08:47:57 +12:00
Christopher Serr
e107c8b849 Fix outdated Doc Comment on BufReader::seek
A long time ago non-panicking `unwrap` methods were renamed to `into_inner` in this Pull Request: https://github.com/rust-lang/rust/pull/19149

Looks like this doc comment was not updated however.
2016-09-21 21:11:53 +02:00
Keegan McAllister
c316ae56e6 Tweak std::rc docs
Fixes #29372.
2016-09-21 10:25:01 -07:00
bors
53f9730291 Auto merge of #35074 - ashleygwilliams:assert_ne, r=steveklabnik
add debug_assert_ne + assert_ne

~~ work in progress, please do not merge ~~

fixes #35073
2016-09-21 08:12:37 -07:00
Ashley Williams
3d8d55787b add assert_ne and debug_assert_ne macros 2016-09-21 14:38:26 +02:00
Jeffrey Seyfried
4db157af71 Allow attribute macro invocations at the crate root. 2016-09-21 09:24:06 +00:00
bors
5cc6c6b1b7 Auto merge of #36524 - michaelwoerister:trans-inline-only-on-demand, r=nikomatsakis
trans: Only instantiate #[inline] functions in codegen units referencing them

This PR changes how `#[inline]` functions are translated. Before, there was one "master instance" of the function with `external` linkage and a number of on-demand instances with `available_externally` linkage in each codegen unit that referenced the function. This had two downsides:

* Public functions marked with `#[inline]` would be present in machine code of libraries unnecessarily (see #36280 for an example)
* LLVM would crash on `i686-pc-windows-msvc` due to what I suspect to be a bug in LLVM's Win32 exception handling code, because it doesn't like `available_externally` there (#36309).

This PR changes the behavior, so that there is no master instance and only on-demand instances with `internal` linkage. The downside of this is potential code-bloat if LLVM does not completely inline away the `internal` instances because then there'd be N instances of the function instead of 1. However, this can only become a problem when using more than one codegen unit per crate.

cc @rust-lang/compiler
2016-09-21 01:33:37 -07:00
Jonathan Turner
e4b18422ad Check for overlapping and simplify unit test 2016-09-20 15:39:05 -07:00
aclarry
23efc5453d Update E0560 to include label 2016-09-20 16:59:48 -04:00
Jorge Aparicio
adf85d35c7 libtest: add a --skip flag to the test runner
This flag takes a FILTER argument and instructs the test runner to skip
the tests whose names contain the word FILTER. --skip can be used
several times.
2016-09-20 14:27:48 -05:00
Eduard Burtescu
4ac30013c3 rustc_trans: don't do on-demand drop glue instantiation. 2016-09-20 20:30:55 +03:00
Eduard Burtescu
a2726f4a54 rustc: allow less and handle fn pointers in the type hashing algorithm. 2016-09-20 20:30:55 +03:00
Eduard Burtescu
ade79d7609 rustc_trans: simplify vtable and symbol handling. 2016-09-20 20:30:52 +03:00
Eduard Burtescu
521d3ea193 rustc_resolve: bring back "struct called like a function" cross-crate. 2016-09-20 20:08:07 +03:00
Eduard Burtescu
564f2ee33c rustc_metadata: don't die with --test because CFG_VERSION is missing. 2016-09-20 20:08:07 +03:00
Eduard Burtescu
a23b8cafec rustc: don't hash the --extern crate name, but the original one, in DefPath. 2016-09-20 20:08:06 +03:00
Eduard Burtescu
221d1a97e5 serialize: allow specifying the default behavior for specializations. 2016-09-20 20:08:06 +03:00
Eduard Burtescu
b01d4891e2 rustc: don't recurse through nested items in decoded HIR fragments. 2016-09-20 20:08:06 +03:00
Eduard Burtescu
f2283a7be0 rustc_metadata: fix for the new ? ambiguity around collect. 2016-09-20 20:08:06 +03:00
Eduard Burtescu
dadbaa48ac rustc_metadata: move opt_item_name to TyCtxt::item_name. 2016-09-20 20:08:06 +03:00
Eduard Burtescu
dc26a23301 rustc_metadata: reduce Lazy{,Seq} overhead by using a relative encoding. 2016-09-20 20:08:05 +03:00
Eduard Burtescu
a96abca2a4 rustc_metadata: replace RBML with a simple and type-safe scheme. 2016-09-20 20:08:05 +03:00
Eduard Burtescu
24aef24e1a rustc_metadata: split the Def description of a DefId from item_children. 2016-09-20 20:08:05 +03:00
Eduard Burtescu
adddfccf2b rustc_metadata: move all encoding/decoding helpers to methods. 2016-09-20 20:08:05 +03:00
Eduard Burtescu
6890354f3b rustc_metadata: use the shorthand encoding for predicates also. 2016-09-20 20:08:04 +03:00
Eduard Burtescu
cc47dc5c6e rustc_metadata: store dense indexes in little-endian instead of big. 2016-09-20 20:08:04 +03:00
Eduard Burtescu
ef4352fba6 rustc_metadata: group information into less tags. 2016-09-20 20:08:04 +03:00
Eduard Burtescu
6742b239ac rustc_metadata: remove all unnecessary tables from astencode. 2016-09-20 20:08:03 +03:00
Eduard Burtescu
d2ea3daad1 rustc_metadata: group the tags into root tags and item tags. 2016-09-20 20:08:03 +03:00
Eduard Burtescu
89736e8671 rustc: remove ImplOrTraitItemId and TraitDef's associated_type_names. 2016-09-20 20:08:03 +03:00
Eduard Burtescu
8734aaa33e rustc_metadata: move more RBML tags to auto-serialization. 2016-09-20 20:08:02 +03:00
Eduard Burtescu
88c5679c4e rustc_metadata: remove ty{en,de}code and move to auto-derived serialization. 2016-09-20 20:08:01 +03:00
Eduard Burtescu
bcbb4107a1 rustc_metadata: side-step ty{en,de}code for everything but Ty. 2016-09-20 20:08:01 +03:00
Eduard Burtescu
0863012fb9 Remove librbml and the RBML-tagged auto-encoder/decoder. 2016-09-20 20:08:01 +03:00
Eduard Burtescu
2ce0e6d4e7 rustc_trans: use the TypeId hashing mechanism instead of metadata. 2016-09-20 20:08:00 +03:00
Eduard Burtescu
02c4155d2c rustc: remove hir::fold. 2016-09-20 20:08:00 +03:00
Eduard Burtescu
ed593bed88 rustc_metadata: go back to not using the opaque format. 2016-09-20 20:08:00 +03:00
Eduard Burtescu
903ec52ba9 rustc: replace uses of NodeId in Def, other than closures and labels. 2016-09-20 20:08:00 +03:00
Eduard Burtescu
fc363cb482 rustc_metadata: go only through rustc_serialize in astencode. 2016-09-20 20:07:54 +03:00
Eduard Burtescu
91e7239db4 rustc_metadata: combine DecodeContext and rbml::reader::Decoder. 2016-09-20 20:07:16 +03:00
mcarton
726c2b6e9b
Don't ICE when a float can't be parsed 2016-09-20 18:25:00 +02:00
Eduard Burtescu
97864d41a6 rustc_metadata: encode miscellaneous information opaquely. 2016-09-20 19:21:33 +03:00
Eduard Burtescu
3cbe4b8bce rustc_metadata: sign-extend when decoding signed integers. 2016-09-20 19:21:33 +03:00
Eduard Burtescu
d47fd9eb5a rustc_metadata: use specialization for {en,de}coding Ty and Substs. 2016-09-20 19:21:33 +03:00
Eduard Burtescu
82197287a2 rustc_metadata: combine EncodeContext and rbml::writer::Encoder. 2016-09-20 19:21:33 +03:00
Eduard Burtescu
7b073343db rustc_metadata: remove astencode tests. 2016-09-20 19:21:33 +03:00
Eduard Burtescu
78ace66b6a rustc_metadata: remove extension traits from astencode. 2016-09-20 19:21:33 +03:00
Eduard Burtescu
87db6b9e65 rustc_metadata: remove redundant lifetimes from astencode::DecodeContext. 2016-09-20 19:21:33 +03:00
Eduard Burtescu
3ad8aa6b87 rbml: move the tagged encoder/decoder to librustc_metadata. 2016-09-20 19:21:33 +03:00