Commit graph

10206 commits

Author SHA1 Message Date
bors
9d2ac9b1e1 Auto merge of #24475 - arielb1:i24363-hacky-hack, r=pnkfelix
Fix #24363
2015-04-17 16:26:20 +00: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
Alex Crichton
71c1b5b704 rustdoc: Inline methods inhereted through Deref
Whenever a type implements Deref, rustdoc will now add a section to the "methods
available" sections for "Methods from Deref<Target=Foo>", listing all the
inherent methods of the type `Foo`.

Closes #19190
2015-04-16 13:28:15 -07:00
bors
5576b0558c Auto merge of #24448 - alexcrichton:issue-24445, r=huonw
One of the parameters to the magical "register a thread-local destructor"
function is called `__dso_handle` and largely just passed along (this seems to
be what other implementations do). Currently we pass the *value* of this symbol,
but apparently the correct piece of information to pass is the *address* of the
symbol.

In a PIE binary the symbol actually contains an address to itself which is why
we've gotten away with what we're doing as long as we have. In a non-PIE binary
the symbol contains the address `NULL`, causing a segfault in the runtime
library if it keeps going.

Closes #24445
2015-04-16 13:29:52 +00: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
8f209d5a3e Auto merge of #24423 - tbelaire:include_bytes, r=alexcrichton
This is a little bit tricky, since with include_str!, we know that we
are including utf-8 content, so it's safe to store the source as a
String in a FileMap. We don't know that for include_bytes!, but I don't
think we actually need to track the contents anyways, so I'm passing "".

new_filemap does check for the zero length content, and it should be
reasonable, howeven I'm not sure if it would be better to pass None
instead of Some(Rc::new("")) as the src component of a FileMap.

Fixes bug #24348
2015-04-16 08:28:27 +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
bors
abf0548b5c Auto merge of #24481 - steveklabnik:rollup, r=steveklabnik
- Successful merges: #24425, #24435, #24438, #24440, #24449, #24457, #24460, #24465, #24467, #24468, #24471, #24476, #24480
- Failed merges:
2015-04-15 23:09:02 +00:00
Steve Klabnik
111404fc21 Rollup merge of #24460 - bytewiseand:master, r=alexcrichton
Closes #24197
Closes #24375

These ICEs are fixed on nightly.
2015-04-15 17:26:08 -04:00
bors
07f807d01f Auto merge of #24330 - pnkfelix:issue-24267, r=nikomatsakis
Extend rustc::middle::dataflow to allow filtering kills from flow-exits.

Fix borrowck analysis so that it will not treat a break that pops through an assignment
```rust
x = { ... break; ... }
```
as a kill of the "moved-out" bit for `x`.

Fix #24267.

[breaking-change], but really, its only breaking code that was already buggy.
2015-04-15 21:05:16 +00:00
Ariel Ben-Yehuda
9c1dfed2ba Use node_ty instead of expr_ty in binary expr fixup 2015-04-15 22:36:06 +03:00
Felix S. Klock II
77bf827968 Regression test. 2015-04-15 18:16:56 +02:00
Alex Crichton
3e57c6c3ba std: Fix thread_local! in non-PIE binaries
One of the parameters to the magical "register a thread-local destructor"
function is called `__dso_handle` and largely just passed along (this seems to
be what other implementations do). Currently we pass the *value* of this symbol,
but apparently the correct piece of information to pass is the *address* of the
symbol.

In a PIE binary the symbol actually contains an address to itself which is why
we've gotten away with what we're doing as long as we have. In a non-PIE binary
the symbol contains the address `NULL`, causing a segfault in the runtime
library if it keeps going.

Closes #24445
2015-04-15 09:14:48 -07:00
Theo Belaire
e4b3faca51 Added a test for include_bytes! dep info
This tests that both include_str! and include_bytes!  mark their input
file as a dependancy, and it's correctly outputted when you run
`rustc --emit dep-info`.
2015-04-15 10:40:04 -04:00
Andreas Martens
14f2dce532 Add tests for "ident only path should have been covered"-ICE 2015-04-15 14:18:47 +02: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
33733b786f rollup merge of #24399: brson/stab 2015-04-14 10:55:59 -07:00
Alex Crichton
38c9e0f4bc rollup merge of #24380: arielb1/no-enum-suggest
Fixes #24365
2015-04-14 10:55:52 -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
33fb5bb004 bench: Fix fallout in benchmarks 2015-04-14 10:14:19 -07:00
Alex Crichton
700e627cf7 test: Fixup many library unit tests 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
Felix S. Klock II
58dc3bb575 Regression tests for issues that led me to revise typeck.
Close #23729
Close #23827
Close #24356
2015-04-14 12:49:26 +02:00
Nick Cameron
b35a587da1 Reviewer comments 2015-04-14 22:17:08 +12:00
Nick Cameron
73c2e768d6 Rebased 2015-04-14 21:55:42 +12:00
Eduard Burtescu
4e8e64140f eddyb's refactoring of coercions/adjustments 2015-04-14 21:55:42 +12:00
bors
a4eb5a66a5 Auto merge of #24295 - contradictioned:master, r=alexcrichton
As i proposed in #24262 (and found acceptance in the IRC channel), added a compiler warning for wrong escaping of curly braces.
2015-04-14 06:54:20 +00:00
Brian Anderson
942c97bce5 Make use of the stability attributes issue a deprecation warning. #22830 2015-04-13 18:42:48 -07:00
Ariel Ben-Yehuda
39543e91f5 Don't try to suggest fields of an enum
Fixes #24365
2015-04-13 19:29:23 +03:00
Manuel Hoffmann
4abade50d7 Added a help span which informs the user about the escaping of curly braces in a format string if a wrongly escaped one is detected in a string. 2015-04-13 15:56:10 +02:00
bors
b9ed9e2a32 Auto merge of #24351 - michaelwoerister:named-tuple-fields, r=alexcrichton
This PR makes `rustc` emit field names for tuple fields in DWARF. Formerly there was no way of directly accessing the fields of a tuple in GDB and LLDB since there is no C/C++ equivalent to this. Now, the debugger sees the name `__{field-index}` for tuple fields. So you can type for example `some_tuple_val.__2` to get the third tuple component.
When pretty printers are used (e.g. via `rust-gdb` or `rust-lldb`) these artificial field names will not clutter tuple rendering (which was the main motivation for not doing this in the past).

Solves #21948.
2015-04-13 12:39:49 +00: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