Patrick Walton
4ead38bae7
libsyntax: Implement the impl Trait for Type syntax
2013-01-29 11:48:21 -08:00
Tim Chevalier
1b021d5868
Long line
2013-01-29 11:44:46 -08:00
Patrick Walton
226cd68f13
librustc: De-implicit-self the visitor. r=graydon
2013-01-29 10:43:12 -08:00
Patrick Walton
6ce74460e6
librustc: Disallow trait bounds in types, enumerations, and structure definitions. r=tjc
2013-01-29 10:42:58 -08:00
Patrick Walton
eb4d39e1fe
libstd: Remove "dual impls" from the language and enforce coherence rules. r=brson
...
"Dual impls" are impls that are both type implementations and trait
implementations. They can lead to ambiguity and so this patch removes them
from the language.
This also enforces coherence rules. Without this patch, records can implement
traits not defined in the current crate. This patch fixes this, and updates
all of rustc to adhere to the new enforcement. Most of this patch is fixing
rustc to obey the coherence rules, which involves converting a bunch of records
to structs.
2013-01-29 10:42:45 -08:00
Tim Chevalier
93043baab4
testsuite: Add #[allow(structural_records)] to pipes tests
...
These will require a snapshot.
2013-01-28 19:41:56 -08:00
Daniel Micay
8eaf0737b7
get rid of LinearMap's find_copy method
2013-01-28 16:06:09 -05:00
Niko Matsakis
2b67d88809
Rewrite the coercion code to be more readable, more sound, and to reborrow when
...
needed.
Regarding soundness: there was a subtle bug in how it was done before; see the
compile-fail test for an example.
Regarding reborrowing: reborrowing allows mut and const
slices/borrowed-pointers to be used with pure fns that expect immutable data.
r=brson
2013-01-28 10:01:59 -08:00
Niko Matsakis
2e10ea58c3
Integrate vec patterns into borrow checker.
...
The tail portion of the pattern effectively borrows a vector,
but the borrow checker knew nothing about this.
r=catamorphism
2013-01-28 10:00:32 -08:00
Niko Matsakis
d4fd30c6ac
Link the lifetimes of regions resulting from borrows of the
...
contents of other borrowed pointers to the lifetimes of the
borrowed value. Fixes #3148 .
r=catamorphism
2013-01-28 10:00:23 -08:00
Brian Anderson
83ca034d2e
Merge remote-tracking branch 'brson/nocommupstream2'
2013-01-26 14:57:58 -08:00
Tim Chevalier
6d4907a742
testsuite: Eliminate uses of structural records from most run-pass tests
...
Except the pipes tests (that needs a snapshot)
2013-01-26 11:35:17 -08:00
Tyler Bindon
5a69cd75fb
Fix Option camel case in commented portion of test
2013-01-25 19:42:24 -07:00
Tyler Bindon
edc94f5c23
Fix Option camel case in xfailed/ignored tests
2013-01-25 19:42:23 -07:00
Brian Anderson
1ef83945c1
Merge remote-tracking branch 'brson/nocommupstream'
...
Conflicts:
src/libcore/private.rs
src/libcore/task/mod.rs
src/libcore/task/spawn.rs
src/libstd/net_tcp.rs
src/libstd/uv_global_loop.rs
src/libstd/uv_iotask.rs
2013-01-25 18:06:30 -08:00
Tim Chevalier
d753ad4ee4
testsuite: Fix Windows breakage harder in x86stdcall2
2013-01-25 16:58:04 -08:00
Graydon Hoare
d1f771ca34
test: fix x86stdcall test, r=burningtree.
2013-01-25 15:18:45 -08:00
Daniel Micay
e4337a9def
remove remaining is_not_empty functions/methods
2013-01-24 23:24:57 -05:00
Erick Tryzelaar
5085eb3c28
Convert pipes::Buffer into a struct
2013-01-24 16:24:31 -08:00
Erick Tryzelaar
6e2ae2c2c1
remove support for records from auto_encode
2013-01-24 16:24:30 -08:00
Patrick Walton
ad25e208ee
librustc: Allow &mut to be loaned; allow self to be loaned; make &mut loanable to &. r=nmatsakis
2013-01-24 13:52:22 -08:00
Patrick Walton
bbbb80559c
librustc: Disallow &mut loans from overlapping with any other loans
2013-01-24 13:52:21 -08:00
Patrick Walton
163b97b7bb
librustc: Make C functions unsafe
2013-01-24 13:52:21 -08:00
Tim Chevalier
a202dcccca
Merge pull request #4594 from thestinger/map
...
more work on the map trait and TreeMap/LinearMap
2013-01-23 20:10:47 -08:00
Daniel Micay
bba5520d62
fix tests
2013-01-23 21:46:33 -05:00
Brian Anderson
b9608fe423
std: Convert uv_global_loop to use pipes
2013-01-23 17:35:34 -08:00
Patrick Walton
d9c842847d
libsyntax: Fix parsing of pub unsafe fn inside extern blocks. rs=bugfix
2013-01-23 15:14:12 -08:00
Patrick Walton
54b2cad8b3
libsyntax: Remove fn() unsafe { ... }. r=graydon
2013-01-23 14:41:08 -08:00
John Clements
0b958e74ac
renaming to adhere to conventions
2013-01-23 11:46:19 -08:00
Daniel Micay
b7ef28c33a
rename send_map to hashmap
...
This makes the module much more discoverable, and is in line with the
'treemap' naming.
2013-01-23 14:25:01 -05:00
Patrick Walton
778aec998b
libsyntax: Implement the + syntax for multiple trait bounds. r=tjc
2013-01-23 11:15:10 -08:00
Tim Chevalier
995ccc0d82
Merge pull request #4596 from Trinick/tomutrename
...
core: Rename to_mut and from_mut to cast_to_mut and cast_from_mut
2013-01-23 10:56:08 -08:00
Trinick
9dc8e96c5f
core: Rename to_mut and from_mut to cast_to_mut and cast_from_mut
2013-01-23 10:09:45 +00:00
Tim Chevalier
54344c2468
testsuite: Add tests for mutable function arguments
2013-01-22 23:34:35 -08:00
Tim Chevalier
14d721388b
Add test case for change in 039bfe
2013-01-22 16:22:55 -08:00
Josh Matthews
72259e0772
Translate const references to extern functions as *i8 instead of the typical closure pair. Fixes #4522 .
2013-01-22 16:22:55 -08:00
Tim Chevalier
9d672671e2
Make borrowck's notion of scopes consistent with trans's notion of scopes
...
This eliminates an ICE in trans where the scope for a particular
borrow was a statement ID, but the code in trans that does cleanups
wasn't finding the block with that scope. As per #3860
preserve looks at a node ID to see if it's for a statement -- if it
is, it uses the enclosing scope instead when updating the map that
trans looks at later.
I added a comment noting that this is not the best fix (since it may
cause boxes to be frozen for longer than necessary) and referring
to #3511 .
r=nmatsakis
2013-01-22 15:59:45 -08:00
Tim Chevalier
885f0a2eab
testsuite: Un-xfail test for #3029 and move to run-fail
2013-01-20 20:35:24 -08:00
Tim Chevalier
b9920b052b
testsuite: Tweak tests for #3888
2013-01-20 19:51:33 -08:00
Graydon Hoare
e51ec26dd7
xfail-fast the #[main] tests, r=burningtree
2013-01-18 17:44:26 -08:00
Niko Matsakis
532c94d0f1
Propagate expected types through block expressions.
...
r=graydon
2013-01-17 18:45:48 -08:00
Niko Matsakis
9fed56ed90
When decoding types, indicate to the def-id conversion function what kind of
...
def-id we have, so that the inliner can distinguish between external and
internal def-ids. Also add some comments explaining the distinction!
Fixes #4516 .
r=graydon
2013-01-17 18:45:45 -08:00
Patrick Walton
f405e41d7a
librustc: Implement write guards for borrowing @mut to & or &mut. r=nmatsakis
2013-01-17 11:50:20 -08:00
Graydon Hoare
84825ee310
librustc: Make the default sigil for block lambdas & instead of @.
2013-01-15 17:57:45 -08:00
ILyoan
b7cefd0c96
allowing the entry point name to be something other than main
...
add build tests
2013-01-14 13:58:13 -08:00
Jed Davis
3aca4a1663
Regression tests for passing enum-typed consts by reference.
...
If the PointerCast in trans_def_lvalue is removed, these cases cause
LLVM assertion failures.
2013-01-11 23:42:51 -08:00
Jed Davis
79f0d67d28
Add more tests for enum constants.
...
The tests have consts defined both before and after their uses in order
to prevent bugs that depend on the order in which they are translated.
2013-01-11 23:42:51 -08:00
Andrew Paseltiner
ea937dca89
test: add test for overloading logical negation operator
2013-01-11 16:27:12 -05:00
Patrick Walton
a82c8b3da2
test: XFAIL issue_3882 due to strange Windows failure. rs=failure
2013-01-11 10:57:24 -08:00
Tim Chevalier
ae0ca9c646
Add working test for issue 3935 and xfailed test for issue 3888
2013-01-10 14:38:37 -08:00