Commit Graph

6041 Commits

Author SHA1 Message Date
Richo Healey
4cf9e2db5e test: Add an assertion to the #16745 testcase 2015-04-19 00:25:13 -07:00
Richo Healey
57fdeecd91 test: Add testcase for #16745 2015-04-18 17:41:18 -07:00
bors
7fbedc58e3 Auto merge of #24422 - pnkfelix:typeck-highlevel-before-bodies, r=nikomatsakis
typeck: Do high-level structural/signature checks before function body checks.

This avoids various ICEs, e.g. premature calls to cat_expr that yield the dreaded "cat_expr Errd" ICE.

However, it also means that some early error feedback is now not provided.  This may be for the best, because the error feedback were were providing in some of those cases were false positives -- it was spurious feedback and a distraction from the real problem.

So it is not 100% clear whether we actually want to put this change in or not.  I think its a net win, but others might disagree.

(Kudos to @arielb1 for suggesting this modification.)
2015-04-17 03:50:30 +00:00
bors
a52182ffde Auto merge of #24420 - pnkfelix:oflo-api, r=alexcrichton
Fill in missing parts of Integer overflow API 

See todo list at #22020
2015-04-17 00:28:48 +00:00
Felix S. Klock II
4f67850964 Fix test for 32-bit targets.
(The cast from the 64-bit value to isize was using the lower 32-bits,
which led to it being treated as a large positive value rather than a
smallish negative one. The fix was to use the same bits for the upper-
and lower- 32 bits.)
2015-04-17 02:03:38 +02:00
bors
ac2b6f6066 Auto merge of #24437 - fhahn:issue-24434, r=alexcrichton
closes #24434 

This PR changes executes `syntax::config::strip_unconfigured_items` before `syntax::feature_gate::check_crate_macros(sess.codemap()`. As far as I know, `strip_unconfigured_items` should be independent of `check_crate_macros`.
2015-04-16 11:27:52 +00:00
bors
288809c8f3 Auto merge of #23682 - tamird:DRY-is-empty, r=alexcrichton
r? @alexcrichton
2015-04-16 03:22:21 +00:00
bors
e40449e0d5 Auto merge of #24485 - brson:is, r=alexcrichton
It was an oversight that this was not done in the great int upheaval.

[breaking-change]
2015-04-16 01:17:04 +00:00
Brian Anderson
5a3a599428 Forbid is/us suffixes. Fixes #22496
It was an oversight that this was not done in the great int upheaval.

[breaking-change]
2015-04-15 16:13:26 -07:00
Ms2ger
9a5a47eddc Fix some typos. 2015-04-15 13:37:55 +02:00
Tamir Duberstein
10f15e72e6 Negative case of len() -> is_empty()
`s/([^\(\s]+\.)len\(\) [(?:!=)>] 0/!$1is_empty()/g`
2015-04-14 20:26:03 -07:00
Tamir Duberstein
29ac04402d Positive case of len() -> is_empty()
`s/(?<!\{ self)(?<=\.)len\(\) == 0/is_empty()/g`
2015-04-14 20:26:03 -07:00
Alex Crichton
e053571df2 Test fixes and rebase conflicts, round 2 2015-04-14 17:40:37 -07:00
Florian Hahn
7350ce8439 Strip configuration before checking feature gates of macros
closes #24434
2015-04-14 23:39:45 +02:00
Alex Crichton
30425bfe54 Test fixes and rebase conflicts 2015-04-14 13:50:03 -07:00
Alex Crichton
b9d9a376ea rollup merge of #24385: aturon/unstable-scoped
Conflicts:
	src/libstd/thread/mod.rs
	src/test/bench/shootout-mandelbrot.rs
	src/test/bench/shootout-reverse-complement.rs
	src/test/run-pass/capturing-logging.rs
	src/test/run-pass/issue-9396.rs
	src/test/run-pass/tcp-accept-stress.rs
	src/test/run-pass/tcp-connect-timeouts.rs
	src/test/run-pass/tempfile.rs
2015-04-14 10:59:55 -07:00
Alex Crichton
2795811f92 rollup merge of #24379: rkruppe/fmt-negative-zero
Fixes #20596 by making `Debug` render negative zero with a `-` without affecting the behavior of `Display`.

