Tim Chevalier
98260a2a22
Handle infinite-loop poststate correctly in typestate
...
If control passes an infinite loop (that doesn't have non-local
exits), then everything is true.
2012-03-10 20:15:27 -08:00
Tim Chevalier
321fd80219
Add an infinite loop construct
...
Add a loop {} construct for infinite loops, and use it in test
cases. See #1906 for details.
2012-03-09 16:40:58 -08:00
Patrick Walton
c9375fed8d
stdlib: Stop incurring vtable dispatch costs when hashmaps are used
...
This required changing almost all users of hashmaps to import the hashmap interface first.
The `size` member in the hashmap structure was renamed to `count` to work around a name conflict.
2012-03-07 17:35:13 -08:00
Patrick Walton
c245d9e980
Revert "stdlib: Stop incurring vtable dispatch costs when hashmaps are used"
...
This reverts commit f0250a23d3
.
2012-03-07 16:56:45 -08:00
Patrick Walton
f0250a23d3
stdlib: Stop incurring vtable dispatch costs when hashmaps are used
...
This required changing almost all users of hashmaps to import the hashmap interface first.
The `size` member in the hashmap structure was renamed to `count` to work around a name conflict.
2012-03-07 16:51:31 -08:00
Tim Chevalier
90ac69904f
Improve a type error message (avoid the word 'non-dereferenceable')
2012-03-07 14:14:34 -08:00
Brian Anderson
0ee96de4ee
rustc: Lower case error messages
2012-03-05 17:05:20 -08:00
Niko Matsakis
8820d4485b
print type arguments when pretty-printing all nominal types
2012-03-05 16:47:52 -08:00
Niko Matsakis
12c68bcd6d
make sure we do not bind unique closures (or blocks, for that matter)
2012-03-02 06:47:25 -08:00
Tim Chevalier
c28c258f91
Disallow type parameters in the main() function
...
Closes #1900
2012-02-25 11:06:01 -08:00
Marijn Haverbeke
780f8277f4
Finish cleanup of core::str
...
Closes #1849
2012-02-23 17:00:19 +01:00
Brian Anderson
27ab663845
rustc: Don't ignore attributes inside empty mods. Closes #1655
2012-02-22 21:47:23 -08:00
Brian Anderson
ae23ee28e2
test: Add a test for #1697
2012-02-22 21:14:27 -08:00
Tim Chevalier
4acfcd8c2f
Improve error message for use of a non-pure-fn in a pred
...
Closes #1883
2012-02-22 10:59:52 -08:00
Marijn Haverbeke
ad03761a97
Remove preconditions from libraries
...
Closes #1805
2012-02-22 11:47:47 +01:00
Graydon Hoare
ef6f628589
Refactor view_path to parse (but not yet process) export globs, unify code paths.
2012-02-17 23:05:20 -08:00
Marijn Haverbeke
e62ddf4898
More rigorous reuse of cleanup sequences
...
In both landing pads and break/cont/ret unwinding.
Closes #300
2012-02-16 16:37:33 +01:00
Marijn Haverbeke
67cc89f38d
Rewrite exhaustiveness checker
...
Issue #352
Closes #1720
The old checker would happily accept things like 'alt x { @some(a) { a } }'.
It now properly descends into patterns, checks exhaustiveness of booleans,
and complains when number/string patterns aren't exhaustive.
2012-02-15 15:47:42 +01:00
Marijn Haverbeke
16e5760564
Fix bug in safe-reference checker
...
At some point, a refactor broke the code that handled local declarations
to no longer descend into the initializer expressions.
Closes #1846
2012-02-15 11:53:32 +01:00
Kevin Atkinson
d6d7134c37
When parsing a source string, fail when the entire string is not parsed.
...
(For now only fail when parse_from_source_str is used to avoid
possible compatibility problems; parse_expr_from_source_str still
does not check.)
2012-02-14 19:37:33 -08:00
Kevin Atkinson
0e44133e7c
Do a better job of reporting source location for files (i.e. filemap)
...
that are really a substr of another file.
2012-02-14 19:37:33 -08:00
Brian Anderson
0a503228f6
rustc: Typecheck crust functions as *u8
2012-02-14 11:24:09 -08:00
Niko Matsakis
520c3f5f79
correct error message and add to test
2012-02-13 07:33:16 -08:00
Niko Matsakis
4eb52f69a9
do not fail if iface/impl method have different number of parameters
2012-02-13 06:50:58 -08:00
Niko Matsakis
a7641e99e8
remove leading ::, new tests
2012-02-13 06:50:58 -08:00
Brian Anderson
005a3efb8b
test: Fix cros-crate-glob-collision
2012-02-11 18:20:02 -08:00
Niko Matsakis
3f15a28b16
correct fully qualified type names to include the crate; add tests (take 2)
...
This reverts commit fc023d91c7
.
2012-02-11 14:09:52 -08:00
Niko Matsakis
fc023d91c7
Revert prior commit until I have time to track down the valgrind error
...
This reverts commit 2ec3a0b608
.
2012-02-11 09:49:02 -08:00
Niko Matsakis
2ec3a0b608
correct fully qualified type names to include the crate; add tests
...
fixes #1745
2012-02-10 21:53:17 -08:00
Brian Anderson
17110fb28b
test: Add tests for #1802
2012-02-10 15:43:35 -08:00
Marijn Haverbeke
7f1ea3ef6a
Don't allow binding patterns to bind keywords
...
Closes #1586
2012-02-10 15:54:47 +01:00
Marijn Haverbeke
74d4e2a32e
Add compile-fail tests for interfaces/impls
...
Closes #1475
2012-02-10 13:31:33 +01:00
Brian Anderson
80cd6aa96e
test: Update and un-xfail compile-fail/tag-that-dare-not...
2012-02-05 18:06:54 -08:00
Niko Matsakis
9f0239ce9c
add a test where mode inference ought to fail
2012-02-05 13:59:09 -08:00
Kevin Atkinson
5ef53382ae
Add support for parsing quasi-quotes, doesn't do anything useful yet.
2012-02-03 20:23:49 -07:00
Marijn Haverbeke
c976b7c623
Fix tests for str::le patch
2012-02-03 14:32:23 +01:00
Kevin Cantu
8f367ebfeb
Rename (again) str::unsafe::slice -> str::unsafe::slice_bytes and
...
str::unsafe::safe_slice -> str::unsafe::slice_bytes_safe_range
2012-02-01 21:56:53 -08:00
Kevin Cantu
c71667d9d2
Propagating unsafe::slice 4
2012-02-01 21:56:53 -08:00
Marijn Haverbeke
856a544d0c
Remove native types from stdlib
2012-02-01 12:23:13 +01:00
Tim Chevalier
e5d095d67e
Change option::t to option
...
Now that core exports "option" as a synonym for option::t, search-and-
replace option::t with option.
The only place that still refers to option::t are the modules in libcore
that use option, because fixing this requires a new snapshot
(forthcoming).
2012-01-31 17:05:20 -08:00
Tim Chevalier
fba35e1a3c
Require alts to be exhaustive
...
middle::check_alt does the work. Lots of changes to add default cases
into alts that were previously inexhaustive.
2012-01-31 10:08:24 -08:00
Brian Anderson
53dbde6cc2
rustc: Make 'attempted access of field' error non-fatal
2012-01-27 16:58:27 -08:00
Marijn Haverbeke
e48bf6f3f4
Make occurs check in ty::fixup_vars more reliable
...
It wouldn't detect cycles that went through several type vars before.
Closes #1464
2012-01-27 18:58:52 +01:00
Marijn Haverbeke
dc55c06aa3
Properly check enum types for recursion
...
Closes #742
2012-01-27 16:03:43 +01:00
Brian Anderson
28fbb19664
rustc: Switch the --no-core switch to a #[no_core] attribute
2012-01-26 16:43:33 -08:00
Brian Anderson
5610205363
rustc: Move core injection to its own module
2012-01-26 16:23:48 -08:00
Marijn Haverbeke
888262b337
Allow operator overloading of the indexing operator
...
The method `op_index` (which takes a single argument) is used for
this.
Issue #1520
2012-01-26 15:23:11 +01:00
Marijn Haverbeke
87b064b249
First stab at operator overloading
...
When no built-in interpretation is found for one of the operators
mentioned below, the typechecker will try to turn it into a method
call with the name written next to it. For binary operators, the
method will be called on the LHS with the RHS as only parameter.
Binary:
+ op_add
- op_sub
* op_mul
/ op_div
% op_rem
& op_and
| op_or
^ op_xor
<< op_shift_left
>> op_shift_right
>>> op_ashift_right
Unary:
- op_neg
! op_not
Overloading of the indexing ([]) operator isn't finished yet.
Issue #1520
2012-01-26 14:25:06 +01:00
Niko Matsakis
5e13d19cc0
s/block()/fn()/g
2012-01-23 19:06:33 -08:00
Brian Anderson
7d5d1a311e
test: Add no-reformat directive to compile-fail/issue-1362
2012-01-23 17:37:15 -08:00