Commit Graph

34842 Commits

Author SHA1 Message Date
Niko Matsakis
6fb68f1c81 Introduce machinery for higher-ranked TraitRefs 2014-11-18 12:32:38 -05:00
Niko Matsakis
ecdb741df7 Test resolving of names with for binders. 2014-11-18 12:32:38 -05:00
Niko Matsakis
a298014245 Miscellaneous reformatttings and renamings. 2014-11-18 12:32:38 -05:00
Niko Matsakis
efef81e966 Stop checking the correctness of explicit self twice; instead, just
use simple pattern matching to take a guess at what the method's self
category is in astconv, and check it more thoroughly later.
2014-11-18 12:32:38 -05:00
Niko Matsakis
c8a94c5dfa Convert TyPolyTraitRef to accept arbitary bounds, so that things like
`Box<for<'a> Foo<&'a T> + 'a>` can be accepted. Also cleanup the visitor/fold
in general, exposing more callbacks.
2014-11-18 12:32:37 -05:00
Niko Matsakis
9c808ffee4 Make it an error to use parenthetical notation with
something other than a trait type.
2014-11-18 12:32:37 -05:00
Niko Matsakis
0b90cded14 Introduce some sanity checking assertions in trans, erase regions more aggressively. 2014-11-18 12:27:36 -05:00
Niko Matsakis
4ab0c588ff Switch the code to use De Bruijn indices rather than binder-ids. 2014-11-18 12:27:35 -05:00
Niko Matsakis
23652efffb Pull out the fn-sig sub/lub/glb code and generalize it into a higher_ranked module. Also moves the docs to a more suitable place. 2014-11-18 12:26:30 -05:00
Niko Matsakis
058abcc209 Place parenthetical notation under the unboxed_closure feature-gate.
Consolidate the `unboxed_closure_sugar` and `unboxed_closure` feature gates.
2014-11-18 12:26:04 -05:00
jxv
33f8a82c02 librustrt: check for mips+linux config in stack_overflow 2014-11-18 09:24:11 -08:00
bors
09e2ad13d0 auto merge of #19060 : Gankro/rust/super-cloned, r=aturon
Edit: whoops, didn't mean to hit post.

Anyway, this is something I tried to do when I first implemented cloned, but couldn't figure out. Somewhere between then and the PR actually landing, we got Deref of references, so now this works! 🎉 

Also turns out the test for the functionality was never marked as a #[test]. Oops!

Also added a Cloned iterator adaptor. If this isn't desirable, it can be taken out of the PR (seperate commits).
2014-11-18 17:21:43 +00:00
bors
618bd5d1c5 auto merge of #19070 : nikomatsakis/rust/crates, r=nikomatsakis
Reduces memory usage significantly and opens opportunities for more parallel compilation.

This PR was previously #19002 but I closed it because bors didn't seem to recognize the `r+` annotations there.
2014-11-18 15:26:43 +00:00
Daniel Hofstetter
2aa241d76f Reference: Add missing third dot of range 2014-11-18 15:14:34 +01:00
bors
d7a29d87ba auto merge of #19031 : nodakai/rust/libcore-pow-and-sq, r=bjz
[breaking-change]

Deprecates `core::num::pow` in favor of `Int::pow`.
2014-11-18 13:41:38 +00:00
Alexis Beingessner
4a656062ee add Cloned iterator adaptor 2014-11-18 08:34:44 -05:00
Alexis Beingessner
9702fb9c7b make cloned generic over deref... and have its tests actually run 2014-11-18 08:34:42 -05:00
Niko Matsakis
dc6e414e6f Move trans, back, driver, and back into a new crate, rustc_trans. Reduces memory usage significantly and opens opportunities for more parallel compilation. 2014-11-18 07:32:43 -05:00
bors
516ece6ee4 auto merge of #18645 : nick29581/rust/coercions-1, r=alexcrichton
r?

