Commit graph

8357 commits

Author SHA1 Message Date
Alex Crichton
ce63fbc7bd rollup merge of #18409 : gamazeps/issue15273 2014-10-30 09:29:24 -07:00
Alex Crichton
7577b6b678 rollup merge of #18383 : bkoropoff/issue-17361 2014-10-30 08:55:40 -07:00
bors
c40fc79a1a auto merge of #18279 : bgamari/rust/check-static-recursion, r=alexcrichton
I just found this patch which at some point solved a problem I encountered. Unfortunately I apparently dropped it before I managed to write a test case. I'll try to dig up the code that triggered the issue.
2014-10-30 09:12:05 +00:00
P1start
737e39696b Special-case some error messages about Sized
The error messages still aren’t as good as they were before DST, but they better
describe the actual problem, not mentioning `Sized` at all (because that bound
is normally implied, not explicitly stated).

Closes #17567.
Closes #18040.
Closes #18159.
2014-10-30 19:51:17 +13:00
P1start
14398f2929 Add a message for when a . follows a macro invocation 2014-10-30 19:51:16 +13:00
Brian Koropoff
88c8a54728 Add regression test for #18425 2014-10-29 21:48:15 -07:00
P1start
fb00015246 Improve the error message for parenthesised box expressions
Closes #15386.
2014-10-30 17:12:22 +13:00
Ben Gamari
b9251cded8 check_static_recursion: Handle foreign items 2014-10-29 23:24:04 -04:00
Nick Cameron
3adb7554d6 Rebasing fixes 2014-10-30 16:12:59 +13:00
Nick Cameron
c48a1ab158 changes to tests 2014-10-30 15:51:56 +13:00
Nick Cameron
1d500cfd74 changes to libs 2014-10-30 15:51:55 +13:00
Alex Crichton
8e9f8f924c collections: impl Deref for Vec/String
This commit adds the following impls:

    impl<T> Deref<[T]> for Vec<T>
    impl<T> DerefMut<[T]> for Vec<T>
    impl Deref<str> for String

This commit also removes all duplicated inherent methods from vectors and
strings as implementations will now silently call through to the slice
implementation. Some breakage occurred at std and beneath due to inherent
methods removed in favor of those in the slice traits and std doesn't use its
own prelude,

cc #18424
2014-10-29 18:48:30 -07:00
Jakub Bukaj
3db13f4892 Always drop var IDs from type variables modulo -Z verbose, per PR discussion 2014-10-29 23:56:22 +01:00
Jakub Bukaj
66fbe4c22c Update tests with the new diagnostic tweaks 2014-10-29 23:56:22 +01:00
Brendan Zabarauskas
936d999b52 Use common variants for open and close delimiters
This common representation for delimeters should make pattern matching easier. Having a separate `token::DelimToken` enum also allows us to enforce the invariant that the opening and closing delimiters must be the same in `ast::TtDelimited`, removing the need to ensure matched delimiters when working with token trees.
2014-10-30 09:35:52 +11:00
bors
18a3db6aa1 auto merge of #18357 : TeXitoi/rust/simplify-reverse-complement, r=alexcrichton
Simpler, safer and shorter, in the same spirit of the current version, and the
same performances.

@mahkoh please review, I think I didn't change any performances related thing.
2014-10-29 22:17:00 +00:00
Steve Klabnik
6ac7fc73f5 Update infrastructure for fail -> panic
This includes updating the language items and marking what needs to
change after a snapshot.

If you do not use the standard library, the language items you need to
implement have changed. For example:

```rust
 #[lang = "fail_fmt"] fn fail_fmt() -> ! { loop {} }
```

is now

```rust
 #[lang = "panic_fmt"] fn panic_fmt() -> ! { loop {} }
```

Related, lesser-implemented language items `fail` and
`fail_bounds_check` have become `panic` and `panic_bounds_check`, as
well. These are implemented by `libcore`, so it is unlikely (though
possible!) that these two renamings will affect you.

