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
Tim Chevalier
e0850d11ec
Add test cases: one xfailed, one not
2013-01-10 14:16:02 -08:00
Tim Chevalier
8a687dd8e4
tests: Add two test cases, one xfailed
2013-01-10 13:44:27 -08:00
Niko Matsakis
737e115646
mode: reset mode on entry to fn body.
...
This is an interim fix to address the "Beware!" unsoundness. I have a
more comprehensive rewrite of mode.rs in the pipeline.
r=pcwalton
2013-01-10 13:17:25 -08:00
Patrick Walton
2a1b6c4de9
librustc: Implement &static
as the replacement for Durable
. r=nmatsakis
2013-01-10 11:16:54 -08:00
Patrick Walton
982830c836
librustc: Allow the type parameter version of Self
to be spelled with a capital S
2013-01-10 10:37:22 -08:00
Graydon Hoare
61210e01f9
test: fix check-fast breakage.
2013-01-10 10:24:18 -08:00
Niko Matsakis
2b92962aa2
A collection of refactorings that I found it hard/tiresome to divide:
...
- Make `extern fn()` assignable to any closure type, rather than
a subtype.
- Remove unused int_ty_set and float_ty_set
- Refactor variable unification and make it more DRY
- Do fn sub/lub/glb on the level of fn_sig
- Rename infer::to_str::ToStr to infer::to_str::InferStr
- Capitalize names of various types
- Correct hashing of FnMeta
- Convert various records-of-fns into structs-of-fns. This is both
eliminating use of deprecated features and more forwards compatible
with fn reform.
r=pcwalton
2013-01-09 14:59:07 -08:00
Patrick Walton
2db3abddcd
librustc: Make unqualified identifier searches terminate at the nearest module scope. r=tjc
2013-01-08 22:02:35 -08:00
Patrick Walton
44ab00ee37
Revert "librustc: Make unqualified identifier searches terminate at the nearest module scope. r=tjc"
...
This reverts commit a8d37af247
.
2013-01-08 19:29:16 -08:00
Patrick Walton
a8d37af247
librustc: Make unqualified identifier searches terminate at the nearest module scope. r=tjc
2013-01-08 19:27:57 -08:00
Tim Chevalier
80435ad429
Make self
visible when typechecking nested functions
...
Necessary to allow supertrait methods to be called in default methods.
r=nikomatsakis
2013-01-08 13:56:26 -08:00
Patrick Walton
722d670c85
test: Fix botched regex. rs=bustage
2013-01-08 10:35:20 -08:00
Patrick Walton
1f667e7995
test: Regular expression mistake. rs=bustage
2013-01-07 22:13:34 -08:00
Patrick Walton
fcc470c0ee
test: Fix check-fast for resolve changes. rs=bustage
2013-01-07 18:55:12 -08:00
Niko Matsakis
16ec9aa6e7
Support assignability for struct fields. r=pcwalton
2013-01-07 18:46:37 -08:00
Tim Chevalier
7b433d098a
Revert "Change the self def_id to a self_info in typeck, and inherit"
...
This reverts commit 921393c568
.
2013-01-07 18:18:22 -08:00
Tim Chevalier
921393c568
Change the self def_id to a self_info in typeck, and inherit
...
That is, treat `self` as if it has dynamic scope. This seems to
be harmless, and prevents an ICE as per #3563
2013-01-07 18:08:19 -08:00
Jed Davis
3e7ab3a443
Add a test for nullary univariant enums.
2013-01-05 00:49:01 -08:00
Tim Chevalier
1330b1cdf5
Add test cases (one xfailed, one not)
...
as per #3601 and #3609
2013-01-03 14:55:51 -08:00
Patrick Walton
19dfb47564
test: Fix test/run-pass/class-cast-to-trait-cross-crate-2. rs=fire
2012-12-28 18:04:41 -08:00
Patrick Walton
40eaecbd47
test: Fix a couple more tests. rs=bustage
2012-12-28 18:02:20 -08:00
Patrick Walton
c42d5e2747
test: Fix test/run-pass/pipe-pingpong-proto. rs=bustage
2012-12-28 17:33:28 -08:00
Patrick Walton
31b07ae8c5
test: Fix test/run-pass/pipe-pingpong-bounded. rs=bustage
2012-12-28 17:32:42 -08:00
Patrick Walton
f67c37263e
test: Fix a bunch of run-pass tests. rs=bustage
2012-12-28 17:17:05 -08:00
Tim Chevalier
c880d0ab76
Add an xfailed test case and a CONTRIBUTING.md file
2012-12-27 14:58:45 -08:00
Tim Chevalier
0873553680
Merge pull request #4298 from JensNockert/byteswap
...
Add support for byteswap intrinsics
2012-12-27 10:47:15 -08:00
Jens Nockert
a51661e8c1
Add support for byteswap intrinsics
...
Adds support for the llvm.bswap.i{8,16,32} intrinsics, which swaps the
byte order from little endian to big endian, or the reverse.
2012-12-27 19:07:05 +01:00
Patrick Walton
57c599914a
librustc: Terminate name searches at the nearest module scope for paths that contain at least two components. r=graydon
2012-12-27 10:02:54 -08:00
Erick Tryzelaar
efb8711f90
Merge branch 'master' of github.com:mozilla/rust into incoming
2012-12-27 10:34:27 -05:00
Tim Chevalier
8d438747a5
Remove xfail-fast from trait-composition-trivial
2012-12-24 18:29:01 -08:00
Tim Chevalier
d722217a68
tests: Add test case. Closes #3250
2012-12-24 18:29:01 -08:00
Graydon Hoare
329316ce15
bump 0.5 => 0.6, redirect some URLs in docs.
2012-12-24 18:29:01 -08:00
Tim Chevalier
499a58708f
Assign correct types to struct-like enum variant constructors
...
Before, the type was just the enum type itself, which caused an
assertion failure in iter_variant in trans::base.
r=brson
Closes #4229
2012-12-24 15:59:15 -08:00
Tim Chevalier
b1b0c297a4
Merge pull request #4249 from graydon/0.6-bump
...
bump 0.5 => 0.6, redirect some URLs in docs.
2012-12-23 13:47:11 -08:00
Tim Chevalier
10e8e3e286
Remove xfail-fast from trait-composition-trivial
2012-12-23 00:24:07 -08:00
Tim Chevalier
5c6e928e32
tests: Add test case. Closes #3250
2012-12-22 14:58:30 -08:00