Commit graph

3710 commits

Author SHA1 Message Date
Manish Goregaokar
4ff8b8aa8f Rollup merge of #22752 - ipetkov:unsafe-lint-fix, r=alexcrichton
This allows selectively disabling the lint for individual methods or traits.
2015-02-25 03:21:05 +05:30
Manish Goregaokar
89d5d2448d Rollup merge of #22213 - eddyb:ty_open-case-closed, r=nikomatsakis
This type wasn't necessary, as there was no place using it and unsized types not wrapped in it, at the same time.
r? @nikomatsakis
2015-02-24 12:26:01 +05:30
Eduard Burtescu
3b0cafbcd7 tests: update expected recursion limit errors for the temporary lack of spans. 2015-02-24 08:40:15 +02:00
Manish Goregaokar
d7df353377 Rollup merge of #22580 - pnkfelix:guard-pat-cfg2, r=pnkfelix
aatch's cfg revisions, namely to match expressions

Revise handling of match expressions so that arms branch to next arm.

Update the graphviz tests accordingly.

Fixes #22073. (Includes regression test for the issue.)
2015-02-24 12:08:35 +05:30
Manish Goregaokar
5676f6084b Rollup merge of #22301 - nikomatsakis:object-safe-sized-methods, r=huonw
RFC 817 is not yet accepted, but I wanted to put this code up so people can see how it works. And to be ready lest it should be accepted.

cc rust-lang/rfcs#817
2015-02-24 12:08:35 +05:30
Manish Goregaokar
cf2c14f81b Rollup merge of #22730 - ipetkov:lint-docs, r=alexcrichton
This is a breaking change if missing docs are forbidden in any module or crate.

I had to add documentation to undocumented associated types in libstd and libcore, please let me know if the documentation is inadequate anywhere!

Fixes #20648
2015-02-24 12:08:35 +05:30
Manish Goregaokar
eaacc7aad5 Rollup merge of #22632 - nagisa:kill-show-string-with-fire!, r=alexcrichton
Toss the tomatoes!

r? @aturon

Fixes #22478. The underlying bug(?) behind that issue still exists though and there’s another issue that reports it.
2015-02-24 12:08:33 +05:30
Manish Goregaokar
47377904a1 Rollup merge of #22680 - FlaPer87:type_builtin, r=nikomatsakis
Fixes #20302
2015-02-24 12:08:21 +05:30
Ivan Petkov
fcf70230eb Properly reimplement unsafe-code lint to honor changing lint attributes 2015-02-23 22:32:58 -08:00
bors
2890508d97 Auto merge of #21689 - FlaPer87:oibit-send-and-friends, r=nikomatsakis
This is one more step towards completing #13231

This series of commits add support for default trait implementations. The changes in this PR don't break existing code and they are expected to preserve the existing behavior in the compiler as far as built-in bounds checks go.

The PR adds negative implementations of `Send`/`Sync` for some types and it removes the special cases for `Send`/`Sync` during the trait obligations checks. That is, it now fully relies on the traits check rather than lang items.

Once this patch lands and a new snapshot is created, it'll be possible to add default impls for `Send` and `Sync` and remove entirely the use of `BuiltinBound::{BoundSend,BoundSync}` for positive implementations as well.

This PR also removes the restriction on negative implementations. That is, it is now possible to add negative implementations for traits other than `Send`/`Sync`
2015-02-24 02:22:44 +00:00
Niko Matsakis
fd9f7da68e Make traits with by-value-self be considered object safe. 2015-02-23 15:28:27 -05:00
Niko Matsakis
fe512dacc8 Remove awful hack concerning Trait impl Trait in method resolution code that I've been longing to remove for quite some time. 2015-02-23 15:28:27 -05:00
Niko Matsakis
8f5d225933 Extend object safety so that methods with Sized:Self are exempt. 2015-02-23 15:28:26 -05:00
Manish Goregaokar
3b69d1b941 Rollup merge of #22490 - nagisa:inline-args, r=alexcrichton 2015-02-23 11:43:58 -08:00
Manish Goregaokar
f1a6d67e5e Rollup merge of #22544 - bombless:fix-pattern, r=pnkfelix 2015-02-23 11:43:57 -08:00
Manish Goregaokar
8f921502bd Rollup merge of #22667 - dotdash:retslot_cast.rs, r=huonw
We already do this for the function arguments, but miss it for the
retslot pointer, which can lead to LLVM assertions because the retslot
has the wrong type.

Fixes #22663
2015-02-23 11:43:56 -08:00
Ivan Petkov
2e9521c126 Update missing-doc test to explicitly check errors
This way we can be sure the correct error is displayed for the
respective code type.
2015-02-23 11:33:52 -08:00
Ivan Petkov
717a91d665 Update missing-docs lint to check associated type declarations
[breaking-change]

Fixes #20648
2015-02-23 11:07:37 -08:00
Manish Goregaokar
af81ec2f43 Rollup merge of #22559 - kmcallister:borrowck-readme, r=nikomatsakis
And minor fixes to other docs.