While I was at it, I also removed some dead code from `float_to_str_bytes_common` (the one from `libcore/fmt/float.rs`, not the function of the same name in `libstd/num/strconv.rs`). It had support for different bases, and for negative numbers, but the function is internal to core and the couple places that call it (all in `libcore/fmt/mod.rs`) never use those features: They pass in `num.abs()` and base 10.
2015-04-14 10:55:51 -07:00
Alex Crichton
c24e55b13e rollup merge of #24371: dotdash/24353
Fixes #24353
2015-04-14 10:55:47 -07:00
Alex Crichton
b8760afe47 More test fixes 2015-04-14 10:14:19 -07:00
Alex Crichton
adcd67272e test: Fix fallout in run-pass tests 2015-04-14 10:14:19 -07:00
Felix S. Klock II
0610ee490e Regression tests for wrapping_* operations for integer types. 2015-04-14 18:44:42 +02:00
Aaron Turon
a9fd41e1f9 Fallout: move from scoped to spawn 2015-04-14 08:15:45 -07:00
bors
dabf0c6371 Auto merge of #24312 - rprichard:destabilize-format-args, r=alexcrichton
Fixes #22953.
2015-04-14 14:41:15 +00:00
Felix S. Klock II
d82f9123b2 Fallout from this change. 2015-04-14 14:23:02 +02:00
Eduard Burtescu
4e8e64140f eddyb's refactoring of coercions/adjustments 2015-04-14 21:55:42 +12:00
Björn Steinbrink
e891f29b95 Fix ICE when returning a variable whose declaration is unreachable
Fixes #24353
2015-04-13 13:07:41 +02:00
Ryan Prichard
861556390e Remove pretty-expanded from tests that use format_args!
Now that the internals of `format_args!` are unstable, tests that use it
don't compile after pretty-printing (unless they also declare the necessary
feature).
2015-04-12 22:01:55 -07:00
Robin Kruppe
219f61bdd8 Make Debug include the - in -0.0 2015-04-12 23:39:03 +02:00
Manish Goregaokar
882185ecd5 Rollup merge of #24321 - lstat:16602-needstest, r=pnkfelix
Closes #16602
2015-04-12 18:46:14 +05:30
bors
5afa2704a6 Auto merge of #23011 - nagisa:the-war-of-symbol-and-symbol, r=pnkfelix
We provide tools to tell what exact symbols to emit for any fn or static, but
don’t quite check if that won’t cause any issues later on. Some of the issues
include LLVM mangling our names again and our names pointing to wrong locations,
us generating dumb foreign call wrappers, linker errors, extern functions
resolving to different symbols altogether (`extern {fn fail();} fail();` in some
cases calling `fail1()`), etc.

Before the commit we had a function called `note_unique_llvm_symbol`, so it is
clear somebody was aware of the issue at some point, but the function was barely
used, mostly in irrelevant locations.

Along with working on it I took liberty to start refactoring trans/base into
a few smaller modules. The refactoring is incomplete and I hope I will find some
motivation to carry on with it.

This is possibly a [breaking-change] because it makes dumbly written code
properly invalid.

This fixes all those issues about incorrect use of #[no_mangle] being not reported/misreported/ICEd by the compiler.

NB. This PR does not attempt to tackle the parallel codegen issue that was mentioned in https://github.com/rust-lang/rust/pull/22811, but I believe it should be very straightforward in a follow up PR by modifying `trans::declare::get_defined_value` to look at all the contexts.

cc @alexcrichton @huonw @nrc because you commented on the original RFC issue.

EDIT: wow, this became much bigger than I initially intended.
2015-04-12 01:26:53 +00:00
Manish Goregaokar
f99341a8e0 Rollup merge of #24236 - aturon:issue-19097, r=alexcrichton
Closes #19097
2015-04-11 19:03:43 +05:30
Manish Goregaokar
1737957e19 Rollup merge of #24268 - pnkfelix:regression-tests, r=alexcrichton
A pair of regression tests for issues that seem to have been fixed since they were originally filed.
2015-04-11 19:03:04 +05:30
bors
0be4e0ec50 Auto merge of #24155 - chris-chambers:stmt_macros, r=sfackler
Statement macros are now treated somewhat like item macros, in that a statement macro can now expand into a series of statements, rather than just a single statement.

This allows statement macros to be nested inside other kinds of macros and expand properly, where previously the expansion would only work when no nesting was present.

See:
- `src/test/run-pass/macro-stmt_macro_in_expr_macro.rs`
- `src/test/run-pass/macro-nested_stmt_macro.rs`

This changes the interface of the MacResult trait.  make_stmt has become make_stmts and now returns a vector, rather than a single item.  Plugin writers who were implementing MacResult will have breakage, as well as anyone using MacEager::stmt.

See:
- `src/libsyntax/ext/base.rs`

This also causes a minor difference in behavior to the diagnostics produced by certain malformed macros.

