Commit Graph

4393 Commits

Author SHA1 Message Date
Andrew Paseltiner
254325cee0 Add test for #17994
Closes #17994.
2015-09-10 16:05:30 -04:00
Andrew Paseltiner
a33532b1b7 Add tests for #22638, #22872, #23024, #23046
Closes #22638.
Closes #22872.
Closes #23024.
Closes #23046.
2015-09-10 11:31:23 -04:00
bors
eaa5bf31b8 Auto merge of #28299 - apasel422:tests, r=alexcrichton
Closes #17001
Closes #21449
Closes #22992
Closes #23208
Closes #23442
2015-09-09 18:40:55 +00:00
bors
7c8ae608dc Auto merge of #28300 - Manishearth:crate_err, r=eddyb
Partially fixes #22750

I'll write a test for this when I figure out how to.

r? @eddyb

cc @steveklabnik
2015-09-09 10:54:05 +00:00
Andrew Paseltiner
04fff50d51 Add tests for #17001, #21449, #22992, #23208, #23442
Closes #17001
Closes #21449
Closes #22992
Closes #23208
Closes #23442
2015-09-08 16:51:21 -04:00
Manish Goregaokar
c65d33819c Print correct crate name 2015-09-09 01:22:03 +05:30
Manish Goregaokar
00e70051dc Add test 2015-09-09 00:34:55 +05:30
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
Niko Matsakis
9bd35c07c2 add MIR code (unused thus far) 2015-09-06 07:27:23 -04:00
Niko Matsakis
9b52c5bfff generalize graphviz library to handle HTML tags and other such things 2015-09-06 07:27:22 -04:00
bors
791e7bcb41 Auto merge of #28170 - nagisa:loopctl-label-spans, r=alexcrichton
r? @alexcrichton
2015-09-04 05:15:22 +00:00
Steve Klabnik
055c23da7b Rollup merge of #28167 - petrochenkov:bytelit, r=nikomatsakis
Avoid confusion with binary integer literals and binary operator expressions in libsyntax
2015-09-03 20:10:07 -04:00
Dave Huseby
e5e4744766 Fixes #27886 -- bitrig does not use jemalloc (yet) 2015-09-03 07:26:17 -07:00
Vadim Petrochenkov
405c616eaf Use consistent terminology for byte string literals
Avoid confusion with binary integer literals and binary operator expressions in libsyntax
2015-09-03 10:54:53 +03:00
Simonas Kazlauskas
1a6934840e Fix hygienic-label-x tests 2015-09-03 03:50:46 +03:00
Simonas Kazlauskas
f6244f1516 Fix #28105 test and add a test for #28109 2015-09-03 03:50:46 +03:00
bors
7780408af6 Auto merge of #28132 - arielb1:uninstantiable, r=nikomatsakis
It is *very* easy to bypass, and is a relic of a bygone age where the type-checker was *much* less robust.

Fixes #27497

r? @nikomatsakis
2015-09-01 23:51:47 +00:00
bors
2d3e8379c8 Auto merge of #28079 - huonw:simd, r=alexcrichton
This adds a new Python script (compatible with 2.7 and 3.x) that will consume some JSON files that define a platform's intrinsics. It can output a file that defines the intrinsics in the compiler, or an `extern` block that will import them.

The complexity of the generator is to be DRY: platforms (especially ARM and AArch64) have a lot of repetition with their intrinsics, for different versions with different types, so being able to write it once is nice.
2015-08-31 21:34:08 +00:00
Ariel Ben-Yehuda
321f8d81b8 remove the is_instantiable check
Fixes #27497
2015-08-31 23:54:15 +03:00
bors
811868ec6f Auto merge of #28103 - GuillaumeGomez:fix-intrinsic, r=huonw
Fixes #28062
2015-08-31 03:00:21 +00:00
Marcus Klaas
b69347c00c Assign correct span to continue expression
Fixes https://github.com/rust-lang/rust/issues/28105.
2015-08-30 20:44:36 +02:00
Guillaume Gomez
bc024d261e Add compile-fail test for E0444 2015-08-30 11:29:34 +02:00
Huon Wilson
b03ca7f805 Separate integers into signed and unsigned.
This is necessary to reflect the ARM APIs accurately, since some
functions explicitly take an unsigned parameter and a signed one, of the
same integer shape, so the no-duplicates check will fail unless we
distinguish.
2015-08-29 15:36:16 -07:00
Jonas Schievink
4b571b055d Handle gateage of built-in attributes seperately
This allows marking attributes as whitelisted/crate-only independent of
their feature gate status.

