Jorge Aparicio
17bc7d8d5b
cleanup: replace as[_mut]_slice()
calls with deref coercions
2015-02-05 13:45:01 -05:00
Niko Matsakis
498595a3dc
Teach project to unify the return type even if a precise match is not
...
possible. There is some amount of duplication as a result (similar to
select) -- I am not happy about this but not sure how to fix it
without deeper rewrites.
2015-02-03 11:55:45 -05:00
Niko Matsakis
c9e1c445db
Allow closure arguments types to unify even if we can't fully resolve
...
a trait obligation. Partial fix for #16440 -- closure return types are
not handled yet.
2015-02-03 11:55:45 -05:00
Jorge Aparicio
3484706c38
remove unused mut qualifiers
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
Niko Matsakis
bc41cc0ec9
Make unboxed_closure_kind
return Option
to allow for the possibility that its value is not yet known.
2015-02-01 06:13:05 -05:00
Jorge Aparicio
788181d405
s/Show/Debug/g
2015-01-29 07:49:02 -05:00
Jorge Aparicio
efc97a51ff
convert remaining range(a, b)
to a..b
2015-01-29 07:49:01 -05:00
Niko Matsakis
006f3eacae
Fix a latent bug in trait dispatch where we sometimes counted associated types
...
when constructing the vtable-index. Not good.
2015-01-28 05:15:23 -05: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
Niko Matsakis
c61d7889b4
Add the notion of normalizing a parameter environment and ensure that
...
all parameter environments are normalized. Correspondingly, stop
normalizing predicates we extract out of the environment. Fixes #21664 .
2015-01-28 05:13:53 -05:00
Niko Matsakis
c73a1d0a2c
Change list of predicates in ParameterEnvironment to a Vec
.
2015-01-28 05:13:53 -05:00
bors
92ff8ea528
Auto merge of #21523 - nikomatsakis:issue-21245-japaric-ti-failure, r=eddyb
...
This also includes some miscellaneous cleanup. This is kind of a band-aid but it fixes the problems @japaric was encountering.
r? @eddyb
2015-01-27 23:08:13 +00: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
Niko Matsakis
984dc03df6
Do not cache ambiguous results unless there is at least some inference by-product within.
...
Fixes #19499 .
2015-01-22 15:37:03 -05:00
Jorge Aparicio
ed56c15ceb
remove NoSendItem
and NoSyncItem
2015-01-21 00:45:35 -05:00
Flavio Percoco
aa642b3486
addressed comments
2015-01-16 08:18:56 +01:00
Flavio Percoco
9eec782774
Check for negative impls for Send
and Sync
2015-01-16 08:18:56 +01:00
Flavio Percoco
5aab863ba2
Don't assemble bound impls if candidate's ambiguous
2015-01-16 08:18:56 +01:00
bors
4fc9b41238
auto merge of #20955 : nikomatsakis/rust/assoc-types-struct-field-access, r=nick29581
...
Normalize the types of fields we project out of a struct or tuple struct.
Fixes #20954 .
r? @nick29581
2015-01-13 05:01:34 +00:00
Niko Matsakis
47424cda1e
Normalize bounds that we extract from where clauses. Fixes #20765 .
2015-01-12 09:23:50 -05:00
Niko Matsakis
2b8678cf5d
Give where clauses priority over builtin rules. Fixes #20959 .
2015-01-11 14:52:37 -05:00
Alex Crichton
483fca9fa5
rollup merge of #20757 : nikomatsakis/issue-20624-assoc-types-coherence
2015-01-08 09:32:06 -08:00
Niko Matsakis
bb0c8ef373
Normalize types in impls, add test for coherence failure.
...
Fixes #20624 .
2015-01-08 11:16:06 -05:00
Flavio Percoco
0d0869ad73
Remove the deprecated opt_out_copy feature
2015-01-08 13:39:14 +01:00
Alex Crichton
bcebec5084
rollup merge of #20706 : nikomatsakis/assoc-types-projections-in-structs-issue-20470
...
Conflicts:
src/librustc_trans/trans/expr.rs
2015-01-07 17:35:00 -08:00
Alex Crichton
51357e04be
rollup merge of #20665 : nikomatsakis/assoc-types-method-dispatch-projection
...
Conflicts:
src/librustc/middle/ty.rs
2015-01-07 17:33:41 -08:00
Niko Matsakis
9e4e8823c7
Use ty::type_is_sized() so that we handle projection types properly.
2015-01-07 20:26:19 -05:00
Jorge Aparicio
517f1cc63c
use slicing sugar
2015-01-07 17:35:56 -05:00
bors
c0216c8945
Merge pull request #20674 from jbcrail/fix-misspelled-comments
...
Fix misspelled comments.
Reviewed-by: steveklabnik
2015-01-07 15:35:30 +00:00
Joseph Crail
e3b7fedc20
Fix misspelled comments.
...
I cleaned up comments prior to the 1.0 alpha release.
2015-01-06 20:53:18 -05:00
Alex Crichton
5c3ddcb15d
rollup merge of #20481 : seanmonstar/fmt-show-string
...
Conflicts:
src/compiletest/runtest.rs
src/libcore/fmt/mod.rs
src/libfmt_macros/lib.rs
src/libregex/parse.rs
src/librustc/middle/cfg/construct.rs
src/librustc/middle/dataflow.rs
src/librustc/middle/infer/higher_ranked/mod.rs
src/librustc/middle/ty.rs
src/librustc_back/archive.rs
src/librustc_borrowck/borrowck/fragments.rs
src/librustc_borrowck/borrowck/gather_loans/mod.rs
src/librustc_resolve/lib.rs
src/librustc_trans/back/link.rs
src/librustc_trans/save/mod.rs
src/librustc_trans/trans/base.rs
src/librustc_trans/trans/callee.rs
src/librustc_trans/trans/common.rs
src/librustc_trans/trans/consts.rs
src/librustc_trans/trans/controlflow.rs
src/librustc_trans/trans/debuginfo.rs
src/librustc_trans/trans/expr.rs
src/librustc_trans/trans/monomorphize.rs
src/librustc_typeck/astconv.rs
src/librustc_typeck/check/method/mod.rs
src/librustc_typeck/check/mod.rs
src/librustc_typeck/check/regionck.rs
src/librustc_typeck/collect.rs
src/libsyntax/ext/format.rs
src/libsyntax/ext/source_util.rs
src/libsyntax/ext/tt/transcribe.rs
src/libsyntax/parse/mod.rs
src/libsyntax/parse/token.rs
src/test/run-pass/issue-8898.rs
2015-01-06 15:22:24 -08:00
Sean McArthur
44440e5c18
core: split into fmt::Show and fmt::String
...
fmt::Show is for debugging, and can and should be implemented for
all public types. This trait is used with `{:?}` syntax. There still
exists #[derive(Show)].
fmt::String is for types that faithfully be represented as a String.
Because of this, there is no way to derive fmt::String, all
implementations must be purposeful. It is used by the default format
syntax, `{}`.
This will break most instances of `{}`, since that now requires the type
to impl fmt::String. In most cases, replacing `{}` with `{:?}` is the
correct fix. Types that were being printed specifically for users should
receive a fmt::String implementation to fix this.
Part of #20013
[breaking-change]
2015-01-06 14:49:42 -08:00
Niko Matsakis
279de38cc8
Support methods invoked on projection types based on the bounds found in the trait.
2015-01-06 17:28:37 -05:00
Nick Cameron
f7ff37e4c5
Replace full slice notation with index calls
2015-01-07 10:46:33 +13:00
Jorge Aparicio
5f7f2c9a05
remove ty_closure
2015-01-05 17:22:15 -05:00
Jorge Aparicio
351409a622
sed -i -s 's/#\[deriving(/#\[derive(/g' **/*.rs
2015-01-03 22:54:18 -05:00
Jorge Aparicio
56dcbd17fd
sed -i -s 's/\bmod,/self,/g' **/*.rs
2015-01-03 22:42:21 -05:00
bors
c6c786671d
auto merge of #20490 : japaric/rust/assoc-types, r=aturon
...
closes #20486
closes #20474
closes #20441
[breaking-change]
The `Index[Mut]` traits now have one less input parameter, as the return type of the indexing operation is an associated type. This breaks all existing implementations.
---
binop traits (`Add`, `Sub`, etc) now have an associated type for their return type. Also, the RHS input parameter now defaults to `Self` (except for the `Shl` and `Shr` traits). For example, the `Add` trait now looks like this:
``` rust
trait Add<Rhs=Self> {
type Output;
fn add(self, Rhs) -> Self::Output;
}
```
The `Neg` and `Not` traits now also have an associated type for their return type.
This breaks all existing implementations of these traits.
---
Affected traits:
- `Iterator { type Item }`
- `IteratorExt` no input/output types, uses `<Self as Iterator>::Item` in its methods
- `DoubleEndedIterator` no input/output types, uses `<Self as Iterator>::Item` in its methods
- `DoubleEndedIteratorExt` no input/output types, uses `<Self as Iterator>::Item` in its methods
- `RandomAccessIterator` no input/output types
- `ExactSizeIterator` no input/output types, uses `<Self as Iterator>::Item` in its methods
This breaks all the implementations of these traits.
2015-01-04 00:50:59 +00:00
Jorge Aparicio
62ee3f1622
rustc: fix fallout
2015-01-03 09:34:05 -05:00
Niko Matsakis
7474be0660
Make ty::ParameterEnvironment
, not ty::ctxt
, implement Typer
and
...
`UnboxedClosureTyper`. This requires adding a `tcx` field to
`ParameterEnvironment` but generally simplifies everything since we
only need to pass along an `UnboxedClosureTyper` or `Typer`.
2015-01-03 07:01:21 -05:00
Alex Crichton
340f3fd7a9
rollup merge of #20410 : japaric/assoc-types
...
Conflicts:
src/liballoc/lib.rs
src/libcollections/lib.rs
src/libcollections/slice.rs
src/libcore/ops.rs
src/libcore/prelude.rs
src/libcore/ptr.rs
src/librustc/middle/traits/project.rs
src/libstd/c_str.rs
src/libstd/io/mem.rs
src/libstd/io/mod.rs
src/libstd/lib.rs
src/libstd/path/posix.rs
src/libstd/path/windows.rs
src/libstd/prelude.rs
src/libstd/rt/exclusive.rs
src/libsyntax/lib.rs
src/test/compile-fail/issue-18566.rs
src/test/run-pass/deref-mut-on-ref.rs
src/test/run-pass/deref-on-ref.rs
src/test/run-pass/dst-deref-mut.rs
src/test/run-pass/dst-deref.rs
src/test/run-pass/fixup-deref-mut.rs
src/test/run-pass/issue-13264.rs
src/test/run-pass/overloaded-autoderef-indexing.rs
2015-01-02 13:51:50 -08:00
Niko Matsakis
fc7d8faba8
Handle recursive obligations without exiting the inference probe
...
Conflicts:
src/librustc/middle/traits/select.rs
2015-01-02 14:22:00 -05:00
Niko Matsakis
45468f37c8
Temporarily do not evaluate subobligations.
2015-01-02 14:21:49 -05:00
Niko Matsakis
ea1ad792f9
Evaluate projection predicates during trait selection. Fixes #20296 .
2015-01-02 14:21:37 -05:00
Niko Matsakis
704ed4c7d0
Address nits.
2015-01-02 12:09:38 -05:00
Niko Matsakis
dabd7507b6
Ensure that, for every trait Foo
, the predicate Foo : Foo
holds.
2015-01-02 12:09:38 -05:00
Niko Matsakis
1e3214ba33
Normalize the associated types in closure and closure upvar types.
2015-01-01 18:48:26 -05:00
Niko Matsakis
78f848cde5
Refactor the Typer interface to separate out UnboxedClosureTyper methods, which are
...
the only things that trait selection needs.
2015-01-01 18:48:26 -05:00