Commit graph

4834 commits

Author SHA1 Message Date
bors
78ce46ffdd Auto merge of #28612 - gandro:targetvendor, r=alexcrichton
This adds a new target property, `target_vendor`. It is to be be used as a matcher for conditional compilation. The vendor is part of the [autoconf target triple](http://llvm.org/docs/doxygen/html/classllvm_1_1Triple.html#details): `<arch><sub>-<vendor>-<os>-<env>`. `arch`, `target_os` and `target_env` are already supported by Rust.

This change was suggested in PR #28593. It enables conditional compilation based on the vendor. This is needed for the rumprun target, which needs to match against both, target_os and target_vendor.

The default value for `target_vendor` is "unknown", "apple" and "pc" are other common values.

Matching against the `target_vendor` is introduced behind the feature gate `#![feature(cfg_target_vendor)]`.

This is the first time I messed around with rustc internals. I just added the my code where I found the existing `target_*` variables, hopefully I haven't missed anything. Please review with care. :)

r? @alexcrichton
2015-09-26 00:14:39 +00:00
Eduard Burtescu
f293ea28b4 Remove the deprecated box(PLACE) syntax. 2015-09-24 18:00:08 +03:00
Sebastian Wicki
af68cdfea1 rustc: Add target_vendor for target triples
This adds a new target property, `target_vendor` which can be used as a
matcher for conditional compilation. The vendor is part of the autoconf
target triple: <arch><sub>-<vendor>-<os>-<env>

The default value for `target_vendor` is "unknown".

Matching against the `target_vendor` with `#[cfg]` is currently feature
gated as `cfg_target_vendor`.
2015-09-24 01:44:55 +02:00
Vadim Petrochenkov
885d224230 Encode/decode Names as strings 2015-09-22 19:45:05 +03:00
bors
e9d2587766 Auto merge of #28364 - petrochenkov:usegate, r=alexcrichton
Closes https://github.com/rust-lang/rust/issues/28075
Closes https://github.com/rust-lang/rust/issues/28388

r? @eddyb 
cc @brson
2015-09-22 01:12:26 +00:00
Ms2ger
184c8a99ed Use ast::AsmDialect's variants qualified, and drop the pointless prefix. 2015-09-21 16:48:25 +02:00
bors
d2faba28c0 Auto merge of #28552 - apasel422:issue-28527, r=Manishearth
Closes #28527.

r? @Manishearth
2015-09-21 02:40:40 +00:00
bors
79d259e618 Auto merge of #28534 - marcusklaas:fix-mod-inner-span, r=alexcrichton
Fixes https://github.com/rust-lang/rust/issues/28520.

r? @alexcrichton or @nrc?
2015-09-20 21:31:24 +00:00
Andrew Paseltiner
85b8b447fa Replace ast::Mac_ enum with struct
Closes #28527.
2015-09-20 17:15:04 -04:00
Marcus Klaas
51f4a241bf Fix the overly long inner spans of inline mods 2015-09-20 14:06:58 +02:00
bors
25aaeb40b1 Auto merge of #28529 - Manishearth:rollup, r=Manishearth
- Successful merges: #28463, #28507, #28522, #28525, #28526
- Failed merges:
2015-09-20 07:32:46 +00:00
Manish Goregaokar
d7ec69a652 Rollup merge of #28526 - Manishearth:expand-clone, r=eddyb
This reduces some clones of `Vec`s. These are not deep copies since the
token tree is made using `Rc`s, so this won't be a major improvement.

r? @eddyb
2015-09-20 11:16:27 +05:30
bors
fd38a75077 Auto merge of #28503 - marcusklaas:pub-extern, r=alexcrichton
Fixes https://github.com/rust-lang/rust/issues/28472.
2015-09-20 05:44:45 +00:00
Manish Goregaokar
8aef16c2a5 Move tts instead of cloning in expansion 2015-09-20 06:45:19 +05:30
Andrew Paseltiner
6fa0ff25bd Feature-gate #[no_debug] and #[omit_gdb_pretty_printer_section]
Closes #28091.
2015-09-19 19:39:25 -04:00
bors
783c3fcc1e Auto merge of #28345 - japaric:op-assign, r=nmatsakis
Implements overload-able augmented/compound assignments, like `a += b` via the `AddAssign` trait, as specified in RFC [953]

[953]: https://github.com/rust-lang/rfcs/blob/master/text/0953-op-assign.md

r? @nikomatsakis
2015-09-19 21:19:29 +00:00
bors
d97be7bd70 Auto merge of #28486 - nrc:pub-extern-crate, r=alexcrichton
Temporary 'fix' for #26775

r? @brson
2015-09-19 04:51:13 +00:00
Jorge Aparicio
3ae3a5fc3c Overloaded augmented assignments 2015-09-18 21:20:15 -05:00
Marcus Klaas
e2f3e3ac4f Include visibility modifier in span of foreign item 2015-09-19 00:34:04 +02:00
bors
72a10fa1d3 Auto merge of #28442 - nagisa:remove-enum-vis-field, r=alexcrichton
Followup on #28440 

Do not merge before the referenced PR is merged. I will fix the PR once that is merged (or close if it is not)
2015-09-18 18:51:04 +00:00
Vadim Petrochenkov
1eb42f1c78 Add feature gate 2015-09-18 15:28:01 +03:00
Vadim Petrochenkov
5fa6e857c9 Implement empty struct with braces (RFC 218) 2015-09-18 15:26:08 +03:00
Nick Cameron
269c59d341 Warn on pub extern crate.
Temporary 'fix' for #26775
2015-09-18 18:07:05 +12:00
Vadim Petrochenkov
c3f53d1b12 Resolve prefix in imports with empty braces 2015-09-17 14:13:14 +03:00
Vadim Petrochenkov
357982fae4 Workaround for imports with empty braces 2015-09-17 14:13:13 +03:00
Vadim Petrochenkov
50e42ea9f7 Correctly walk import lists in AST visitors 2015-09-17 14:13:12 +03:00
Simonas Kazlauskas
f5a99ae7fb Remove Visibility field from enum variants
Followup on #28440
2015-09-17 10:02:59 +03:00
Aleksey Kladov
e3be84c6c8 libsyntax: forbid visibility modifiers for enum variants
fixes #28433
2015-09-17 10:02:08 +03:00
Nick Cameron
4fbe514985 Fix the span for ! returns 2015-09-17 15:13:51 +12:00
Nick Cameron
e9f1b06329 Use ast attributes every where (remove HIR attributes).
This could be a [breaking-change] if your lint or syntax extension (is that even possible?) uses HIR attributes or literals.
2015-09-16 10:57:06 +12:00
bors
f3e6d31538 Auto merge of #28351 - jonas-schievink:macro-bt, r=nrc
The second commit in this PR will stop printing the macro definition site in backtraces, which cuts their length in half and increases readability (the definition site was only correct for local macros).

The third commit will not print an invocation if the last one printed occurred at the same place (span). This will make backtraces caused by a self-recursive macro much shorter.

(A possible alternative would be to capture the backtrace first, then limit it to a few frames at the start and end of the chain and print `...` inbetween. This would also work with multiple macros calling each other, which is not addressed by this PR - although the backtrace will still be halved)

Example:
```rust
macro_rules! m {
 ( 0 $($t:tt)* ) => ( m!($($t)*); );
 () => ( fn main() {0} );
}

m!(0 0 0 0 0 0 0 0 0 0 0 0 0 0 0);
```

On a semi-recent nightly, this yields:
```
test.rs:3:21: 3:22 error: mismatched types:
 expected `()`,
    found `_`
(expected (),
    found integral variable) [E0308]
test.rs:3  () => ( fn main() {0} );
                              ^
test.rs:1:1: 4:2 note: in expansion of m!
test.rs:2:23: 2:34 note: expansion site
test.rs:1:1: 4:2 note: in expansion of m!
test.rs:2:23: 2:34 note: expansion site
test.rs:1:1: 4:2 note: in expansion of m!
test.rs:2:23: 2:34 note: expansion site
test.rs:1:1: 4:2 note: in expansion of m!
test.rs:2:23: 2:34 note: expansion site
test.rs:1:1: 4:2 note: in expansion of m!
test.rs:2:23: 2:34 note: expansion site
test.rs:1:1: 4:2 note: in expansion of m!
test.rs:2:23: 2:34 note: expansion site
test.rs:1:1: 4:2 note: in expansion of m!
test.rs:2:23: 2:34 note: expansion site
test.rs:1:1: 4:2 note: in expansion of m!
test.rs:2:23: 2:34 note: expansion site
test.rs:1:1: 4:2 note: in expansion of m!
test.rs:2:23: 2:34 note: expansion site
test.rs:1:1: 4:2 note: in expansion of m!
test.rs:2:23: 2:34 note: expansion site
test.rs:1:1: 4:2 note: in expansion of m!
test.rs:2:23: 2:34 note: expansion site
test.rs:1:1: 4:2 note: in expansion of m!
test.rs:2:23: 2:34 note: expansion site
test.rs:1:1: 4:2 note: in expansion of m!
test.rs:2:23: 2:34 note: expansion site
test.rs:1:1: 4:2 note: in expansion of m!
test.rs:2:23: 2:34 note: expansion site
test.rs:1:1: 4:2 note: in expansion of m!
test.rs:2:23: 2:34 note: expansion site
test.rs:1:1: 4:2 note: in expansion of m!
test.rs:6:1: 6:35 note: expansion site
test.rs:3:21: 3:22 help: run `rustc --explain E0308` to see a detailed explanation
error: aborting due to previous error
```

After this patch:
```
test.rs:3:21: 3:22 error: mismatched types:
 expected `()`,
    found `_`
(expected (),
    found integral variable) [E0308]
test.rs:3  () => ( fn main() {0} );
                              ^
test.rs:2:23: 2:34 note: in this expansion of m!
test.rs:6:1: 6:35 note: in this expansion of m!
test.rs:3:21: 3:22 help: run `rustc --explain E0308` to see a detailed explanation
error: aborting due to previous error
```
2015-09-15 03:21:30 +00:00
bors
bc6c3970a0 Auto merge of #28247 - christopherdumas:fix_28243, r=eddyb
as per #28243.
2015-09-14 20:37:49 +00:00
christopherdumas
afa905fcf5 Fix tuple float bug. 2015-09-14 07:26:11 -07:00
Jonas Schievink
0be755c24a Print the file in which a macro was defined 2015-09-14 16:09:57 +02:00
bors
2d4ae52cbd Auto merge of #28358 - dotdash:nounwind, r=alexcrichton
This allows to skip the codegen for all the unneeded landing pads, reducing code size across the board by about 2-5%, depending on the crate. Compile times seem to be pretty unaffected though :-/
2015-09-14 11:05:34 +00:00
Björn Steinbrink
e4e67bd489 Add an attribute to mark function as unwinding 2015-09-13 23:42:40 +02:00
bors
9040b06ed2 Auto merge of #28286 - matklad:remove-dead-code, r=eddyb
There is a dead code in libsyntax/parser/parse.rs, when parsing structs.

Two functions are involved:

* [parse_item_struct](cd9c9f048f/src/libsyntax/parse/parser.rs (L4691))
* [parse_tuple_struct_body](cd9c9f048f/src/libsyntax/parse/parser.rs (L4769))

The problem is that both functions handle the case with unit structs. But because
`parse_tuple_struct_body` is called from `parse_item_struct`, it never faces
this case.

This PR removes unit struct case from `parse_tuple_struct_body` function. I tested with `make -j8 check-statge1`.
2015-09-13 13:09:22 +00:00
Jonas Schievink
f3308b9c9d Don't print duplicate macro backtrace frames 2015-09-11 11:48:44 +02:00
Vadim Petrochenkov
9f1f4c16aa Remove some remains of virtual structs from the parser 2015-09-11 10:09:22 +03:00
Jonas Schievink
31fa44b18e Don't print the macro definition site in backtraces
This halves the backtrace length. The definition site wasn't very useful
anyways, since it may be invalid (for compiler expansions) or located in
another crate. Since the macro name is still printed, grepping for it is
still an easy way of finding the definition.
2015-09-10 22:25:28 +02:00
Jonas Schievink
49d8b0dcbe Make print_macro_backtrace non-recursive 2015-09-10 21:22:59 +02:00
Aleksey Kladov
c87a58fe4b libsyntax: minor clean up
Escape `{` in format strings as `{{`, instead of using a substitution
2015-09-10 15:14:24 +03:00
bors
a7d63fdbd0 Auto merge of #28291 - nrc:shr_span_fix, r=sfackler 2015-09-08 04:45:37 +00:00
Nick Cameron
5fbdf3ccd0 Fix span bug with >> and type bindings 2015-09-08 16:28:12 +12:00
bors
d2a5b117c1 Auto merge of #28246 - huonw:lang-tracking-issues, r=alexcrichton
This is similar to the libs version, which allow an `issue` field in the
`#[unstable]` attribute.

cc #28244
2015-09-08 01:02:06 +00:00
Huon Wilson
31310f5b65 Allow tracking issues for lang features.
This is similar to the libs version, which allow an `issue` field in the
`#[unstable]` attribute.

cc #28244
2015-09-08 11:01:42 +10:00
Aleksey Kladov
0e96c28236 libsyntax: restore lost error message 2015-09-07 22:15:36 +03:00
Aleksey Kladov
c8da5697e0 libsyntax: remove dead code from parser.rs
Both `parse_tuple_struct_body` and `parse_item_struct` handled the case
of unit like struct. The redundancy is removed,
`parse_tuple_struct_body` now handles only real tuple structs.
2015-09-07 20:08:57 +03:00
bors
86156ac606 Auto merge of #28175 - christopherdumas:master, r=nrc
per #28168. This is my first contribution. I don't know who to "r?" for source code changes.
2015-09-07 01:16:38 +00:00
christopherdumas
cd9c9f048f functional structure update syntax -> structure update syntax 2015-09-06 09:13:20 -07:00