Closes #24213
2015-08-29 11:37:40 +02:00
bors
af83d98d24 Auto merge of #28001 - arielb1:dtor-fixes, r=pnkfelix
r? @pnkfelix
2015-08-27 02:19:09 +00:00
Ariel Ben-Yehuda
2f052eb0b1 use the parameter environment when checking dtors
This makes it more uniform. No functional changes.
2015-08-25 18:50:26 +03:00
William Throwe
15d6837a16 Mark main-like functions allow(dead_code) in tests
Fixes #12327.
2015-08-24 20:28:24 -04:00
bors
94ee3b5a54 Auto merge of #27871 - alexcrichton:stabilize-libcore, r=aturon
These commits move libcore into a state so that it's ready for stabilization, performing some minor cleanup:

* The primitive modules for integers in the standard library were all removed from the source tree as they were just straight reexports of the libcore variants.
* The `core::atomic` module now lives in `core::sync::atomic`. The `core::sync` module is otherwise empty, but ripe for expansion!
* The `core::prelude::v1` module was stabilized after auditing that it is a subset of the standard library's prelude plus some primitive extension traits (char, str, and slice)
* Some unstable-hacks for float parsing errors were shifted around to not use the same unstable hacks (e.g. the `flt2dec` module is now used for "privacy").


After this commit, the remaining large unstable functionality specific to libcore is:

