Commit Graph

45817 Commits

Author SHA1 Message Date
Niko Matsakis
b7e849bf6a infer/mod.rs: add doc comment to RFC1214 variant 2015-08-12 17:58:57 -04:00
Niko Matsakis
ff39ee9a90 wip 082a011e2bd5c8254e6c1b2fdc97a6fcb2927a7f rm binary 2015-08-12 17:58:57 -04:00
Niko Matsakis
7ed39c6d9b Fallout in tests -- explain an interesting test failure having to
do with dropck and the new outlives rules
2015-08-12 17:58:57 -04:00
Niko Matsakis
dee8b54b71 Fallout in tests --- misc error message changes, WF fixes 2015-08-12 17:58:57 -04:00
Niko Matsakis
f4aaedb51e Fallout in tests -- break test into a run-pass and compile-fail component 2015-08-12 17:58:56 -04:00
Niko Matsakis
532fcb250f Fallout in tests -- break this test into three tests, since we later saw
staging differences in terms of when errors were reported
2015-08-12 17:58:56 -04:00
Niko Matsakis
92d16d961d Fallout in tests -- break the object safety part into a separate file because error
will be in future reported by wfcheck, which runs in a later stage than
coherence
2015-08-12 17:58:56 -04:00
Niko Matsakis
09bf2fef22 Fallout in tests -- we now report an error if you even reference a type
`&Foo` where `Foo` is a trait that is not object-safe
2015-08-12 17:58:56 -04:00
Niko Matsakis
d15d743fa8 Add FIXME for apparent stage0 regression 2015-08-12 17:58:56 -04:00
Niko Matsakis
91b3e9cac0 Fallout in libs -- misc missing bounds uncovered by WF checks. 2015-08-12 17:58:56 -04:00
Niko Matsakis
788a802dad New tests --- projection outlives relation 2015-08-12 17:58:22 -04:00
Niko Matsakis
d159977502 Generalize the outlives rule for projections to handle the new cases;
also, generalize VerifyBounds to include OR conditions.
2015-08-12 17:58:22 -04:00
Niko Matsakis
75ee8f1562 Introduce a "origin/cause" for new requirements (or bugfixes...) introduced by RFC 1214,
and issue a warning (and explanatory note) when we encounter such a
thing.
2015-08-12 17:58:22 -04:00
Niko Matsakis
39d164d042 New tests --- check that wf relation is being checked in various positions 2015-08-12 17:57:58 -04:00
Niko Matsakis
6bb1e22911 New WF condition requires checking that argument types are WF
on every call. This ensures that implies bounds are reasonable
(the older code only checked that the values provided had WF types, but
we also must know that the formal types of the arguments are WF.)
2015-08-12 17:57:58 -04:00
Niko Matsakis
8d98877112 Implement a new wfcheck to replace the old wf; this new code only issues
warnings. It also checks more conditions than the old code.  Keep the
old wf code around unchanged so that we can continue to issue errors for
the cases where we used to report errors.

As part of this, remove the where-clauses-must-reference-parameter rule,
which is easily circumvented.
2015-08-12 17:57:58 -04:00
Niko Matsakis
ad47bd8a0f Extend ParameterEnvironment to remember the free_id, and to be usable
on more kind of items
2015-08-12 17:57:57 -04:00
Niko Matsakis
b1963154a1 Add two new kinds of predicates, WellFormed and ObjectSafe. 2015-08-12 17:57:57 -04:00
Niko Matsakis
928955296e Define the wf and outlives relation separately, unlike the existing
`implicator`. These definitions are also in accordance with RFC 1214 (or
more so), and hence somewhat different from the implicator. This commit
also modifies the implicator to remove the older rules for projections,
which can easily trigger infinite loops.
2015-08-12 17:57:57 -04:00
Niko Matsakis
4561607403 Don't report a hard error if there are inference failures until
after we check casts, because sometimes casts can influence inference,
unfortunately. We do re-run `select_all_trait_obligations` during
regionck anyhow.
2015-08-12 17:57:57 -04:00
Alex Crichton
8d90d3f368 Remove all unstable deprecated functionality
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-12 14:55:17 -07:00
bors
6a5c4e77a8 Auto merge of #27691 - jonas-schievink:for-macro, r=alexcrichton
Closes #27004
2015-08-12 20:58:31 +00:00
Alisdair Owens
b7e009b386 Add long diagnostics for E0366 and E0367 2015-08-12 20:50:49 +01:00
bors
d07d465cf6 Auto merge of #27690 - vadimcn:no-windres, r=alexcrichton
Fix #26803
2015-08-12 19:13:52 +00:00
mitaa
d81feb85f7 Remove duplicated path_to_string conversion 2015-08-12 20:22:52 +02:00
mitaa
f357d559ca Replace get_item_path[-1] with get_item_name 2015-08-12 20:22:25 +02:00
bors
8b5948d5bf Auto merge of #27688 - alexcrichton:rollup, r=alexcrichton 2015-08-12 17:07:11 +00:00
Ariel Ben-Yehuda
1dd0c058cf stop cross-crate associated types from being imported
Fixes #22968
Probably fixes #27602
2015-08-12 19:58:32 +03:00
Alex Ozdemir
e09f83ea44 O(1) count,nth,last for slice::Windows,Chunks(Mut)
Implemented count, nth, and last in constant time for Windows, Chunks,
and ChunksMut created from a slice.

Included checks for overflow in the implementation of nth().

Also added a test for each implemented method to libcoretest.

