Commit Graph

52148 Commits

Author SHA1 Message Date
Eduard Burtescu
d6e72c48dd trans: Don't store extra copies of intrinsics ID/substs. 2016-03-17 18:19:50 +02:00
Eduard Burtescu
89766a81ef trans: use Cell instead of RefCell where it suffices. 2016-03-17 18:19:50 +02:00
Eduard Burtescu
b122d1636a trans: simplify the declare interface. 2016-03-17 18:19:50 +02:00
Eduard Burtescu
c6d214bdeb trans: Revamp and empower cabi::FnType. 2016-03-17 18:19:50 +02:00
Eduard Burtescu
9221b9118b trans: Pass the Rust type for the closure env in type_of_rust_fn. 2016-03-17 18:19:29 +02:00
Eduard Burtescu
7011e30352 trans: Remove the old ExprOrMethodCall. 2016-03-17 18:19:29 +02:00
Eduard Burtescu
55b5a365ef trans: Remove unused return type argument from declare_cfn. 2016-03-17 18:19:29 +02:00
Eduard Burtescu
5af3c12cfc trans: Move static item handling to consts. 2016-03-17 18:19:29 +02:00
Eduard Burtescu
c3f856e7e2 trans: Remove dead code for variants and structs from get_item_val. 2016-03-17 18:19:29 +02:00
Eduard Burtescu
e0970498c7 trans: Move trans_foreign_mod and trans_impl to trans_item. 2016-03-17 18:19:29 +02:00
Eduard Burtescu
16201d45f1 trans: Get functions and do calls only through Callee. 2016-03-17 17:52:30 +02:00
Eduard Burtescu
062a05dde8 metadata: Constrain FoundAst::FoundParent to an Item. 2016-03-17 17:51:58 +02:00
Eduard Burtescu
b918e37eb3 metedata: Remove the unnecessary indirection to astencode. 2016-03-17 17:51:58 +02:00
Eduard Burtescu
9723a3bc37 Move simd_ffi gating from trans to typeck. 2016-03-17 17:51:58 +02:00
Eduard Burtescu
b47fcb8375 trans: Use fmt::Debug for debugging instead of ad-hoc methods. 2016-03-17 17:51:58 +02:00
York Xiang
2910c00206 Fix usability problem when browse document locally 2016-03-18 00:49:15 +09:00
bors
be989acabd Auto merge of #32263 - frewsxcv:compiletest-ignored-expected, r=nikomatsakis
Stop ignoring expected note/help messages in compiletest suite.

Original issue: https://github.com/rust-lang/rust/issues/21195

Relevant PR: https://github.com/rust-lang/rust/pull/30778

Prior to this commit, if a compiletest testcase included the text
"HELP:" or "NOTE:" (note the colons), then it would indicate to the
compiletest suite that we should verify "help" and "note" expected
messages.

This commit updates this check to also check "HELP" and "NOTE" (not the
absense of colons) so that we always verify "help" and "note" expected
messages.
2016-03-17 07:52:30 -07:00
Jeffrey Seyfried
ed8a2e230d Add test 2016-03-17 11:53:18 +00:00
Jeffrey Seyfried
ae4e1082d4 Disallow methods from shadowed traits 2016-03-17 11:50:38 +00:00
bors
abb1515c53 Auto merge of #32237 - alexcrichton:rustbuild-make-dist, r=brson
rustbuild: Implement `make dist`

This commit implements the `make dist` command in the new rustbuild build
system, porting over `dist.mk` and `prepare.mk` into Rust. There's a huge amount
of complexity between those two files, not all of which is likely justified, so
the Rust implementation is *much* smaller.

Currently the implementation still shells out to rust-installer as well as some
python scripts, but ideally we'd rewrite it all in the future to not shell out
and be in Rust proper.
2016-03-17 02:35:32 -07:00
pravic
4cbfe1582a test: Fix missing call of function pointer
Also an unused variable warning was here.
2016-03-17 12:05:22 +03:00
bors
3b765f44a6 Auto merge of #32285 - oli-obk:fix/const_bitshift, r=eddyb
const eval: don't assume the rhs of a bitshift is of any particular type

