Commit graph

6081 commits

Author SHA1 Message Date
Ariel Ben-Yehuda
83acebc462 Overhaul cast semantics and make them follow RFC401
This should hopefully fix all cast-related ICEs once and for all.

I managed to make diagnostics hate me and give me spurious "decoder error"
 - removing $build/tmp/extended-errors seems to fix it.
2015-05-19 17:42:14 +03:00
Sean Patrick Santos
fbe8066ac3 Catch associated consts that depend on type parameters in type checking.
Constants with values that depend on generic parameters or `Self` cause
ICEs in `check_const`, and are not yet accepted via RFC, so we need to
throw a proper error in these cases.
2015-05-17 15:30:32 -06:00
Nick Hamann
c69a152018 Add error explanations for E0072, E0073, E0121, E0178, E0371, E0372. 2015-05-17 15:53:12 -05:00
Manish Goregaokar
b3706de65a Rollup merge of #25503 - brson:betafix, r=cmr 2015-05-17 11:55:39 +05:30
bors
c23a9d42ea Auto merge of #25387 - eddyb:syn-file-loader, r=nikomatsakis
This allows compiling entire crates from memory or preprocessing source files before they are tokenized.

Minor API refactoring included, which is a [breaking-change] for libsyntax users:
* `ParseSess::{next_node_id, reserve_node_ids}` moved to rustc's `Session`
* `new_parse_sess` -> `ParseSess::new`
* `new_parse_sess_special_handler` -> `ParseSess::with_span_handler`
* `mk_span_handler` -> `SpanHandler::new`
* `default_handler` -> `Handler::new`
* `mk_handler` -> `Handler::with_emitter`
* `string_to_filemap(sess source, path)` -> `sess.codemap().new_filemap(path, source)`
2015-05-17 00:05:34 +00:00
Eduard Burtescu
8cc9878f8d test/compile-fail: fix expected error message for non-UTF8 source. 2015-05-17 02:15:00 +03:00
Brian Anderson
bf15d040c0 Make a test compatible with the beta channel 2015-05-16 14:53:37 -07:00
bors
0d707d15f6 Auto merge of #25485 - XuefengWu:24968_err_msg_parse_self_type_2, r=nrc
fix #24968
report more friendly error message for Self when fn args
copy from https://github.com/rust-lang/rust/pull/25096
r? @nrc  @arielb1
2015-05-16 20:53:42 +00:00
Xuefeng Wu
7fe60c1636 fix error message in test 2015-05-16 21:39:48 +08:00
bors
63b000b1b8 Auto merge of #25444 - nikomatsakis:macro-tt-fix, r=pnkfelix
Permit token trees, identifiers, and blocks to be following by sequences.

Fixes #25436.

r? @pnkfelix
2015-05-16 12:29:31 +00:00
Niko Matsakis
7a5d74828b Add test for two sequence repetitions in a row 2015-05-16 08:26:44 -04:00
Xuefeng Wu
574a8cd8cc fix trait capitalise typo in test file 2015-05-16 17:37:11 +08:00
Xuefeng Wu
5cf6b02571 fix typo for copyright year and trait capitalise 2015-05-16 17:29:48 +08:00
P1start
5a1b336a01 Fix the spans of move closures
Closes #24986.
2015-05-16 11:24:06 +12:00
Niko Matsakis
724b6ed751 Permit token trees, identifiers, and blocks to be following by
sequences.

Fixes #25436.
2015-05-15 13:23:27 -04:00
Manish Goregaokar
1109b6dd8d Rollup merge of #25398 - nham:E0066_E0069, r=huonw
Adds explanations for E0053, E0066, E0069, E0251, E0252, E0255, E0256, E0368.

cc #24407
2015-05-14 19:33:10 +05:30
bors
b1bd3a3c51 Auto merge of #25338 - tamird:unignore-stage-tests, r=alexcrichton
We don't have any pending snapshot-requiring changes. Closes #20184.

Works toward #3965.
2015-05-14 09:04:45 +00:00
Nick Hamann
a4444aa780 Add error explanations for E0066 and E0069.
This also updates the error messages for both. For E0066, it removes mention
of "managed heap", which was removed in 8a91d33. For E0069, I just tweaked
the wording to make it a bit more explicit.
2015-05-13 19:55:34 -05:00
Sean Patrick Santos
b4bbf3a88d Fix ICE that occurs when an associated const is ambiguous.
Also change several error messages to refer to "items" rather than
"methods", since associated items that require resolution during type
checking are not always methods.
2015-05-13 18:10:01 -06:00
Tamir Duberstein
f548a05542 Unignore some tests in stage1
We don't have any pending snapshot-requiring changes. Tests which
continue to be ignored are those that are broken by codegen changes.
2015-05-13 19:58:49 -04:00
bors
222cd73b8a Auto merge of #25344 - arielb1:fresh-float, r=nikomatsakis
There is no subtyping relationship between the types (or their non-freshened
variants), so they can not be merged.

Fixes #22645
Fixes #24352
Fixes #23825

Should fix #25235 (no test in issue).
Should fix #19976 (test is outdated).
2015-05-13 15:42:45 +00:00
bors
eb4cb6d16d Auto merge of #25318 - nrc:for-expn, r=sfackler
r? @sfackler
2015-05-13 12:07:11 +00:00
Nick Cameron
5d4cce6cec Rebasing 2015-05-13 14:35:53 +12:00
Nick Cameron
03d4d5f80e Fix a bunch of bugs
* segfault due to not copying drop flag when coercing
* fat pointer casts
* segfault due to not checking drop flag properly
* debuginfo for DST smart pointers
* unreachable code in drop glue
2015-05-13 14:19:51 +12:00
Nick Cameron
843db01bd9 eddyb's changes for DST coercions
+ lots of rebasing
2015-05-13 14:19:51 +12:00
Ariel Ben-Yehuda
36eb09f356 Create a FreshFloatTy separate from FreshIntTy
There is no subtyping relationship between the types (or their non-freshened
variants), so they can not be merged.

