Commit Graph

1369 Commits

Author SHA1 Message Date
defuz 52fa187431 FIX #21475: Interval match patterns won't parse namespace specifiers correctly 2015-02-28 10:56:46 +02:00
Eduard Burtescu d31b9ebef5 Implement <T>::method UFCS expression syntax. 2015-02-24 14:16:02 +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 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
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
Manish Goregaokar f1a6d67e5e Rollup merge of #22544 - bombless:fix-pattern, r=pnkfelix 2015-02-23 11:43:57 -08:00
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
Flavio Percoco d38aab397e Rename DefTrait to DefaultImpl 2015-02-22 02:14:25 +01:00
Flavio Percoco 6a2f16e136 Add support for default trait impls in libsyntax 2015-02-22 02:14:24 +01:00
Niko Matsakis 68e5bb3f2c Remove remaining uses of []. This time I tried to use deref coercions where possible. 2015-02-20 14:08:14 -05:00
Niko Matsakis 42e155e13b make span on obsolete syntax very precise 2015-02-20 05:35:52 -05:00
Marvin Löbel c8dd2d066d Addressed PR comments 2015-02-20 00:58:15 +01:00
bombless 61ea8b33d0 Fix issue #22426 #22447 2015-02-19 22:01:57 +08:00
Alex Crichton d6e939a2df Round 3 test fixes and conflicts 2015-02-18 16:34:04 -08:00
Alex Crichton 231eeaa35b rollup merge of #22502: nikomatsakis/deprecate-bracket-bracket
Conflicts:
	src/libcollections/slice.rs
	src/libcollections/str.rs
	src/librustc/middle/lang_items.rs
	src/librustc_back/rpath.rs
	src/librustc_typeck/check/regionck.rs
	src/libstd/ffi/os_str.rs
	src/libsyntax/diagnostic.rs
	src/libsyntax/parse/parser.rs
	src/libsyntax/util/interner.rs
	src/test/run-pass/regions-refcell.rs
2015-02-18 15:48:40 -08:00
Niko Matsakis 9ea84aeed4 Replace all uses of &foo[] with &foo[..] en masse. 2015-02-18 17:36:03 -05:00
Niko Matsakis 64cd30e0ca Declare &foo[] to be obsolete syntax. Modify the obsolete mechanism to
support warnings.
2015-02-18 17:35:50 -05:00
Kevin Butler 061206b9c7 Remove usage of .map(|&foo| foo) 2015-02-18 00:57:35 +00:00
Kevin Butler 2f586b9687 Opt for .cloned() over .map(|x| x.clone()) etc. 2015-02-18 00:56:07 +00:00
Manish Goregaokar 16b24f15bd Rollup merge of #22285 - kmcallister:pub-macro, r=nick29581
It's not clear what this means, because a macro in item position can expand to zero or more items.  For now we disallow it, which is technically a

    [breaking-change]

but is landing without an RFC.  The `pub` keyword previously had no effect, which seems quite unintended.

Fixes #18317.
Fixes #14660.
2015-02-15 18:42:48 +05:30
Keegan McAllister dcd4cef119 Forbid pub mymacro!();
It's not clear what this means, because a macro in item position can expand to
zero or more items.  For now we disallow it, which is technically a

    [breaking-change]

but is landing without an RFC.  The `pub` keyword previously had no effect,
which seems quite unintended.

Fixes #18317.
Fixes #14660.
2015-02-13 13:48:09 -08:00
Marvin Löbel 07d00deab2 Made Self a keyword.
It is only allowed in paths now, where it will either work inside a `trait`
or `impl` item, or not resolve outside of it.

[breaking-change]

Closes #22137
2015-02-12 22:04:31 +01:00
Nick Cameron 8122ce81d0 Accept quantification of lifetimes outside the self type in where clauses.
Closes #20022
2015-02-09 09:29:53 +13:00
GuillaumeGomez 8b12d3ddf9 Libsyntax has been updated 2015-02-06 11:59:10 +01:00
GuillaumeGomez d58c0a7597 Replace the get method by the deref one on InternedString 2015-02-06 11:59:10 +01:00
bors 715f9a5e8d Auto merge of #21947 - bluss:full-range-syntax, r=brson
Implement step 1 of rust-lang/rfcs#702

Allows the expression `..` (without either endpoint) in general, can be
used in slicing syntax `&expr[..]` where we previously wrote `&expr[]`.

The old syntax &expr[] is not yet removed or warned for.
2015-02-06 03:11:34 +00:00
Jorge Aparicio 17bc7d8d5b cleanup: replace as[_mut]_slice() calls with deref coercions 2015-02-05 13:45:01 -05:00
Jorge Aparicio 92f11e938a register snapshots 2015-02-04 20:06:12 -05:00
Ulrik Sverdrup 75239142a8 Implement .. syntax for RangeFull as expression
Allows the expression `..` (without either endpoint) in general, can be
used in slicing syntax `&expr[..]` where we previously wrote `&expr[]`.