* `raw`, `intrinsics`, `nonzero`, `array`, `panicking`, `simd` -- these modules are all unstable or not reexported in the standard library, so they're just remaining in the same status quo as before
* `num::Float` - this extension trait for floats needs to be audited for functionality (much of that is happening in #27823)  and may also want to be renamed to `FloatExt` or `F32Ext`/`F64Ext`.
* Should the extension traits for primitives be stabilized in libcore?

I believe other unstable pieces are not isolated to just libcore but also affect the standard library.

cc #27701
2015-08-22 09:59:07 +00:00
bors
7e13faee17 Auto merge of #27849 - jonas-schievink:macro-errors, r=nikomatsakis
And some small indentation/code style fixes in the macro parser.
2015-08-19 00:54:38 +00:00
bors
4c1daeb7ad Auto merge of #27850 - alexcrichton:fix-musl, r=brson
Some new allocator tests require dynamic libraries to run the full test, but
dylibs aren't currently working on MUSL.
2015-08-18 23:20:52 +00:00
Alex Crichton
a2b932c0b6 core: Shuffle around float parsing
Stop using stability to hide the implementation details of ParseFloatError and
instead move the error type into the `dec2flt` module. Also move the
implementation blocks of `FromStr for f{32,64}` into `dec2flt` directly.
2015-08-17 19:35:52 -07:00
bors
e35fd74811 Auto merge of #27169 - huonw:simd, r=alexcrichton
This implements https://github.com/rust-lang/rfcs/pull/1199 (except for doing all the platform intrinsics).

Things remaining for SIMD (not necessarily in this PR):

- [x] I (@huonw) am signed up to ensure the compiler matches the RFC, when it lands
- [x] the platform specific intrinsics aren't properly type checked at the moment (LLVM will throw a "random" assertion)
- [ ] there's a lot of useful intrinsics that are missing, including whole platforms (mips, powerpc)
- [ ] the target-feature `cfg` detection/adding is not so great at the moment
- [x] I think the platform specific intrinsics should go in their own `extern` ABI (i.e. not `"rust-intrinsic"`)

(I'm adjusting the RFC to reflect the latter.)

I think it would be very nice for this to land without requiring the RFC to land first, because of the first point, and because this is the only way for any further work to happen/be experimented with, without requiring people to build/install/multirust a compiler from a custom branch.

r? @alexcrichton
2015-08-17 23:41:36 +00:00
Huon Wilson
502f9acbe9 Revamp SIMD intrinsic trans error handling.
Factor out common pieces, follow `expected ..., found ...` convention
everywhere.
2015-08-17 14:48:44 -07:00
Huon Wilson
84de8caa87 Add tests for various intrinsic behaviours. 2015-08-17 14:41:40 -07:00
Huon Wilson
3e500673cc Fix existing tests for new #[repr(simd)]. 2015-08-17 14:41:40 -07:00
Huon Wilson
e364f0eb5a feature gate cfg(target_feature).
This is theoretically a breaking change, but GitHub search turns up no
uses of it, and most non-built-in cfg's are passed via cargo features,
which look like `feature = "..."`, and hence can't overlap.
2015-08-17 14:41:37 -07:00
bors
6d992728c3 Auto merge of #27833 - arielb1:robust-construction, r=eddyb
Fixes #27815

r? @eddyb
2015-08-17 21:02:47 +00:00
Huon Wilson
c8b6d5b23c Implement repr(simd) as an alias for #[simd]. 2015-08-17 10:57:18 -07:00
Alex Crichton
8ef1e3b77f test: Fix tests for requiring issues 2015-08-15 19:35:52 -07:00
Alex Crichton
cc65f79e55 test: Fix tests for MUSL
Some new allocator tests require dynamic libraries to run the full test, but
dylibs aren't currently working on MUSL.
2015-08-15 13:29:12 -07:00
Jonas Schievink
5e8d39ebfd Slightly improved macro diagnostics + Indentation fixes 2015-08-15 21:27:52 +02:00
Ariel Ben-Yehuda
91be125899 prevent non-dict-structs from being intialized via FRU
Fixes #27831
2015-08-15 21:03:10 +03:00
Ariel Ben-Yehuda
ba98228b4d clean-up ExprStruct and PatStruct type-checking
This fixes the crazy "transparent aliases" bug, which I hope nobody
relied on.
2015-08-15 20:39:28 +03:00
Alex Crichton
45bf1ed1a1 rustc: Allow changing the default allocator
This commit is an implementation of [RFC 1183][rfc] which allows swapping out
the default allocator on nightly Rust. No new stable surface area should be
added as a part of this commit.

[rfc]: https://github.com/rust-lang/rfcs/pull/1183

Two new attributes have been added to the compiler:

* `#![needs_allocator]` - this is used by liballoc (and likely only liballoc) to
  indicate that it requires an allocator crate to be in scope.
* `#![allocator]` - this is a indicator that the crate is an allocator which can
  satisfy the `needs_allocator` attribute above.

The ABI of the allocator crate is defined to be a set of symbols that implement
the standard Rust allocation/deallocation functions. The symbols are not
currently checked for exhaustiveness or typechecked. There are also a number of
restrictions on these crates:

* An allocator crate cannot transitively depend on a crate that is flagged as
  needing an allocator (e.g. allocator crates can't depend on liballoc).
* There can only be one explicitly linked allocator in a final image.
* If no allocator is explicitly requested one will be injected on behalf of the
  compiler. Binaries and Rust dylibs will use jemalloc by default where
  available and staticlibs/other dylibs will use the system allocator by
  default.

Two allocators are provided by the distribution by default, `alloc_system` and
`alloc_jemalloc` which operate as advertised.

Closes #27389
2015-08-14 15:13:10 -07:00
bors
e7261f3ab6 Auto merge of #27641 - nikomatsakis:soundness-rfc-1214, r=nrc
This PR implements the majority of RFC 1214. In particular, it implements:

- the new outlives relation
- comprehensive WF checking

For the most part, new code receives warnings, not errors, though 3 regressions were found via a crater run. 

There are some deviations from RFC 1214. Most notably:

- we still consider implied bounds from fn ret; this intersects other soundness issues that I intend to address in detail in a follow-up RFC. Fixing this without breaking a lot of code probably requires rewriting compare-method somewhat (which is probably a good thing).
- object types do not check trait bounds for fear of encountering `Self`; this was left as an unresolved question in RFC 1214, but ultimately feels inconsistent.

Both of those two issues are highlighted in the tracking issue, https://github.com/rust-lang/rust/issues/27579. #27579 also includes a testing matrix with new tests that I wrote -- these probably duplicate some existing tests, I tried to check but wasn't quite sure what to look for. I tried to be thorough in testing the WF relation, at least, but would welcome suggestions for missing tests.

r? @nrc (or perhaps someone else?)
2015-08-14 15:26:09 +00:00
Ariel Ben-Yehuda
b87c292627 be more robust to bogus items in struct patterns/constructors
Fixes #27815
2015-08-14 17:03:11 +03:00
bors
82b89645fb Auto merge of #27684 - alexcrichton:remove-deprecated, r=aturon
This commit removes all unstable and deprecated functions in the standard
library. A release was recently cut (1.3) which makes this a good time for some
spring cleaning of the deprecated functions.
2015-08-13 23:32:30 +00:00