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