[breaking-change]

Fix test suite
2014-10-29 16:06:13 -04:00
Steve Klabnik
7828c3dd28 Rename fail! to panic!
https://github.com/rust-lang/rfcs/pull/221

The current terminology of "task failure" often causes problems when
writing or speaking about code. You often want to talk about the
possibility of an operation that returns a Result "failing", but cannot
because of the ambiguity with task failure. Instead, you have to speak
of "the failing case" or "when the operation does not succeed" or other
circumlocutions.

Likewise, we use a "Failure" header in rustdoc to describe when
operations may fail the task, but it would often be helpful to separate
out a section describing the "Err-producing" case.

We have been steadily moving away from task failure and toward Result as
an error-handling mechanism, so we should optimize our terminology
accordingly: Result-producing functions should be easy to describe.

To update your code, rename any call to `fail!` to `panic!` instead.
Assuming you have not created your own macro named `panic!`, this
will work on UNIX based systems:

    grep -lZR 'fail!' . | xargs -0 -l sed -i -e 's/fail!/panic!/g'

You can of course also do this by hand.

[breaking-change]
2014-10-29 11:43:07 -04:00
bors
3bc545373d auto merge of #18365 : bjz/rust/token, r=alexcrichton
[breaking-change]

(for syntax-extensions)

- Token variant identifiers have been converted to PascalCase for consistency with Rust coding standards
- Some free-functions in `syntax::token` have been converted to methods on `syntax::token::Token`:
    - `can_begin_expr`         -> `Token::can_begin_expr`
    - `close_delimiter_for`    -> `Token::get_close_delimiter`
    - `is_lit`                 -> `Token::is_lit`
    - `is_ident`               -> `Token::is_ident`
    - `is_path`                -> `Token::is_path`
    - `is_plain_ident`         -> `Token::is_plain_ident`
    - `is_lifetime`            -> `Token::is_lifetime`
    - `is_mutability`          -> `Token::is_mutability`
    - `to_binop`               -> `Token::to_binop`
    - `is_keyword`             -> `Token::is_keyword`
    - `is_any_keyword`         -> `Token:is_any_keyword`
    - `is_strict_keyword`      -> `Token::is_strict_keyword`
    - `is_reserved_keyword`    -> `Token::is_reserved_keyword`
    - `mtwt_token_eq`          -> `Token::mtwt_eq`
- `token::Ident` now takes an enum instead of a boolean for clarity
- `token::{to_string, binop_to_string}` were moved to `pprust::{token_to_string, binop_to_string}`
2014-10-29 10:22:01 +00:00
Brian Koropoff
12619bede2 Add regression test for issue #18412 2014-10-28 20:18:10 -07:00
gamazeps
cb5f979942 Diagnostic: resolve bare fn in expected closure
Closes #15273 (I did not find how to get the identifier in the message
:/)