See:
- `src/test/compile-fail/macro-incomplete-parse.rs`
2015-04-11 08:07:34 +00:00
Luke Gallagher
117512348b Add tests for #16602
Closes #16602
2015-04-11 17:13:24 +10:00
bors
3a8275397a Auto merge of #24254 - aturon:join-handle-debug, r=alexcrichton
Make `Box<Any + Send>` implement `Debug`.

Fixes #21291
2015-04-11 05:57:55 +00:00
bors
c87ec1edb1 Auto merge of #24186 - richo:pad-pointers, r=alexcrichton
This pads out the printing of pointers to their native width.

Extracted from and rebased on top of #24144
2015-04-11 01:59:18 +00:00
bors
93f7fe32d3 Auto merge of #24270 - pnkfelix:use-disr-val-for-derive-ord, r=brson
Use `discriminant_value` intrinsic for `derive(PartialOrd)`

[breaking-change]

This is a [breaking-change] because it can change the result of comparison operators when enum discriminants have been explicitly assigned.  Notably in a case like:
```rust
#[derive(PartialOrd)]
enum E { A = 2, B = 1}
```

Under the old deriving, `A < B` held, because `A` came before `B` in the order of declaration.  But now we use the ordering according to the provided values, and thus `A > B`.  (However, this change is very unlikely to break much, if any, code, since the orderings themselves should all remain well-defined, total, etc.)

Fix #15523
2015-04-10 23:49:24 +00:00
Felix S. Klock II
05aaad114f Remove pretty-expanded from 2 tests; deriving(Ord) uses unstable intrinsic. 2015-04-11 00:50:59 +02:00
Felix S. Klock II
47016f9ce5 Test case for 64-bit corner cases where truncation occurred before prior commit. 2015-04-10 19:11:03 +02:00
Felix S. Klock II
c44d40e77f Test case for new derive(PartialOrd) expansion. 2015-04-10 16:32:27 +02:00
Felix S. Klock II
ea2739176b Rebase discriminant_value test. Add case for a specialized repr. 2015-04-10 16:14:00 +02:00
Felix S. Klock II
fb6d780dbe Regression test for Issue 21486.
Fix #21486
2015-04-10 15:35:19 +02:00
Felix S. Klock II
6c2a9910c7 Regression test for Issue 21400.
Fix #21400.
2015-04-10 15:34:34 +02:00
James Miller
800c5f8038 Add test for discriminant_value results 2015-04-10 12:23:37 +02:00
Alex Crichton
eadc3bcd67 std: Unconditionally close all file descriptors
The logic for only closing file descriptors >= 3 was inherited from quite some
time ago and ends up meaning that some internal APIs are less consistent than
they should be. By unconditionally closing everything entering a `FileDesc` we
ensure that we're consistent in our behavior as well as robustly handling the
stdio case.
2015-04-10 01:03:38 -07:00
Richo Healey
64da4e171d fmt: Assume that we'll only ever see 32 or 64 bit pointers 2015-04-09 18:06:01 -07:00
Richo Healey
d8bb08037f test: Unignore test for fixed issue #20676 2015-04-09 18:03:48 -07:00
Richo Healey
333eb85d4b fmt: {:p#} formats pointers padded to native width 2015-04-09 18:03:47 -07:00
Aaron Turon
76d468ae26 Ensure that .join().unwrap() works
Makes `Any + Send` implement `Debug`.

Fixes #21291
2015-04-09 17:33:17 -07:00
Alex Crichton
d6c72306c8 std: Set CLOEXEC for all fds opened on unix
This commit starts to set the CLOEXEC flag for all files and sockets opened by
the standard library by default on all unix platforms. There are a few points of
note in this commit:

* The implementation is not 100% satisfactory in the face of threads. File
  descriptors only have the `F_CLOEXEC` flag set *after* they are opened,
  allowing for a fork/exec to happen in the middle and leak the descriptor.
  Some platforms do support atomically opening a descriptor while setting the
  `CLOEXEC` flag, and it is left as a future extension to bind these apis as it
  is unclear how to do so nicely at this time.

* The implementation does not offer a method of opting into the old behavior of
  not setting `CLOEXEC`. This will possibly be added in the future through
  extensions on `OpenOptions`, for example.

* This change does not yet audit any Windows APIs to see if the handles are
  inherited by default by accident.

This is a breaking change for users who call `fork` or `exec` outside of the
standard library itself and expect file descriptors to be inherted. All file
descriptors created by the standard library will no longer be inherited.

[breaking-change]
2015-04-09 17:07:02 -07:00