The old syntax &expr[] is not yet removed or warned for.
2015-02-04 23:23:12 +01:00
Niko Matsakis 8ddcb06b1d Update for new snapshot after rebasing. 2015-02-03 13:14:36 -05:00
Niko Matsakis 0431134119 Remove the explicit closure kind syntax from the parser and AST;
upgrade the inference based on expected type so that it is able to
infer the fn kind in isolation even if the full signature is not
available (and we could perhaps do better still in some cases, such as
extracting just the types of the arguments but not the return value).
2015-02-03 11:56:16 -05:00
Alex Crichton 3ef2df9e88 rollup merge of #21845: Potpourri/import-syntax
syntax like `use foo::bar::;` and `use foo:: as bar;` should be rejected, see issue #21629
2015-02-02 11:01:17 -08:00
Alex Crichton 7335c7dd63 rollup merge of #21830: japaric/for-cleanup
Conflicts:
	src/librustc/metadata/filesearch.rs
	src/librustc_back/target/mod.rs
	src/libstd/os.rs
	src/libstd/sys/windows/os.rs
	src/libsyntax/ext/tt/macro_parser.rs
	src/libsyntax/print/pprust.rs
	src/test/compile-fail/issue-2149.rs
2015-02-02 11:01:12 -08:00
Alex Crichton 075588a493 rollup merge of #21825: kmcallister/ttdelim-span 2015-02-02 10:58:19 -08:00
Alex Crichton 9529ab0e7e rollup merge of #21710: alfie/libsyntax
Conflicts:
	src/libsyntax/parse/parser.rs
2015-02-02 10:56:55 -08:00
Jorge Aparicio fd702702ee for x in xs.into_iter() -> for x in xs
Also `for x in option.into_iter()` -> `if let Some(x) = option`
2015-02-02 13:40:18 -05:00
Jorge Aparicio d5d7e6565a for x in xs.iter() -> for x in &xs 2015-02-02 13:40:18 -05:00
Alfie John 9683745fed Omit integer suffix when unnecessary
See PR # 21378 for context
2015-02-02 04:05:54 +00:00
P1start 597b4fa984 Tweak some ‘expected…’ error messages
Fixes #21153.
2015-02-02 15:30:35 +13:00
Potpourri 0828efd72f Reject syntax like use foo::bar::; and use foo:: as bar; and keywords in view path idents 2015-02-01 23:31:21 +03:00
Keegan McAllister cedc6753f2 Fix end of TtDelimited span 2015-01-31 17:41:38 -08:00
Alex Crichton 0cdde6e5e0 std: Stabilize FromStr and parse
This commits adds an associated type to the `FromStr` trait representing an
error payload for parses which do not succeed. The previous return value,
`Option<Self>` did not allow for this form of payload. After the associated type
was added, the following attributes were applied:

* `FromStr` is now stable
* `FromStr::Err` is now stable
* `FromStr::from_str` is now stable
* `StrExt::parse` is now stable
* `FromStr for bool` is now stable
* `FromStr for $float` is now stable
* `FromStr for $integral` is now stable
* Errors returned from stable `FromStr` implementations are stable
* Errors implement `Display` and `Error` (both impl blocks being `#[stable]`)

Closes #15138
2015-01-30 08:52:44 -08:00
Nick Cameron 023d49e347 Change from core::ops::RangeFull to std::ops 2015-01-30 12:01:08 +13:00
Nick Cameron bf2b473816 Rename FullRange to RangeFull 2015-01-30 12:01:08 +13:00
Nick Cameron a9d465fec9 Use absolute path to FullRange, rather than assuming it is in the prelude
Closes #21263

[breaking-change]

If you are using `core::ops::FullRange` you should change to using `core::ops::RangeFull`
2015-01-30 12:00:20 +13:00
Niko Matsakis 07cdb85331 Move return type an associated type of the Fn* traits. Mostly this involves tweaking things in
the compiler that assumed two input types to assume two ouputs; we also have to teach `project.rs`
to project `Output` from the unboxed closure and fn traits.
2015-01-28 05:15:23 -05:00
Alex Crichton 3a07f859b8 Fallout of io => old_io 2015-01-26 16:01:16 -08:00
Eduard Burtescu 9690be5ece Adjust most comments and messages to not use "unboxed". 2015-01-26 04:15:09 +02:00
Eduard Burtescu 11ef6f1349 Remove "unboxed" attribute in code referring to new closures. 2015-01-26 04:15:09 +02:00