[regression found](https://internals.rust-lang.org/t/regression-report-stable-2016-03-03-vs-nightly-2016-03-15/3250) in jpeg-decoder
2016-03-16 19:44:30 -07:00
Manish Goregaokar
52e064c39d Add test for silenced unused params in derive 2016-03-17 08:11:46 +05:30
Manish Goregaokar
76b3523ac0 Re-add double underscores in derive (fixes #32292) 2016-03-17 08:11:44 +05:30
Corey Farwell
abd1cea145 Stop ignoring expected note/help messages in compiletest suite.
Original issue: https://github.com/rust-lang/rust/issues/21195

Relevant PR: https://github.com/rust-lang/rust/pull/30778

Prior to this commit, if a compiletest testcase included the text
"HELP:" or "NOTE:" (note the colons), then it would indicate to the
compiletest suite that we should verify "help" and "note" expected
messages.

This commit updates this check to also check "HELP" and "NOTE" (not the
absense of colons) so that we always verify "help" and "note" expected
messages.
2016-03-16 21:53:58 -04:00
Alex Crichton
6cc06b36c4 rustbuild: Implement make dist
This commit implements the `make dist` command in the new rustbuild build
system, porting over `dist.mk` and `prepare.mk` into Rust. There's a huge amount
of complexity between those two files, not all of which is likely justified, so
the Rust implementation is *much* smaller.

Currently the implementation still shells out to rust-installer as well as some
python scripts, but ideally we'd rewrite it all in the future to not shell out
and be in Rust proper.
2016-03-16 17:15:55 -07:00
bors
6e0f2f2f05 Auto merge of #32284 - jseyfried:name_conflict_diagnostics, r=eddyb
Resolve: improve diagnostics for duplicate definitions and imports

This PR improves and regularizes the diagnostics for duplicate definitions and imports.

After this PR, the second of two duplicate definitions/imports will have the following form:
> a(n) [value|type|module|trait|extern crate] named \`*name*\` has already been [defined|imported] in this [module|block|trait|enum]

with a note referencing this first of the two duplicate definitions/imports:
> previous [definition|import] of \`*name*\` here

The error indices remain unchanged.

r? @eddyb
2016-03-16 16:18:12 -07:00
bors
eeb062b8b1 Auto merge of #31746 - erickt:newline, r=sfackler
syntax: Always pretty print a newline after doc comments

Before this patch, code that had a doc comment as the first
line, as in:

```rust
/// Foo
struct Foo;
```

Was pretty printed into:

```rust
///Foostruct Foo;
```

This makes sure that that there is always a trailing newline
after a doc comment.

Closes #31722
2016-03-16 14:20:36 -07:00
Tang Chenglong
01d76099f2 docs: One typo
I think it's a mistake of spelling.
2016-03-16 23:45:28 +08:00
bors
fd5603b6fc Auto merge of #32228 - jonas-schievink:diag1, r=sanxiyn
Normalize return type when checking for E0269

Fixes #31597

First time dealing with normalization. Maybe `normalize_associated_type` would be better here, but it seems to imply it's only used during trans.
2016-03-16 08:02:15 -07:00
bors
e68d40edf4 Auto merge of #32280 - japaric:rt, r=alexcrichton
update compiler-rt submodule

fixes #32194

also see rust-lang/compiler-rt#17

r? @alexcrichton
2016-03-16 05:26:06 -07:00
Jonas Schievink
96d9408dd9 Resolve conflicts and extend the test 2016-03-16 13:22:35 +01:00
Jonas Schievink
4dbb01ff65 Use fully_normalize, unwrapping its result 2016-03-16 12:19:58 +01:00
Jonas Schievink
f0b0a4ff2a Normalize return type when checking for E0269
Fixes #31597
2016-03-16 12:19:58 +01:00
bors
9afa5a13cc Auto merge of #32273 - alexcrichton:fix-time-sub, r=aturon
std: Fix overflow when subtracting Instant

This code was currently only exercised on OSX, but this applies the same method
of subtraction used on Linux which doesn't have the same overflow issues.

Note that this currently includes no tests, but that's because this is only
visible with debug assertions enabled. Soon, however, I'll enable debug
assertions on all auto builds on the bots so we should get testing for this.

Closes #32268
2016-03-16 02:58:35 -07:00
Oliver Schneider
7a2c50f951 don't assume the rhs of a bitshift is of any particular type 2016-03-16 10:54:00 +01:00
Jeffrey Seyfried
b3c626547c Fix fallout in tests 2016-03-16 08:52:33 +00:00
Jeffrey Seyfried
65ec4dfe61 Improve diagnostics for duplicate names 2016-03-16 08:52:31 +00:00
bors
3317cc9d75 Auto merge of #32266 - alexcrichton:fix-mingw-rustbuild-again, r=brson
rustbuild: Fix LLVM compile on MinGW

The LLVM change [1] in #32239 unfortunately broke the LLVM build on MinGW, so
this LLVM submodule update brings in one more fix [2] which should hopefully
remedy that.

Once this lands we should be able to immediately start gating on this to prevent
it from happening again.

[1]: https://github.com/rust-lang/llvm/commit/be89e4b5
[2]: https://github.com/rust-lang/llvm/commit/3dcd2c84
2016-03-15 23:49:06 -07:00
Steven Fackler
50fda1eead Update rpass tests for panic hooks 2016-03-15 20:51:48 -07:00
Steven Fackler
157e1bc681 Make set_hook take a Box<Fn>
Otherwise there's no good way of re-registering a hook you got out of
take_hook.
2016-03-15 20:51:48 -07:00
Steven Fackler
159eae8b8b Rename panic handlers to panic hook 2016-03-15 20:51:48 -07:00
Stu Black
2ddba6f361 Use issue number from rust-lang/rust, not rust-lang/rfcs. 2016-03-15 23:48:15 -04:00
Jorge Aparicio
34a44b5911 update compiler-rt submodule
fixes #32194
2016-03-15 22:32:38 -05:00
bors
0986d645b9 Auto merge of #32236 - alexcrichton:better-compile-intrinsics, r=arielb1
rustc: Improve compile time of platform intrinsics

This commit improves the compile time of `rustc_platform_intrinsics` from 23s to
3.6s if compiling with `-O` and from 77s to 17s if compiling with `-O -g`. The
compiled rlib size also drops from 3.1M to 1.2M.

The wins here were gained by removing the destructors associated with `Type` by
removing the internal `Box` and `Vec` indirections. These destructors meant that
a lot of landing pads and extra code were generated to manage the runtime
representations. Instead everything can basically be statically computed and
shoved into rodata, so all we need is a giant string compare to lookup what's
what.

Closes #28273
2016-03-15 19:41:01 -07:00
Alex Crichton
87ede2da54 rustc: Improve compile time of platform intrinsics
This commit improves the compile time of `rustc_platform_intrinsics` from 23s to
3.6s if compiling with `-O` and from 77s to 17s if compiling with `-O -g`. The
compiled rlib size also drops from 3.1M to 1.2M.

The wins here were gained by removing the destructors associated with `Type` by
removing the internal `Box` and `Vec` indirections. These destructors meant that
a lot of landing pads and extra code were generated to manage the runtime
representations. Instead everything can basically be statically computed and
shoved into rodata, so all we need is a giant string compare to lookup what's
what.

Closes #28273
2016-03-15 17:32:34 -07:00
Alex Crichton
0943b1668d std: Fix overflow when subtracting Instant
This code was currently only exercised on OSX, but this applies the same method
of subtraction used on Linux which doesn't have the same overflow issues.

Note that this currently includes no tests, but that's because this is only
visible with debug assertions enabled. Soon, however, I'll enable debug
assertions on all auto builds on the bots so we should get testing for this.

Closes #32268
2016-03-15 15:19:11 -07:00
bors
c66d2380a8 Auto merge of #31838 - aochagavia:trans, r=nrc
Refactor rustc_trans::save to allow other backends than CSV

r? @nrc

Things done:
* Moved `(.*)Data` structs to an own module, so they can be imported easily (`use data::*`).
* Created a `Dump` trait with callbacks for dumping items.
* Refactored `DumpCsvVisitor` to use an implementor of `Dump` instead of dumping as CSV. Renamed it to `DumpVisitor`.
* Created a `DumpCsv` struct that implements `Dump` and serializes items as CSV.

I tried to extract some of the logic contained in `FmtStr` and `Recorder`, such as normalization of ids (I put it in `DumpVisitor`). I think it makes sense to provide the same information to other implementors of `Dump`, instead of normalizing only for `DumpCsv`. However, there is still some logic related to spans implemented only for `DumpCsv`. I just thought it would be better to merge this as soon as possible, since there are so much changes, and fix this afterwards.
2016-03-15 15:03:00 -07:00
Adolfo Ochagavía
67395d816f Refactor rustc_trans::save
Move rustc_trans::*Data to own module
Add new data to rustc_trans::save
Create a Dump trait implemented by structs that dump save analysis data
Split dump_csv into a DumpVisitor and a CsvDumper
2016-03-15 22:50:18 +01:00
Alex Crichton
41e184c7b6 rustbuild: Fix LLVM compile on MinGW
The LLVM change [1] in #32239 unfortunately broke the LLVM build on MinGW, so
this LLVM submodule update brings in one more fix [2] which should hopefully
remedy that.

Once this lands we should be able to immediately start gating on this to prevent
it from happening again.

[1]: https://github.com/rust-lang/llvm/commit/be89e4b5
[2]: https://github.com/rust-lang/llvm/commit/3dcd2c84
2016-03-15 14:07:55 -07:00