Commit Graph

21313 Commits

Author SHA1 Message Date
Ben Blum
5796e9e49c Add tests for self type using builtin kinds. (#7083) 2013-08-20 15:56:34 -04:00
Ben Blum
cdbdfe88a5 Allow the Self type to benefit from builtin-kinds-as-supertraits (#7083). 2013-08-20 15:56:34 -04:00
Ben Blum
4fd404f2ca Fixup style of test cases for #7083 2013-08-20 13:28:51 -04:00
Ben Blum
95089d3793 Add tests for super-builtin-kind capabilities (#7083) 2013-08-20 13:28:50 -04:00
Ben Blum
3c3bfb4c3c Add more capabilities to typarams bounded by traits with super-builtin-kinds. Close #7083. 2013-08-20 13:28:50 -04:00
Ben Blum
4ca2e55adb Add tests for #7083. 2013-08-20 13:28:50 -04:00
Ben Blum
69322d9410 Allow traits to use builtin kinds as supertraits for #7083. 2013-08-20 13:28:50 -04:00
Ben Blum
369f7fa169 Prevent Send, Freeze, and Sized from being manually implemented. Close #8517. 2013-08-20 13:28:50 -04:00
bors
7f26812895 auto merge of #8463 : brson/rust/borrowck, r=nmatsakis,nikomatsakis
r? @nikomatsakis
2013-08-20 06:41:58 -07:00
bors
5e9dff90c9 auto merge of #8638 : pnkfelix/rust/fsk-visitor-vpar-defaults-step5, r=huonw
"non-mechanical" : there was lots more hacking than the other more-mechanical ports Felix did.

r? @huonw.  (Or @nikomatsakis ; I just want someone to sanity-check this.  Its not a thing of beauty.)

Followup to #8623.  (See #8527, which was step 1 of 5, for the full outline.  Part of #7081.)

Notes on the change follow.

There's also a strange pattern that I hacked in to accommodate the
Outer/Inner traversal structure of the existing code (which was
previously encoding this by untying the Y-combinator style knot of the
vtable, and then retying it but superimposing new methods that "stop
at items").  I hope either I or someone else can come back in the
future and replace this ugliness with something more natural.

Added boilerplate macro; all the OuterLint definitions are the same
(but must be abstracted over implementing struct, thus the macro).

Revised lint.rs use declarations to make ast references explicit.
Also removed unused imports.
2013-08-20 03:52:01 -07:00
Felix S. Klock II
9b82d50f6d add line break post dbaupp review. 2013-08-20 12:25:34 +02:00
Felix S. Klock II
213d89b6da remove trailing whitespace to placate make tidy. 2013-08-20 11:09:47 +02:00
Felix S. Klock II
c709c0a3ab Port lint.rs from oldvisit to <V:Visit> trait API. Less mechanical port.
That is, there was lots more hacking than the other more-mechanical
ports Felix did.

There's also a strange pattern that I hacked in to accommodate the
Outer/Inner traversal structure of the existing code (which was
previously encoding this by untying the Y-combinator style knot of the
vtable, and then retying it but superimposing new methods that "stop
at items").  I hope either I or someone else can come back in the
future and replace this ugliness with something more natural.

Added boilerplate macro; all the OuterLint definitions are the same
(but must be abstracted over implementing struct, thus the macro).

Revised lint.rs use declarations to make ast references explicit.
Also removed unused imports.
2013-08-20 10:45:40 +02:00
bors
c099242a1a auto merge of #8548 : catamorphism/rust/unignore-rustpkg-tests, r=catamorphism
r? @brson This necessitated some cleanup to how we parse library filenames
when searching for libraries, since rustpkg may now create filenames
that contain '-' characters. Also cleaned up how rustpkg passes the
sysroot to a custom build script.
2013-08-19 23:41:55 -07:00
Brian Anderson
0f9ab93642 std: Restore dynamic borrow tracking 2013-08-19 20:39:39 -07:00
bors
5034792c88 auto merge of #8584 : thestinger/rust/jemalloc, r=graydon
This reverts commit 371a316ec9.

Closes #7217
2013-08-19 20:21:58 -07:00
Daniel Micay
ef436637ea jemalloc: use $(AR), not ar 2013-08-19 20:53:02 -04:00
Graydon Hoare
517e611271 regenerate configure 2013-08-19 20:48:11 -04:00
bors
2ec9b8ce2f auto merge of #8500 : graydon/rust/2013-08-13-self-rollup, r=thestinger
close #8424 r=brson
close #8173 r=brson
close #8209 r=strcat
2013-08-19 17:42:35 -07:00
Graydon Hoare
2c7164595f rt: make jemalloc header conform to android signature. 2013-08-19 16:09:46 -07:00
Tim Chevalier
d9293d1d87 rustpkg: Un-ignore most of the remaining tests
This necessitated some cleanup to how we parse library filenames
when searching for libraries, since rustpkg may now create filenames
that contain '-' characters. Also cleaned up how rustpkg passes the
sysroot to a custom build script.
2013-08-19 15:27:21 -07:00
Graydon Hoare
610b2b58ec compiletest: do not run tests in sub-threads if on valgrind. 2013-08-19 15:09:20 -07:00
Graydon Hoare
19f4ae1415 Try to fix mac valgrind bot by disabling thread-heavy activities. 2013-08-19 15:09:20 -07:00
Graydon Hoare
29a449aae3 Add tests for cross-crate condition handling. Close #5446. 2013-08-19 15:09:20 -07:00
Graydon Hoare
eaa378033c test: add testcase, close #4929 which was already fixed. 2013-08-19 15:09:20 -07:00
Graydon Hoare
8c78311e81 test: un-xfail now working run-pass/foreign-struct.rs, close #2334. 2013-08-19 15:09:19 -07:00
bors
e6e678fac7 auto merge of #8623 : pnkfelix/rust/fsk-visitor-vpar-defaults-step4, r=nmatsakis
Follow up to #8619 (step 3 of 5).

(See #8527, which was step 1 of 5, for the full outline.)

Part of #7081.
2013-08-19 15:02:07 -07:00
bors
4bdceb9c00 auto merge of #8459 : thestinger/rust/checked, r=graydon 2013-08-19 12:42:48 -07:00
bors
2246d56e71 auto merge of #8619 : pnkfelix/rust/fsk-visitor-vpar-defaults-step3, r=nmatsakis
Follow up to #8539 (step 2 of 5).

(See  #8527, which was step 1 of 5, for the full outline.)

Part of #7081.
2013-08-19 09:12:03 -07:00
bors
d597f54fc2 auto merge of #8539 : pnkfelix/rust/fsk-visitor-vpar-defaults-step2, r=graydon,nikomatsakis
r? @nikomatsakis

Follow up to #8527 (which was step 1 of 5).  See that for overall description 

Part of #7081
2013-08-19 06:52:03 -07:00
bors
81a78161b5 auto merge of #8535 : nikomatsakis/rust/issue-3678-wrappers-be-gone-2, r=graydon
Long-standing branch to remove foreign function wrappers altogether. Calls to C functions are done "in place" with no stack manipulation; the scheme relies entirely on the correct use of `#[fixed_stack_segment]` to guarantee adequate stack space. A linter is added to detect when `#[fixed_stack_segment]` annotations are missing. An `externfn!` macro is added to make it easier to declare foreign fns and wrappers in one go: this macro may need some refinement, though, for example it might be good to be able to declare a group of foreign fns. I leave that for future work (hopefully somebody else's work :) ).

Fixes #3678.
2013-08-19 04:32:04 -07:00
Niko Matsakis
0479d946c8 Add externfn macro and correctly label fixed_stack_segments 2013-08-19 07:13:15 -04:00
Niko Matsakis
303f650ecf Issue #3678: Remove wrappers and call foreign functions directly 2013-08-19 07:13:15 -04:00
bors
3e4f40ec5a auto merge of #8564 : alexcrichton/rust/ifmt+++, r=graydon
See discussion in #8489, but this selects option 3 by adding a `Default` trait to be implemented by various basic types.

Once this makes it into a snapshot I think it's about time to start overhauling all current use-cases of `fmt!` to move towards `ifmt!`. The goal is to replace `%X` with `{}` in 90% of situations, and this commit should enable that.
2013-08-19 01:42:05 -07:00
bors
c178b52fe5 auto merge of #8556 : sfackler/rust/quote, r=alexcrichton
They previously required one called "ext_cx" to be in scope.

Fixes part of #7727
2013-08-18 21:51:58 -07:00
bors
557ff049f0 auto merge of #8565 : bblum/rust/select-bugfix, r=brson
@brson grilled me about how this bugfix worked the first time around, and it occurred to me that it didn't in the case where the task is unwinding. Now it will.
2013-08-18 19:32:36 -07:00
bors
8fff3f40f2 auto merge of #8561 : kballard/rust/do-block-internal-err-msg, r=thestinger
When using a `do` block to call an internal iterator, if you forgot to
return a value from the body, it would tell you

    error: Do-block body must return bool, but returns () here. Perhaps
    you meant to write a `for`-loop?

This advice no longer applies as `for` loops are now for external
iterators. Delete this message outright and let it use the default error
message

    error: mismatched types: expected `bool` but found `()`

r? @thestinger
2013-08-18 17:12:02 -07:00
bors
b26e11db86 auto merge of #8560 : kballard/rust/reserve-yield, r=pcwalton
Rename task::yield() to task::deschedule().

Fixes #8494.
2013-08-18 15:02:04 -07:00
bors
e185b049af auto merge of #8545 : blake2-ppc/rust/iterbytes, r=alexcrichton
Address issue #5257, for example these values all had the same hash value:

	("aaa", "bbb", "ccc")
	("aaab", "bb", "ccc")
	("aaabbb", "", "ccc")

IterBytes for &[A] now includes the length, before calling iter_bytes on
each element.

IterBytes for &str is now terminated by a byte that does not appear in
UTF-8. This way only one more byte is processed when hashing strings.
2013-08-18 12:41:59 -07:00
Steven Fackler
8b80922a4c quote_*! macros take an ExtCtx
They previously required one called "ext_cx" to be in scope.

Fixes part of #7727
2013-08-18 13:14:15 -04:00
bors
88bd2155d7 auto merge of #8558 : kballard/rust/xorshift-seed, r=cmr
Fixes #8359.
2013-08-18 10:01:55 -07:00
blake2-ppc
bfa1331cd7 std:#️⃣ Add testcase for colliding hashes of tuples
Add a testcase that verifies that (s, t) and (u, v) don't collide even if
s + t == u + v (concatenation).
2013-08-18 18:39:47 +02:00
blake2-ppc
73fdacbac9 std::to_bytes: Implement IterBytes on 1- to 8-tuples 2013-08-18 18:39:47 +02:00
blake2-ppc
6066118b29 std::to_bytes: Delimit sequences &[A] and ~str when hashing
Address issue #5257, for example these values all had the same hash value:

	("aaa", "bbb", "ccc")
	("aaab", "bb", "ccc")
	("aaabbb", "", "ccc")

IterBytes for &[A] now includes the length, before calling iter_bytes on
each element.

IterBytes for &str is now terminated by a byte that does not appear in
UTF-8. This way only one more byte is processed when hashing strings.
2013-08-18 18:39:47 +02:00
bors
0a238288d3 auto merge of #8555 : chris-morgan/rust/time-clone, r=huonw
I need `Clone` for `Tm` for my latest work on [rust-http](https://github.com/chris-morgan/rust-http) (static typing for headers, and headers like `Date` are a time), so here it is.

@huonw recommended deriving DeepClone while I was at it.

I also had to implement `DeepClone` for `~str` to get a derived implementation of `DeepClone` for `Tm`; I did `@str` while I was at it, for consistency.
2013-08-18 07:21:58 -07:00
bors
3bc6858428 auto merge of #8551 : huonw/rust/speling, r=alexcrichton
(This doesn't add/remove `u`s or change `ize` to `ise`, or anything like that.)
2013-08-18 05:11:58 -07:00
bors
600901152c auto merge of #8550 : kballard/rust/token-start-err-msg, r=catamorphism
The span was fixed at some point to point to the correct character, but
the error message is still bad. Update it to emit the actual character
in question (potentially escaped).

Fixes #3747.
2013-08-18 02:51:59 -07:00
bors
758c5e8236 auto merge of #8547 : kballard/rust/trait-parse-err-msg, r=alexcrichton
When parsing a trait function, the function must end with either `;` or
`{` (signifying a default implementation). The error message incorrectly
stated that it must be `;` or `}`.

Fixes #6610.
2013-08-17 22:52:00 -07:00
bors
6a88415ed8 auto merge of #8544 : dim-an/rust/fix-match-pipes, r=pcwalton
Pointers to bound variables shouldn't be stored before checking pattern,
otherwise piped patterns can conflict with each other (issue #6338).

Closes #6338.
2013-08-17 20:12:02 -07:00
Daniel Micay
0dceabda7f Revert "Turn off jemalloc"
This reverts commit 371a316ec9.

Closes #7217
2013-08-17 19:54:23 -04:00