r? @nikomatsakis
2015-02-23 23:28:46 +05:30
Flavio Percoco
7ff11d7be8 Unify lifetime/type arguments error messages for (non-)builtin bounds 2015-02-22 16:31:19 +01:00
Flavio Percoco
a1945197c3 continue when builtin bounds are registered 2015-02-22 16:31:19 +01:00
Ahmed Charles
3ebdbac265 Do not permit type parameters on builtin bounds. 2015-02-22 16:31:19 +01:00
Niko Matsakis
3dcc631dee Add additional test case for superregion 2015-02-22 13:17:50 +01:00
Björn Steinbrink
b593c60c33 Add missing cast for retslots in case of "subtyping" due to trait bounds
We already do this for the function arguments, but miss it for the
retslot pointer, which can lead to LLVM assertions because the retslot
has the wrong type.

Fixes #22663
2015-02-22 12:47:27 +01:00
Simonas Kazlauskas
c9d0967383 Validate inline attribute arguments 2015-02-22 13:44:28 +02:00
James Miller
4bae133070 revise handling of match expressions so that arms branch to next arm.
Update the graphviz tests accordingly.

Fixes #22073. (Includes regression test for the issue.)

(Factoring of aatch CFG code, Part 4.)
2015-02-22 12:43:08 +01:00
bors
dcc6ce2c77 Auto merge of #22574 - huonw:remove-lame-statics, r=alexcirchton
Add a basic test that checks that the types catch the most glaring
errors that could occur.

cc #22444
2015-02-22 10:27:08 +00:00
Flavio Percoco
753db88914 allow negative impls for traits that have a default impl 2015-02-22 02:14:27 +01:00
Flavio Percoco
d021c55fb9 Restore the coherence visitor and fix fallouts 2015-02-22 02:14:27 +01:00
Niko Matsakis
3343e9c169 Add new test for impl precedence and remove unnecessary coherence rules that prevent the test from compiling. 2015-02-22 02:14:27 +01:00
Flavio Percoco
6d1844c806 Record default implementations in a separate step 2015-02-22 02:14:27 +01:00
Niko Matsakis
640000a7c0 fix treatment of parameters and associated types 2015-02-22 02:14:27 +01:00
Niko Matsakis
24bdce4bbf some comments and nits 2015-02-22 02:14:26 +01:00
Flavio Percoco
64d33d892a check supertraits 2015-02-22 02:14:26 +01:00
Niko Matsakis
f7a75e0341 Add new test case showing that supertraits are not enough 2015-02-22 02:14:26 +01:00
Flavio Percoco
7213ef1a8f Test all the things 2015-02-22 02:14:26 +01:00
Flavio Percoco
0be1e430cf Fix error codes 2015-02-22 02:14:26 +01:00
Manish Goregaokar
d316a34ec2 Fix lint-unsafe-code test from #22542 2015-02-22 01:53:18 +05:30
Manish Goregaokar
494dbe9c07 Rollup merge of #22516 - leejunseok:nonpub_field_sugg, r=jakub-
closes #22421
2015-02-22 01:52:22 +05:30
Manish Goregaokar
98ec45ee0b Rollup merge of #22542 - ipetkov:unsafe-lint, r=huonw
This allows warning or forbidding all uses of unsafe code, whereas
previously only unsafe blocks were caught by the lint.

The lint has been renamed from `unsafe-blocks` to `unsafe-code` to
reflect its new purpose.

This is a minor [breaking-change]

Closes #22430
2015-02-22 01:50:53 +05:30
Manish Goregaokar
f308550c16 Rollup merge of #22527 - dotdash:if-loop, r=huonw
In `if loop {} {}`, the `if` is actually unreachable, but we didn't
handle that correctly and when trying to translate the `if` we tried to
branch on the \"return value\" of the loop expression, which is not an
`i1` and therefore triggered an LLVM assertion.
2015-02-22 01:47:28 +05:30
Simonas Kazlauskas
e3104d8f0c Kill fmt::Show and fmt::String with fire!
Toss the tomatoes!
2015-02-21 16:27:55 +02:00
Huon Wilson
380d23b5d4 Remove 'static bound from sync::mpsc, Mutex and RwLock.
Adds some basic tests to check that the types still catch the most
glaring errors that could occur.

cc #22444.
2015-02-21 16:51:49 +11:00
Junseok Lee
9b67d07acc added license header to test 2015-02-20 16:16:09 -08:00
Junseok Lee
3419d51199 added local crate struct with priv field to test 2015-02-20 16:16:09 -08:00
Junseok Lee
85069e0529 added 'suggest-private-fields' cfail test 2015-02-20 16:16:09 -08:00
Ivan Petkov
be0dc49675 Unsafe lint will also check for other unsafe code
Checks include declaration/implementation of unsafe functions, traits,
and methods.

This allows warning or forbidding all uses of unsafe code, whereas
previously only unsafe blocks were caught by the lint.

The lint has been renamed from `unsafe-blocks` to `unsafe-code` to
reflect its new purpose.

This is a minor [breaking-change]

Closes #22430
2015-02-19 20:43:09 -08:00
bombless
0643494bc4 Fix tests 2015-02-20 03:10:31 +08:00
Alex Crichton
0cd54b85ef Round 5 test fixes and rebase conflicts 2015-02-19 07:03:18 -08:00
bombless
61ea8b33d0 Fix issue #22426 #22447 2015-02-19 22:01:57 +08:00