Commit Graph

47275 Commits

Author SHA1 Message Date
panicbit
ce1f4fc0ba Add link to the german trpl translation 2015-10-06 19:50:09 +02:00
Carlos Liam
aba267fd0d Replace multiple trailing newlines with a single trailing newline
Sorry I didn’t get this in the last PR (#28864), I hadn’t thought of it.
2015-10-06 13:06:39 -04:00
Niko Matsakis
24ee4b1f6c rename dump to mir_map, which seems more suitable 2015-10-06 12:37:43 -04:00
Niko Matsakis
810cf71a3c make mir map available to later passes (currently unused) 2015-10-06 12:35:53 -04:00
Guillaume Gomez
df7d3b916d Add error explanation for E0496 2015-10-06 18:04:09 +02:00
Niko Matsakis
3099fd4617 store the mir into a map, restructure to avoid rebuilding so many times 2015-10-06 11:41:31 -04:00
Carlos Liam
3967e1c940 Clean newlines 2015-10-06 11:14:11 -04:00
Felix S. Klock II
7a4743fab0 review comment: use RFC example for compile-fail/issue28498-reject-ex1.rs
(It is not *exactly* the text from the RFC, but the only thing it adds
is a call to a no-op function that is just an attempt to make it clear
where the potential for impl specialization comes from.)
2015-10-06 16:54:10 +02:00
Felix S. Klock II
5708f44b36 shorten URLs to placate make tidy. 2015-10-06 16:51:20 +02:00
Niko Matsakis
5858f6bd67 purge -Z always-build-mir, which is no longer relevant 2015-10-06 10:48:11 -04:00
Chris C Cerami
f490f5171e Wrap words at 80 characters 2015-10-06 10:39:37 -04:00
Craig Hills
7895ec2d57 address review concerns 2015-10-06 10:30:33 -04:00
Niko Matsakis
e02ddff816 strip out the hair trait and use concrete types instead 2015-10-06 09:51:58 -04:00
Felix S. Klock II
83077bee93 compile-fail tests.
One just checks that we are feature-gating the UGEH attribute (as
usual for attributes associated with unstable features).

The other is adapted from the RFC 1238 text, except that it has been
extended somewhat to actually *illustrate* the scenario that we are
trying to prevent, namely observing the state of data, from safe code,
after the destructor for that data has been executed.
2015-10-06 14:16:50 +02:00
Felix S. Klock II
eea299beaa run-pass tests for RFC 1238.
Illustrates cases that worked before and must continue to work, and a
case that shows how to use the `unsafe_destructor_blind_to_params`
attribute (aka "the UGEH attribute") to work around
cannot-assume-parametricity.
2015-10-06 14:16:49 +02:00
Felix S. Klock II
d778e57bf6 Add RFC 1238's unsafe_destructor_blind_to_params (UGEH) where needed.
I needed it in `RawVec`, `Vec`, and `TypedArena` for `rustc` to
bootstrap; but of course that alone was not sufficient for `make
check`.

Later I added `unsafe_destructor_blind_to_params` to collections, in
particular `LinkedList` and `RawTable` (the backing representation for
`HashMap` and `HashSet`), to get the regression tests exercising
cyclic structure from PR #27185 building.

----

Note that the feature is `dropck_parametricity` (which is not the same
as the attribute's name). We will almost certainly vary our strategy
here in the future, so it makes some sense to have a not-as-ugly name
for the feature gate. (The attribute name was deliberately selected to
be ugly looking.)
2015-10-06 14:16:49 +02:00
Felix S. Klock II
9868df2fd5 Non-parametric dropck; instead trust an unsafe attribute (RFC 1238).
Implement cannot-assume-parametricity (CAP) from RFC 1238, and add the
UGEH attribute.

----

Note that we check for the attribute attached to the dtor method, not
the Drop impl.

(This is just to match the specification of RFC and the tests; I am
not wedded to this approach.)
2015-10-06 14:16:20 +02:00
bors
2f60768e84 Auto merge of #28858 - jryans:crate-doc-syntax, r=alexcrichton
Without the blank lines, the content is displayed inline, including the `rust,ignore` syntax hint.

r? @steveklabnik
2015-10-06 10:37:02 +00:00
bors
547c2cdca8 Auto merge of #28855 - jld:mathematial, r=alexcrichton 2015-10-06 08:48:37 +00:00
bors
b1d9ce967f Auto merge of #28823 - petrochenkov:identeq2, r=nrc
Closes https://github.com/rust-lang/rust/issues/28658
2015-10-06 07:00:25 +00:00
J. Ryan Stinnett
ed97bcd44a Complex import example needs blank lines 2015-10-06 00:11:18 -05:00
bors
3729b126e2 Auto merge of #28698 - nrc:fmt8, r=brson 2015-10-06 04:14:56 +00:00
Craig Hills
a78a874ebb possessive its 2015-10-05 22:32:53 -04:00
Craig Hills
8e420e07d9
trpl: Clarify closure terminology
This is to address issue #28803
2015-10-05 22:25:19 -04:00
bors
88b6a5063d Auto merge of #28779 - alexcrichton:ffi-isize-usize, r=nrc
This lint warning was originally intended to help against misuse of the old Rust
`int` and `uint` types in FFI bindings where the Rust `int` was not equal to the
C `int`. This confusion no longer exists (as Rust's types are now `isize` and
`usize`), and as a result the need for this lint has become much less over time.

Additionally, starting with [the RFC for libc][rfc] it's likely that `isize` and
`usize` will be quite common in FFI bindings (e.g. they're the definition of
`size_t` and `ssize_t` on many platforms).

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

This commit disables these lints to instead consider `isize` and `usize` valid
types to have in FFI signatures.
2015-10-06 01:26:13 +00:00
Nick Cameron
b22231c820 rustfmt librustc_trans/save 2015-10-06 14:25:30 +13:00
Jed Davis
da001b8730 Fix doc typo in num::{f32,f64}. 2015-10-05 16:51:43 -07:00
bors
32a8567ea4 Auto merge of #28697 - nrc:fmt7, r=brson 2015-10-05 23:34:07 +00:00
Vadim Petrochenkov
b82d76c8a1 Add comment for the use of Ident in hash map in mtwt 2015-10-06 01:47:35 +03:00
Nick Cameron
7843404d29 Skip one method 2015-10-06 11:24:19 +13:00
Nick Cameron
869e9719fd rustfmt librustc_front 2015-10-06 11:22:34 +13:00
bors
6843ea4a46 Auto merge of #28717 - nagisa:optional-no-landing-pads, r=alexcrichton
Part of #28710

Landing pads during stage0 are now enabled by defaullt. Since this has its downsides and upsides either way, I made it possible to change the option through configure.
2015-10-05 21:47:47 +00:00
Simonas Kazlauskas
a7f2a7881d Fix MSVC stage0 with landing pads enabled 2015-10-05 23:50:04 +03:00
bors
c2be91ede0 Auto merge of #28847 - Ms2ger:typos, r=steveklabnik 2015-10-05 20:02:02 +00:00
bors
be96988cf8 Auto merge of #28849 - semmaz:doc-anchor-fix, r=alexcrichton
r? @steveklabnik
2015-10-05 18:14:09 +00:00
Simon Mazur
fcf8dedb99 docs: anchors fixes 2015-10-05 19:25:54 +03:00
Chris C Cerami
e39808cba8 Link to 'Lifetime Elision' section at first use of elide 2015-10-05 11:40:32 -04:00
Chris C Cerami
915cf01cb6 Use a more common word than "elide", e.g. omit 2015-10-05 11:29:55 -04:00
Ms2ger
6b5349a45e Fix some typos. 2015-10-05 16:48:57 +02:00
bors
c298efdb1f Auto merge of #28748 - nikomatsakis:universal-mir, r=pnkfelix
I had to fix a few things. Notable changes:

1. I removed the MIR support for constants, instead falling back to the existing `ConstVal`. I still think we ought to reform how we handle constants, but it's not clear to me that the approach I was taking is correct, and anyway I think we ought to do it separately.
2. I adjusted how we handle bindings in matches: we now *declare* all the bindings up front, rather than doing it as we encounter them. This is not only simpler, since we don't have to check if a binding has already been declared, it avoids ICEs if any of the arms turn out to be unreachable.
3. I do MIR construction *after* `check_match`, because it detects various broken cases. I'd like for `check_match` to be subsumed by MIR construction, but we can do that as a separate PR (if indeed it makes sense).

I did a crater run and found no regressions in the wild: https://gist.github.com/nikomatsakis/0038f90e10c8ad00f2f8
2015-10-05 03:06:33 +00:00
Niko Matsakis
7e1e830a6f change PartialEq impl for ConstVal so that two constants are ==
if they represent the same constant; otherwise the match algorithm
goes into infinite recursion when a pattern contains `NaN`
2015-10-04 21:19:45 -04:00
Niko Matsakis
0197f982b2 change how we declare bindings so that unreachable arms don't
cause panics
2015-10-04 21:19:33 -04:00
Niko Matsakis
96a3cd0679 rather than just passing the block around, track the candidate's index,
and track which arms are reached (though in fact we don't make use of
this right now -- we might later if we absorb the checking of patterns
into MIR, as I would like)
2015-10-04 21:19:32 -04:00
bors
0db2bc63ba Auto merge of #28840 - rust-lang:brson-patch-1, r=steveklabnik
Add the Tock paper.
2015-10-05 01:16:34 +00:00
Niko Matsakis
1f4acfa691 switch to using constvals for constants, instead of having constant
trees in MIR
2015-10-04 21:08:32 -04:00
Niko Matsakis
dedde0bb5a do MIR construction after pattern evaluation for now to sidestep
various annoying edge cases
2015-10-04 21:08:32 -04:00
Niko Matsakis
0d207cb483 always build MIR 2015-10-04 21:08:32 -04:00
Jed Davis
fd077800ea Fix LLVM assertion on out-of-bounds const slice index.
This turned up as part of #3170.  When constructing an `undef` value to
return in the error case, we were trying to get the element type of the
Rust-level value being indexed instead of the underlying array; when
indexing a slice, that's not an array and the LLVM assertion failure
reflects this.

The regression test is a lightly altered copy of `const-array-oob.rs`.
2015-10-04 17:22:28 -07:00
bors
11a612795a Auto merge of #28573 - ruud-v-a:rustdoc-license, r=brson
The output of rustdoc includes resources licensed under the SIL Open
Font License, the MIT license, and the Apache License 2.0. All of these
licenses permit redistribution provided that the license text is also
redistributed. Previously this was not the case, making rustdoc output
unsuitable for distribution by default. This resolves that problem by
including the license texts in rustdoc output.

See also: https://users.rust-lang.org/t/licensing-rustdoc-output/2880
2015-10-04 23:30:40 +00:00
Brian Anderson
12c68c977f Update bibliography.md 2015-10-04 15:55:19 -07:00