Fixes #22645
Fixes #24352
Fixes #23825

Should fix #25235 (no test in issue).
Should fix #19976 (test is outdated).
2015-05-12 21:45:56 +03:00
Manish Goregaokar
866991e273 Rollup merge of #25329 - jooert:tests, r=alexcrichton 2015-05-12 22:57:53 +05:30
Johannes Oertel
23300a39a1 Add regression test for #20413
Closes #20413.
2015-05-12 12:24:20 +02:00
bors
feac9f1c7b Auto merge of #24818 - tbelaire:double-import, r=nrc
This isn't quite right, but it's interesting.
2015-05-12 08:54:40 +00:00
Nick Cameron
edb2ee510b Tests 2015-05-12 14:20:35 +12:00
bors
7334518579 Auto merge of #25085 - carols10cents:remove-old-tilde, r=steveklabnik
There were still some mentions of `~[T]` and `~T`, mostly in comments and debugging statements. I tried to do my best to preserve meaning, but I might have gotten some wrong-- I'm happy to fix anything :)
2015-05-11 04:46:41 +00:00
Manish Goregaokar
87a6278723 Rollup merge of #25252 - inrustwetrust:crate-type-attribute, r=alexcrichton
Fixes the problem in #16974 with unhelpful error messages when accidentally using the wrong syntax for the `crate_type="lib"` attribute. The attribute syntax error now shows up instead of "main function not found".
2015-05-10 11:01:46 +05:30
inrustwetrust
8e8f8d9a5a Upgraded warning for invalid crate_type attribute syntax to an error
If the user intended to set the crate_type to "lib" but accidentally used
incorrect syntax such as `#![crate_type(lib)]`, the compilation would fail with
"main function not found". This made it hard to locate the source of the
problem, since the failure would cause the warning about the incorrect
attribute not to be shown.
2015-05-10 00:07:26 +02:00
Felix S. Klock II
0fa1c1662f Fallout to compile-fail tests.
This change is worrisome to me, both because:

1. I thought the rules in RFC 599 imply that the `Box<Trait>` without `'static`
   in the first case would expand to the second case, but their behaviors
   here differ.  And,

2. The explicit handling of `'static` should mean `dropck` has no application
   here and thus we should have seen no change to the expected error messages.
   Nonetheless, the error messages changed.
2015-05-08 16:08:59 +02:00
Felix S. Klock II
ccf12853d8 Regression tests for Issue 25199 (dropck and Box<Trait + 'a>). 2015-05-08 15:22:25 +02:00
bors
b402c43f08 Auto merge of #25123 - arielb1:self-inhibiting-error, r=nikomatsakis
Fix #25076.

r? @nikomatsakis
2015-05-07 23:40:55 +00:00
bors
05d5fcaa5b Auto merge of #25161 - jooert:moretests, r=alexcrichton
The last one (at least for the moment 😃).

r? @alexcrichton
2015-05-07 13:33:33 +00:00
Ariel Ben-Yehuda
ea3747902c fix test 2015-05-07 16:19:43 +03:00
Steve Klabnik
74d24ad6af Rollup merge of #24966 - ruud-v-a:explain, r=pnkfelix
The error message was misleading, so I adjusted it, and I also added the long diagnostics for this error (resolves one point in #24407).

I was unsure about how to phrase the error message. Is “generic parameter binding” the correct term for this?
2015-05-07 12:21:01 +02:00
bors
8767e97d7e Auto merge of #24392 - seanmonstar:lint-transmute-mut, r=alexcrichton
The [UnsafeCell documentation says it is undefined behavior](http://doc.rust-lang.org/nightly/std/cell/struct.UnsafeCell.html), so people shouldn't do it.

This happened to catch one case in libstd that was doing this, and I switched that to use an UnsafeCell internally.

Closes #13146
2015-05-06 22:27:58 +00:00
Johannes Oertel
642db4b8b5 Add regression test for #22037
Closes #22037.
2015-05-07 00:25:53 +02:00
Johannes Oertel
57a53f0dfb Add regression test for #21701
Closes #21701.
2015-05-07 00:25:53 +02:00
Johannes Oertel
5b8a486b9e Add regression test for #21177
Closes #21177.
2015-05-06 23:30:51 +02:00
Ariel Ben-Yehuda
4d8d68f80d Fix #25076 2015-05-06 22:12:10 +03:00
Sean McArthur
d131f33557 lint: deny transmuting from immutable to mutable, since it's undefined behavior
[breaking-change] Technically breaking, since code that had been using
these transmutes before will no longer compile. However, it was
undefined behavior, so really, it's a good thing. Fixing your code would
require some re-working to use an UnsafeCell instead.

Closes #13146
2015-05-05 22:26:23 -07:00
Ruud van Asseldonk
4b8098bb19 test: Update expected compile-fail message for E0282 2015-05-06 01:05:18 +02:00
Johannes Oertel
c4693ea1db Add regression tests for #21174
Closes #21174.
2015-05-05 15:57:28 +02:00
Johannes Oertel
29a7d35894 Add regression test for #20862
Closes #20862.
2015-05-05 15:57:28 +02:00
Johannes Oertel
d393ff7c47 Add regression test for #20105
Closes #20105.
2015-05-05 15:57:27 +02:00
bors
c0100ce846 Auto merge of #25113 - pnkfelix:dropck-itemless-traits, r=huonw
Generalize dropck to ignore item-less traits

Fix #24805.

(This is the reopened + rebased version of PR #24898)
2015-05-05 11:06:35 +00:00