Addresses #24214
2015-08-12 08:34:51 -07:00
Simonas Kazlauskas
646eace6ec Fix ReentrantMutex documentation wrt DerefMut
Initial version of PR had an DerefMut implementation, which was later removed
because it may cause mutable reference aliasing.

Suggest how to implement mutability with reentrant mutex and remove the claim we
implement DerefMut.
2015-08-12 17:00:58 +03:00
bors
81c9ff24fe Auto merge of #27630 - sylvestre:master, r=dotdash 2015-08-12 12:47:22 +00:00
Robin Kruppe
15518a9c0c Mention that the fast path is broken without SSE. 2015-08-12 11:09:56 +02:00
Jonas Schievink
a016dfb1d1 Fix macro expansion in for loop pattern 2015-08-12 10:34:14 +02:00
bors
2b45a0d908 Auto merge of #27618 - dotdash:drop_fixes, r=luqmana 2015-08-12 08:13:35 +00:00
Tim Neumann
2d4e07edb5 Fix #23808: dead_code lint: visit types in paths 2015-08-12 08:22:08 +02:00
Vadim Chugunov
31be146ba0 Fix #26803 2015-08-11 23:20:19 -07:00
Björn Steinbrink
d17d2dd48e Workaround ODR violations in enum debuginfo
When using a generic enum type that was defined in an external crate,
our debuginfo currently claims that the concrete type (e.g. Option<i32>)
was defined in the current crate, where it was first used.

This means that if there are multiple crates that all use, for example,
Option<i32> values, they'll have conflicting debuginfo, each crate
claiming to have defined that type. This doesn't cause problems in
regular builds, but with LTO enabled, LLVM complains because it tries to
merge the debuginfo for those types and sees the ODR violations.

Since I couldn't find a way to get the file info for the external crate
that actually defined the enum, I'm working around the issue by using
"<unknown>" as the file for enum types. We'll want to re-visit and fix
this later, but this at least this fixes the ICE. And with the file
being unknown instead of wrong, the debuginfo isn't really worse than
before either.

Fixes #26447
2015-08-12 07:42:31 +02:00
Alex Crichton
6b09eb8e17 Test fixes and rebase conflicts 2015-08-11 22:42:22 -07:00
Alex Crichton
fe3ab21054 rollup merge of #27682: neurons/np.27681
PR for [Issue #27681] (https://github.com/rust-lang/rust/issues/27681). A simple update to the latest version of rust when typing the command rustc --version.
2015-08-11 22:42:22 -07:00
Alex Crichton
db3f06388b rollup merge of #27679: durka/patch-5
I'm not 100% sure lines 63 and 73 are typos.
2015-08-11 22:42:22 -07:00
Alex Crichton
837ae4f3d4 rollup merge of #27678: alexcrichton/snapshots
* Lots of core prelude imports removed
* Makefile support for MSVC env vars and Rust crates removed
* Makefile support for morestack removed
2015-08-11 22:42:22 -07:00
Alex Crichton
bbef8893f7 rollup merge of #27676: alexcrichton/msvc-unwind
This commit leverages the runtime support for DWARF exception info added
in #27210 to enable unwinding by default on 64-bit MSVC. This also additionally
adds a few minor fixes here and there in the test harness and such to get
`make check` entirely passing on 64-bit MSVC:

* The invocation of `maketest.py` now works with spaces/quotes in CC
* debuginfo tests are disabled on MSVC
* A link error for librustc was hacked around (see #27438)
2015-08-11 22:42:21 -07:00
Alex Crichton
00ac2c0550 rollup merge of #27674: zaeleus/ios-imports
See https://github.com/rust-lang/rust/issues/27590#issuecomment-128885975.
2015-08-11 22:42:21 -07:00
Alex Crichton
d4f2ef9b30 rollup merge of #27672: eefriedman/ios-target-cpu
This matches the behavior of clang.

See also discussion on #27307.
2015-08-11 22:42:21 -07:00
Alex Crichton
d493659d7b rollup merge of #27666: vadimcn/cabi-typo
I was not able to come up with tests that would expose this bug, as, apparently, Rust types of the args are not used for anything but debug logging.
Thanks to @luqmana for pointing this out!
2015-08-11 22:42:21 -07:00
Alex Crichton
d2552faa9d rollup merge of #27665: frewsxcv/patch-25
They are currently rendered incorrectly

https://doc.rust-lang.org/error-index.html#E0067

https://doc.rust-lang.org/error-index.html#E0070
2015-08-11 22:42:21 -07:00
Alex Crichton
8267ff7ae2 rollup merge of #27664: birkenfeld/patch-1 2015-08-11 22:42:20 -07:00
Alex Crichton
2abc93606f rollup merge of #27663: tbu-/pr_remove_fixme 2015-08-11 22:42:20 -07:00
Alex Crichton
1757837228 rollup merge of #27659: goyox86/goyox86/update-spanish-book-link
This PR just updates the link of my translation of the book to the final rendered version of it.

/cc @steveklabnik
2015-08-11 22:42:20 -07:00
Alex Crichton
29eae0eceb rollup merge of #27650: dotdash/backtrace_test
LLVM might perform tail merging on the calls that initiate the unwinding
process which breaks debuginfo and therefore this test. Since tail
merging is guaranteed to break debuginfo, it should be disabled for this
test.

This allows us to restore a testcase that I had to remove earlier
because of the same problem, because back then I didn't realize that
disabling tail merging was an option.

cc #27619
2015-08-11 22:42:20 -07:00