Commit Graph

40761 Commits

Author SHA1 Message Date
Niko Matsakis 890ed5c468 Fallout in tests 2015-04-01 11:22:39 -04:00
Niko Matsakis c4edd0c8df Make the trait Copy extend Clone. 2015-04-01 11:22:38 -04:00
Niko Matsakis 15b58fedca Fallout in libsyntax/librustc: use newtype'd options for linked lists,
since `Option` is not fundamental and hence the old impls run afoul of
the orphan rules.
2015-04-01 11:21:42 -04:00
Niko Matsakis 30b2d9e764 Fallout in libstd: remove impls now considered to conflict. 2015-04-01 11:21:42 -04:00
Niko Matsakis b0af587b64 Update tests for new coherence rules, and add a swatch of new tests
probing the specifics of `Fundamental`.

Fixes #23086.
Fixes #23516.
2015-04-01 11:21:42 -04:00
Niko Matsakis 35c261aea0 Add `#[fundamental]` annotations into libcore so that `Sized` and the
`Fn` traits are considered fundamental, along with `Box` (though that is
mostly for show; the real type is `~T` in the compiler).
2015-04-01 11:21:42 -04:00
Niko Matsakis 03d3ba7667 Implement the changes to coherence such that we consider a type to be
local only if matches `FUNDAMENTAL(LocalType)`, where `FUNDAMENTAL`
includes `&T` and types marked as fundamental (which includes `Box`).
Also apply these tests to negative reasoning.
2015-04-01 11:21:40 -04:00
Carlos Galarza 48aea41adb Fix sidebar bug
Validate if the description is available in the rawSearchIndex
2015-04-01 10:16:36 -05:00
Corey Farwell 4b6248a806 Simplify `match` branches in iter.rs example 2015-04-01 10:44:52 -04:00
bors d528aa9960 Auto merge of #23109 - nikomatsakis:closure-region-hierarchy, r=pnkfelix
Adjust internal treatment of the region hierarchy around closures. Work towards #3696.

r? @pnkfelix
2015-04-01 14:42:16 +00:00
Niko Matsakis f15813d086 Update comments 2015-04-01 08:40:42 -04:00
Niko Matsakis ea5138eba0 Remove the `Option<>` since when computing LUB since I believe that the
case where `None` was returned should never happen in practice; it
amounts to comparing regions from two unrelated hierarchies. (I was also
not able to make it happen.)
2015-04-01 08:40:42 -04:00
Niko Matsakis a53a22eab9 Implement the new region hierarchy rules, in which regions from distinct
hierarchies are judged based on the lexical relationship of their
respective fn bodies.
2015-04-01 08:40:42 -04:00
Niko Matsakis bc959fdb28 Add a meta-hierarchy of trees -- in future, each fn body will inhabit
its own disjoint region tree, and the new table encodes the lexical
relationships between those trees.
2015-04-01 08:40:42 -04:00
bors 8943653624 Auto merge of #23936 - pnkfelix:rollup, r=pnkfelix
This is an attempt to fix #23922
2015-04-01 10:02:37 +00:00
Felix S. Klock II 2b71aed003 Update android tests to reflect API switch from `os::env` to `env::vars`. 2015-04-01 11:59:51 +02:00
Alex Crichton 8dff0ac143 Test fixes and rebase conflicts 2015-04-01 00:36:26 -07:00
Chris Wong 7c3efcc5bb Don't reborrow the target of a `write!()`
This means passing in e.g. a `Vec<u8>` or `String` will work as
intended, rather than deref-ing to `&mut [u8]` or `&mut str`.

[breaking-change]

Closes #23768
2015-04-01 19:48:49 +13:00
kgv 343c110e76 Fix rust book error-handling.md for new std::io.
Fix example and some text for: `read_line` takes `&mut String` and return `Result` instead `IoResult`.
2015-04-01 09:37:19 +03:00
Steve Klabnik 8ded156265 Add examples + documentation for std::path 2015-04-01 01:11:38 -04:00
Dzmitry Malyshau 39aa668a01 Added Arc::try_unique 2015-03-31 23:44:23 -04:00
Nick Cameron 0dd0925f57 Tidying up and reformatting 2015-04-01 14:07:19 +13:00
Alex Crichton 6ebb6e60b9 rollup merge of #23923: steveklabnik/gh23688
Fixes #23688

r? @alexcrichton
2015-03-31 18:06:42 -07:00
Alex Crichton 1d5ef755de rollup merge of #23921: aturon/issue-17746
Closes #17746
2015-03-31 18:06:41 -07:00
Alex Crichton 4f643d79fc rollup merge of #23863: pnkfelix/arith-oflo-const-eval
const_eval : add overflow-checking for {`+`, `-`, `*`, `/`, `<<`, `>>`}.

One tricky detail here: There is some duplication of labor between `rustc::middle::const_eval` and `rustc_trans::trans::consts`. It might be good to explore ways to try to factor out the common structure to the two passes (by abstracting over the particular value-representation used in the compile-time interpreter).

----

Update: Rebased atop #23841

Fix #22531

Fix #23030

Fix #23221