Also creates the span_help! macro associated with #18126
2014-10-29 01:07:40 +01:00
Guillaume Pinot
7017fb095b rephrase some comments according to remarks in the PR 2014-10-28 22:14:05 +01:00
Jakub Bukaj
7f523e7252 Update tests with the new error messages 2014-10-28 17:54:16 +01:00
Jakub Bukaj
cca84e9e21 Remove ty_bot from the type system
We now instead use a fresh variable for expressions that diverge.
2014-10-28 17:54:16 +01:00
Aaron Turon
d9eb13b2c8 Add regression test for lint deprecation 2014-10-28 08:54:33 -07:00
Aaron Turon
e0ad0fcb95 Update code with new lint names 2014-10-28 08:54:21 -07:00
Brian Koropoff
374da5b16d Add regression test for issue #17361 2014-10-28 00:03:36 -07:00
Brendan Zabarauskas
d8b1fa0ae0 Use PascalCase for token variants 2014-10-28 15:55:37 +11:00
Brian Koropoff
e46af8caec Add regression test for issue #16791 2014-10-27 18:51:43 -07:00
Alex Crichton
a33d7617c5 Test fixes and rebase conflicts from rollup 2014-10-27 15:12:48 -07:00
Alex Crichton
20b9897c58 rollup merge of #18362 : kevinmehall/pprint-struct-pat-shorthand 2014-10-27 15:12:47 -07:00
Alex Crichton
c381752b0e rollup merge of #18356 : jakub-/const-pattern-suptype 2014-10-27 15:12:47 -07:00
Alex Crichton
15547e1d72 rollup merge of #18346 : aochagavia/closure-fields 2014-10-27 15:12:47 -07:00
Alex Crichton
1cc938a69a rollup merge of #18337 : bkoropoff/unboxed-imm-upvar-fixes 2014-10-27 15:12:45 -07:00
Alex Crichton
175d6a7435 rollup merge of #18332 : jbcrail/fix-comments 2014-10-27 15:12:30 -07:00
Alex Crichton
f1118cc084 rollup merge of #18324 : jakub-/eneedstest 2014-10-27 15:12:30 -07:00
Alex Crichton
abfc2f3b8d rollup merge of #18315 : arielb1/constexpr-addr 2014-10-27 15:12:29 -07:00
Alex Crichton
e9537735c1 rollup merge of #18250 : dotdash/fix_aliasing 2014-10-27 12:53:01 -07:00
Alex Crichton
0c756de6c5 rollup merge of #18235 : nikomatsakis/issue-18209 2014-10-27 12:53:01 -07:00
Alex Crichton
b3c676ed86 rollup merge of #18229 : bjz/ttdelim 2014-10-27 12:53:01 -07:00
Adolfo Ochagavía
2ce77b33b0 Add test for issue 18343 2014-10-27 16:28:24 +01:00
Kevin Mehall
e5f709079a Preserve struct field pattern shorthand in the prettyprinter.
Use the `is_shorthand` field introduced by #17813 (ead6c4b) to make the
prettyprinter output the shorthand form. Fixes a few places that set
`is_shorthand: true` when the pattern is not a PatIdent with the same
name as the field.
2014-10-27 00:35:35 -07:00
Guillaume Pinot
7c6a4cc98b simplify shootout-reverse-complement.rs
Simpler, safer and shorter, in the same spirit of the current version, and the
same performances.
2014-10-26 22:53:17 +01:00
Jakub Bukaj
f16744ce52 Fix a typecheck regression with constant borrowed pointers in patterns
Change the eqtype relationship to be a suptype relationship instead.

Fixes #18350.
Fixes #18352.
2014-10-26 22:35:26 +01:00
bors
f037452447 auto merge of #18143 : mahkoh/rust/reverse_complement, r=alexcrichton
Lots of unsafe code and lots of branches removed. Also multithreaded.

Rust old: 1.208 seconds
Rust new: 0.761 seconds
C: 0.632 seconds
2014-10-26 16:42:33 +00:00
Brian Koropoff
5662bbad07 Add regression test for #18335 2014-10-25 21:51:14 -07:00
Brian Koropoff
6be48ea92e Add regression test for #18238 and #18336 2014-10-25 21:50:08 -07:00
Joseph Crail
30403204d6 Fix spelling mistakes in comments. 2014-10-25 23:11:17 -04:00
Brendan Zabarauskas
dfb4163f83 Use standard capitalisation for TokenTree variants 2014-10-26 09:53:30 +11:00
Brendan Zabarauskas
ec3f0201e7 Rename TokenTree variants for clarity
This should be clearer, and fits in better with the `TTNonterminal` variant.

Renames:

- `TTTok` -> `TTToken`
- `TTDelim` -> `TTDelimited`
- `TTSeq` -> `TTSequence`
2014-10-26 09:53:29 +11:00