7153 Commits

Author SHA1 Message Date
Niko Matsakis
36d04711b7 Remove bounds struct from TypeParameterDef. Bounds information is now
exclusively stored in the where clauses.
2015-02-24 16:27:22 -05:00
Niko Matsakis
0d9e473be9 Comprehence cycle detection in collect. In some cases, the cycles we
report are not *necessary* cycles, but we'll work on refactoring them
over time. This overlaps with the cycle detection that astconv already
does: I left that code in because it gives a more targeted error
message, though perhaps less helpful in that it doesn't give the full
details of the cycle.
2015-02-24 16:27:22 -05:00
Niko Matsakis
15ef2c2e6b Convert astconv to request bounds through the AstConv interface
rather than poking through the `TypeParameterDef` directly.
2015-02-24 16:27:22 -05:00
Oliver Schneider
0bea550a2a style nitpicks 2015-02-24 14:14:48 +01:00
Eduard Burtescu
72d5f39be7 Fix fallout from rebasing. 2015-02-24 14:16:02 +02:00
Eduard Burtescu
d31b9ebef5 Implement <T>::method UFCS expression syntax. 2015-02-24 14:16:02 +02:00
Eduard Burtescu
5a6a9ed792 rustc: combine partial_def_map and last_private_map into def_map. 2015-02-24 14:16:02 +02:00
Eduard Burtescu
06f362aeb3 rustc_resolve: don't handle impl items as if they were modules. 2015-02-24 14:16:01 +02:00
Eduard Burtescu
fe4f9b8e3a Use partial path resolutions in expressions for UFCS desugaring. 2015-02-24 14:16:01 +02:00
Eduard Burtescu
7a3054f55c rustc_resolve: remove the distinction between DefStaticMethod and DefMethod. 2015-02-24 14:14:17 +02:00
Eduard Burtescu
0f49254b31 rustc: use partially resolved definitions to replace the T::A hack. 2015-02-24 14:14:17 +02:00
Eduard Burtescu
5809f8ae74 rustc_resolve: use the visitor model more, remove redundant repeated lookups. 2015-02-24 14:14:16 +02:00
Eduard Burtescu
ffb8092ccf syntax: use a single Path for Trait::Item in QPath. 2015-02-24 14:14:16 +02:00
Eduard Burtescu
9a69378e8b rustc: load DefAssociatedTy from cross-crate metadata. Fixes #20542. 2015-02-24 14:14:16 +02:00
Eduard Burtescu
9739ae4d09 rustc: remove unused ForeignType item family. 2015-02-24 14:14:16 +02:00
Eduard Burtescu
004df413aa syntax: don't use TraitRef in QPath. 2015-02-24 14:14:16 +02:00
Eduard Burtescu
a817c69297 syntax: don't store a secondary NodeId for TyPath. 2015-02-24 14:14:16 +02:00
Eduard Burtescu
27747ac1a7 Revert bogus rename from DefTrait to DefaultImpl. 2015-02-24 14:14:16 +02:00
Manish Goregaokar
13efa52946 Remove another instance of ty_open (fixup #22213) 2015-02-24 12:25:56 +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
7a8a5172a5 Remove ty_open and treat Unsized lvalues as *Unsized. 2015-02-24 08:40:14 +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
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
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
5a41536462 Rollup merge of #22664 - lfairy:just-say-no, r=alexcrichton
Leading hyphens already don't work (#22661), so no code should break from this change.

Closes #22661.
2015-02-23 11:43:56 -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
07b6b7492d Rollup merge of #22674 - untitaker:issue22243, r=alexcrichton
"body": null,
2015-02-23 23:28:48 +05:30
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
bors
67eb38ee4c Auto merge of #22466 - Kimundi:str_pattern_ai_safe, r=aturon
This is not a complete implementation of the RFC:

- only existing methods got updated, no new ones added
- doc comments are not extensive enough yet
- optimizations got lost and need to be reimplemented

See https://github.com/rust-lang/rfcs/pull/528

Technically a

[breaking-change]
2015-02-22 22:45:46 +00:00
Markus Unterwaditzer
a499148457 Fix another occurrence of #22243 2015-02-22 17:13:41 +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
James Miller
eb4961b961 Add support for mapping a single ast-node to multiple cfg-nodes.
This is necessary for e.g. supporting the cfgs we plan to construct
for match under aatch's plan.

(Factoring of aatch CFG code, Part 3.)
2015-02-22 12:43:03 +01:00
James Miller
a0b7bad00e remove the exit_map field, it is unnecessary.
(Factoring of aatch CFG code, Part 2.)
2015-02-22 12:01:59 +01:00
James Miller
97c1711894 Distinguish between AST and various Dummy nodes in CFG.
(Factoring of aatch CFG code, Part 1.)
2015-02-22 12:01:58 +01:00
Chris Wong
a7594f2d5b Disallow crate names with leading hyphens
Leading hyphens already don't work (#22661), so no code should break
from this change.

Closes #22661.
2015-02-22 20:05:05 +13:00
Flavio Percoco
6d1844c806 Record default implementations in a separate step 2015-02-22 02:14:27 +01:00
Niko Matsakis
3ebc2abc6a tweak exhaustive matching of ty_infer 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
Flavio Percoco
1cc5a87c08 Don't report bug for IntVar and FloatVar 2015-02-22 02:14:27 +01:00
Flavio Percoco
38ef5ee48f Check constituent types are known 2015-02-22 02:14:27 +01:00
Niko Matsakis
e8df95d77f mark candidate set ambig for defaulted traits where self-type is not yet known 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
40fffc9e3f Some nits and cleanup 2015-02-22 02:14:26 +01:00