(I realise this needs a rebase, but I will probably have to chop it up in order to land and I'd like to get r+ first so I can do that quicker)
2014-11-18 10:46:41 +00:00
bors
fcb1523241 auto merge of #18885 : thestinger/rust/writer, r=aturon
The trait has an obvious, sensible implementation directly on vectors so
the MemWriter wrapper is unnecessary. This will halt the trend towards
providing all of the vector methods on MemWriter along with eliminating
the noise caused by conversions between the two types. It also provides
the useful default Writer methods on Vec<u8>.

After the type is removed and code has been migrated, it would make
sense to add a new implementation of MemWriter with seeking support. The
simple use cases can be covered with vectors alone, and ones with the
need for seeks can use a new MemWriter implementation.
2014-11-18 08:36:39 +00:00
Nick Cameron
225de0d60f Windows and OS X fallout 2014-11-18 20:43:38 +13:00
Daniel Micay
85c2c2e38c implement Writer for Vec<u8>
The trait has an obvious, sensible implementation directly on vectors so
the MemWriter wrapper is unnecessary. This will halt the trend towards
providing all of the vector methods on MemWriter along with eliminating
the noise caused by conversions between the two types. It also provides
the useful default Writer methods on Vec<u8>.

After the type is removed and code has been migrated, it would make
sense to add a new implementation of MemWriter with seeking support. The
simple use cases can be covered with vectors alone, and ones with the
need for seeks can use a new MemWriter implementation.
2014-11-18 01:09:46 -05:00
bors
f637f1c5a2 auto merge of #19050 : japaric/rust/moar-dst, r=aturon
r? @aturon 
cc #16918
2014-11-18 03:26:36 +00:00
Murarth
2293a04b49 libsyntax: Add tests for parse_view_item 2014-11-17 20:26:21 -07:00
Murarth
7ef200774f libsyntax: Add parse_view_item method to Parser 2014-11-17 20:26:21 -07:00
NODA, Kai
3fcf2840a4 libcore: add num::Int::pow() and deprecate num::pow().
Signed-off-by: NODA, Kai <nodakai@gmail.com>
2014-11-18 10:42:27 +08:00
bors
9c96a79a74 auto merge of #19049 : jakub-/rust/roll-up, r=alexcrichton
r? @alexcrichton
2014-11-18 01:02:19 +00:00
Jakub Bukaj
330a1afae8 Fix compilation and tests after the roll-up 2014-11-18 01:14:14 +01:00
Jorge Aparicio
d50e80f449 librustc: DSTify ClassList, LlvmRepr and Repr 2014-11-17 18:43:28 -05:00
Jakub Bukaj
9673365b37 rollup merge of #19045: jmesmon/jemalloc-flags-2
- CFG_CFLAGS is only used for jemalloc
- We grew an extra set of flags for jemalloc (CFG_JEMALLOC_CFLAGS) in addition to CFG_CFLAGS
- This kills of CFG_CFLAGS and keeps the more specific and less confusing CFG_JEMALLOC_CFLAGS
- Additionally, pass CFG_JEMALLOC_CFLAGS to jemalloc's configure slightly differently so things work when people use --sysroot in their CFLAGS.
2014-11-18 00:24:10 +01:00
Jakub Bukaj
2f8da7bbd0 rollup merge of #19041: japaric/clone
Closes #19037
cc #16918

r? @aturon
2014-11-18 00:24:08 +01:00
Jakub Bukaj
da5c61d469 rollup merge of #19038: jayelm/fixed-typos
Baby steps here...

Fixed some comments in liblog, libregex, librustc, libstd.
2014-11-18 00:24:08 +01:00
Jakub Bukaj
de05565ba3 rollup merge of #19029: vberger/stability_function_body
Items defined in the body of a function has no visibility outside it, and thus have no reason to inherit its stability.

Closes #17488
2014-11-18 00:24:07 +01:00
Jakub Bukaj
f3759dd2b6 rollup merge of #19026: alfie/doc-fixes
Updated all the adjacent character literals in the BCNF that cannot have an optional space between them
2014-11-18 00:24:06 +01:00
Jakub Bukaj
20241aa408 rollup merge of #19020: Gankro/better-warn
Came up on IRC that this was a bit unhelpful as to what should actually be *done*. I am new to changing compiler messages, please let me know if there's anything else that needs to be done to accomadate this change.

(My build system is still constantly crashing [Is bors contagious?], so this hasn't been formally `check`ed. I figure it's a simple enough change that any consequences [like compile-fail expected messages?] can be eyeballed by someone more experienced.)
2014-11-18 00:24:05 +01:00
Jakub Bukaj
f712a6fd01 rollup merge of #19018: tomjakubowski/fix-issue-19003
Make struct variant syntax more consistent with struct syntax and fix an
assert in middle::typeck.

Fix #19003
2014-11-18 00:24:04 +01:00
Jakub Bukaj
f1fd6b9407 rollup merge of #19016: gkoz/use_util_copy
This code is identical to io::util::copy()
2014-11-18 00:24:03 +01:00
Jakub Bukaj
789777babd rollup merge of #19015: alex/libcore-typos 2014-11-18 00:24:02 +01:00
Jakub Bukaj
7783e80d98 rollup merge of #19013: jakub-/issue-18986
Fixes #18986.
2014-11-18 00:24:01 +01:00
Jakub Bukaj
bcd3a4f42b rollup merge of #19008: alex/collections-typos 2014-11-18 00:24:00 +01:00
Jakub Bukaj
559c2cfe75 rollup merge of #19000: IvanUkhov/doc-link-dylib
Hello,

`dylib` [seems][1] to be no longer an option for the `kind` key of the `link` attribute.

UPDATE: It should be the other way around: It [seems][1] `dylib` has been lost as a possible variant of the `kind` key of the `link` attribute. See the comment below.

Regards,
Ivan

[1]: 8f87538786/src/librustc/metadata/creader.rs (L237)
2014-11-18 00:23:59 +01:00
Jakub Bukaj
6309d6e66e rollup merge of #18951: tbu-/pr_array_cloneshow
Due to not being able to parametrize over array sizes, `Clone` is only
implemented for element types that are `Copy`able.
2014-11-18 00:23:58 +01:00
Jakub Bukaj
76daa0c77c rollup merge of #18921: oli-obk/refactoring/graphviz/id/new/result_instead_of_fail
creating a new Id object requires the format to match a subset of `ID` format defined by the DOT language. When the format did not match, the function called assert. This was not mentioned in the docs or the spec. I made the failure explicit by returning an Result<Id, ()>.
2014-11-18 00:23:57 +01:00
Jakub Bukaj
db4d60afb0 rollup merge of #18911: canndrew/slice_shift_char
`slice_shift_char` splits a `str` into it's leading `char` and the remainder of the `str`. Currently, it returns a `(Option<char>, &str)` such that:

    "bar".slice_shift_char() => (Some('b'), "ar")
    "ar".slice_shift_char()  => (Some('a'), "r")
    "r".slice_shift_char()   => (Some('r'), "")
    "".slice_shift_char()    => (None,      "")

This is a little odd. Either a `str` can be split into both a head and a tail or it cannot. So the return type should be `Option<(char, &str)>`. With the current behaviour, in the case of the empty string, the `str` returned is meaningless - it is always the empty string.

This PR changes `slice_shift_char` so that:

    "bar".slice_shift_char() => Some(('b', "ar"))
    "ar".slice_shift_char()  => Some(('a', "r"))
    "r".slice_shift_char()   => Some(('r', ""))
    "".slice_shift_char()    => None
2014-11-18 00:23:55 +01:00
Jakub Bukaj
7137c2cc83 rollup merge of #18910: aturon/borrow-traits
Following [the collections reform RFC](https://github.com/rust-lang/rfcs/pull/235), this PR:

* Adds a new `borrow` module to libcore. The module contains traits for borrowing data (`BorrowFrom` and `BorrowFromMut`), generalized cloning (`ToOwned`), and a clone-on-write smartpointer (`Cow`).

* Deprecates the `_equiv` family of methods on `HashMap` and `HashSet` by instead generalizing the "normal" methods like `get` and `remove` to use the new `std::borrow` infrastructure.

* Generalizes `TreeMap`, `TreeSet`, `BTreeMap` and `BTreeSet` to use the new `std::borrow` infrastructure for lookups.

[breaking-change]
2014-11-18 00:23:53 +01:00
Jakub Bukaj
fcf9fb6157 rollup merge of #18890: luqmana/tf
This is especially useful for declaring a static with external linkage in an executable. There isn't any way to do that currently since we mark everything in an executable as internal by default.

Also, a quick fix to have the no-compiler-rt target option respected when building staticlibs as well.
2014-11-18 00:23:50 +01:00
Cody P Schafer
600cec1cd8 mk/rt/jemalloc: pass CFG_GCCISH_CFLAGS inside CC instead of passing CFG_CFLAGS in EXTRA_CFLAGS
- CFG_CFLAGS is gone (it was previously only used by jemalloc anyhow).
 - CFG_JEMALLOC_CFLAGS may contain flags needed for the compiler to
   function (produce a binary output).
 - jemalloc's configure runs $(CC) without EXTRA_CFLAGS, and (without
   this change) will fail if any flags are required for CC to work.
2014-11-17 16:41:15 -05:00
Cody P Schafer
61e53c94f2 CFG_CFLAGS is only used for jemalloc, rename all uses to CFG_JEMALLOC_CFLAGS
i386-apple-ios already used CFG_JEMALLOC_CFLAGS, so merge that one
2014-11-17 16:41:09 -05:00
Nick Cameron
d46f7adb53 Regression test 2014-11-18 10:02:27 +13:00
Nick Cameron
85914df05a Disallow coercions from [T, ..n] to &[T]or *[T]
[breaking-change]

Insert an `&` to fix
2014-11-18 10:02:27 +13:00