Fix #23235
2015-03-31 18:06:35 -07:00
Felix S. Klock II 2a9de1d989 dealing with fallout to the tests, in particular diffs between 32- vs 64-bit targets.
See also #23926.
2015-04-01 02:56:08 +02:00
Felix S. Klock II 2243a2cced Unify handling of checking repeat-count validity. 2015-04-01 02:56:08 +02:00
Felix S. Klock II 1973f7ebe5 Fixes to compile-fail error messages post-rebase. 2015-04-01 02:56:08 +02:00
Felix S. Klock II 1f5e45b769 Include feature `core` to get access to `wrapping_add`. 2015-04-01 02:56:08 +02:00
Felix S. Klock II 41b3c86e9a Test cases for checking arithmetic overflow during const eval. 2015-04-01 02:56:07 +02:00
Felix S. Klock II 8d54ea3ec9 Fallout from changes for overflow-checking during constant evaluation. 2015-04-01 02:56:07 +02:00
Felix S. Klock II 6808e414c7 rustc_trans::trans::consts add overflow checking 2015-04-01 02:56:07 +02:00
Felix S. Klock II b02f7d2fac rustc::middle::const_eval : add overflow-checking for {+, -, *}.
The overflow-checking attempts to accommodate early evaluation where
we do not have type information yet.

Also, add fixme note about something that has been bothering me.
2015-04-01 02:56:07 +02:00
Felix S. Klock II 2e93e386fd rust_llvm: Add way to reflectively ask if a ValueRef is a known constant int.
Add option-returning variants to `const_to_int`/`const_to_uint` that
never assert fail. (These will be used for overflow checking from
rustc_trans::trans::consts.)
2015-04-01 02:56:07 +02:00
Felix S. Klock II 7875dae83f ty.rs improve error feedback when const-eval errs during repeat count eval. 2015-04-01 02:56:07 +02:00
Felix S. Klock II 2f7658a528 Refactored ty::ctxt so node_types mutations must go through ty methods. 2015-04-01 02:56:07 +02:00
Felix S. Klock II 60289ac7e7 Added overflowing_{div,rem,shl,shr} method implementations to WrappingOps. 2015-04-01 02:56:07 +02:00
Felix S. Klock II 792f6aa425 Fix #23890: const-eval `_ as usize`, `_ as isize` must dispatch to target type. 2015-04-01 02:55:13 +02:00
Felix S. Klock II 0b57df77b3 fix post rebase. 2015-04-01 02:55:13 +02:00
Felix S. Klock II 36b6d0ecdc Added tests for discriminant overflows. 2015-04-01 02:55:13 +02:00
Felix S. Klock II 4e04d57efa Added type-specific overflow checks when computing enum discriminant values.
Moved such overflow checking into one place (in `rustc::middle::ty`,
since it needs to be run on-demand during `const_eval` in some
scenarios), and revised `rustc_typeck` accordingly.

(Note that we only check for overflow if program did not provide a
discriminant value explicitly.)

Fix #23030

Fix #23221

Fix #23235
2015-04-01 02:55:13 +02:00
Alex Crichton 72f59732d7 Test fixes and rebase conflicts, round 3 2015-03-31 17:39:24 -07:00
Steve Klabnik bfc2f5de85 Improvements to PhantomData<T>'s docs 👻
Fixes #22914
2015-03-31 20:18:32 -04:00
Steve Klabnik 371ba00da2 Add description of + for multiple trait bounds
Fixes #23688
2015-03-31 19:45:09 -04:00
Nick Cameron a5479622ea Pretty print ids for assoc items 2015-04-01 12:40:54 +13:00
Aaron Turon 55e531dc26 Add test for #17746
Closes #17746
2015-03-31 16:22:23 -07:00
Alex Crichton 50b3ecf3bc rollup merge of #23919: alexcrichton/stabilize-io-error
Conflicts:
	src/libstd/fs/tempdir.rs
	src/libstd/io/error.rs
2015-03-31 16:18:55 -07:00
Alex Crichton 85e997adff rollup merge of #23899: steveklabnik/gh23851
Conflicts:
	src/libcore/iter.rs
2015-03-31 16:18:27 -07:00
Alex Crichton ac77392f8a std: Stabilize last bits of io::Error
This commit stabilizes a few remaining bits of the `io::Error` type:

* The `Error::new` method is now stable. The last `detail` parameter was removed
  and the second `desc` parameter was generalized to `E: Into<Box<Error>>` to
  allow creating an I/O error from any form of error. Currently there is no form
  of downcasting, but this will be added in time.

* An implementation of `From<&str> for Box<Error>` was added to liballoc to
  allow construction of errors from raw strings.

* The `Error::raw_os_error` method was stabilized as-is.

* Trait impls for `Clone`, `Eq`, and `PartialEq` were removed from `Error` as it
  is not possible to use them with trait objects.

This is a breaking change due to the modification of the `new` method as well as
the removal of the trait implementations for the `Error` type.

[breaking-change]
2015-03-31 16:12:48 -07:00
Alex Crichton 66598656a5 rollup merge of #23920: steveklabnik/gh23881
Fixes #23881
2015-03-31 16:12:38 -07:00