Commit Graph

1803 Commits

Author SHA1 Message Date
Tim Chevalier
5b028f527f Remove support for the '.' after a nullary tag in a pattern
(Commit also includes lots of changes to remove '.'s that a git
merge messed up, or else it was monkeys.)
2012-01-19 01:04:59 -08:00
Tim Chevalier
04a2887f87 Remove '.' after nullary tags in patterns
Does what it says on the tin.

The next commit will remove support for this syntax.
2012-01-18 23:17:34 -08:00
Niko Matsakis
54f6bf57e6 remove align_mode and rewrite GEP_tup_like to align correctly
Although the old version of GEP_tup_like was incorrect in some
cases, I do not believe we ever used it in an incorrect fashion.
In particular, it could go wrong with extended index sequences
like [0, 1, 3], but as near as I can tell we only ever use it
with short sequences like [0, i].
2012-01-18 17:20:46 -08:00
Niko Matsakis
da828747e6 correct use of GEP_tup_like in closure constr
also, streamline type_is_tup_like() to the cases which
actually work
2012-01-18 17:20:46 -08:00
Patrick Walton
5ac57d1891 test: Don't test that tags with zero variants are supported 2012-01-18 12:43:01 -08:00
Haitao Li
f03eb96f39 rustc: Warn when int or uint is used in a native type decl
Issue #1403
2012-01-19 02:10:36 +08:00
Brian Anderson
6e27b27cf8 libstd: Move std tests into libstd 2012-01-17 19:48:58 -08:00
Brian Anderson
17bf4b0e1b libcore: Move core tests into libcore 2012-01-17 19:41:05 -08:00
Graydon Hoare
711fc20d88 Merge pull request #1544 from kevina/issue-1393
Minor cleanups to custom discriminator code.
2012-01-17 12:45:09 -08:00
Niko Matsakis
a83ad1b9e6 encode variant names and have log print them out. 2012-01-17 10:33:28 -08:00
Tim Chevalier
c3bc8fada8 Allow omission of the '.' after nullary tag patterns
This commit allows patterns like:

alt x { some(_) { ... } none { } }

without the '.' after none. The parser suspends judgment about
whether a bare ident is a tag or a new bound variable; instead,
the resolver disambiguates.

This means that any code after resolution that pattern-matches on
patterns needs to call pat_util::normalize_pat, which consults
an environment to do this disambiguation.

In addition, local variables are no longer allowed to shadow
tag names, so this required changing some code (e.g. renaming
variables named "mut", and renaming ast::sub to subtract).

The parser currently accepts patterns with and without the '.'.
Once the compiler and libraries are changed, it will no longer
accept the '.'.
2012-01-17 10:08:16 -08:00
Kevin Atkinson
bdc8e8d222 Minor cleanups to custom discriminator code.
Mostly updates to the comments and docs from Pull Request #1537.
2012-01-16 21:04:02 -07:00
Marijn Haverbeke
1375b31c1c Store type names in crate metadata
Improves type error messages referring to external types.

Issue #1507
2012-01-16 12:08:00 +01:00
Marijn Haverbeke
c2fe7b6398 When pretty-printing fn types, leave off arg modes when they are the default
This reduces ++/&& spam in the output to a bare minimum.

Issue #1507
2012-01-16 12:08:00 +01:00
Kevin Atkinson
e1c50c4410 Don't evaluate discriminator value constants when parsing.
Remove disr_val from ast::variant_ and always use ty::variant_info
when the value is needed.  Move what was done during parsing into
other passes, primary typeck.rs.  This move also correctly type checks
the disr. value expression; thus, fixing rustc --pretty=typed when
disr. values are used.
2012-01-16 11:19:33 +01:00
Kevin Atkinson
2d36a71aee Update pretty printer to print out disr. values.
Partly fixes issue #1510.  "rustc --pretty=typed" fails.
2012-01-16 11:19:32 +01:00
Kevin Cantu
d8b0a1910a Added string functions: split_func, split_char, lines, lines_any, words,
and more tests
2012-01-15 20:20:06 -08:00
Brian Anderson
3466c9b4be rustc: Parse fn inner attributes. Closes #1506 2012-01-15 17:48:58 -08:00
Brian Anderson
7e6ce6637e bench: Lower the default inputs on many shootout benchmarks
Make them run a bit faster during normal testing
2012-01-14 20:34:02 -08:00
Brian Anderson
1588ae204e bench: Update shootout-nbody for style 2012-01-14 20:29:56 -08:00
Brian Anderson
93dcb9fb6b bench: Update fannkuchredux for style 2012-01-14 20:13:03 -08:00
Brian Anderson
9c21673e3f bench: Update shootout-binarytrees for style 2012-01-14 20:13:03 -08:00
Brian Anderson
c53d0a0af8 bench: Update shootout-ackermann for performance 2012-01-14 20:13:01 -08:00
Brian Anderson
492dba8bfe bench: Update shootout-fibo for performance 2012-01-14 19:39:52 -08:00
Brian Anderson
c6f62b6374 bench: Update shootout-binarytrees to use unique boxes
Shared boxes have a huge performance overhead due to #1493
2012-01-14 17:02:51 -08:00
Niko Matsakis
4a34a7128a xfail the tests for now, pending #1511 being fixed 2012-01-13 15:30:50 -08:00
Brian Anderson
a2e07a97ba test: xfail-pretty run-pass/tag-disr-val-shape 2012-01-13 15:14:06 -08:00
Brian Anderson
d76362d45e test: Simplify rope::bal1. Closes #1424 2012-01-13 14:55:07 -08:00
Brian Anderson
e66c036c9f libcore: Add task::try 2012-01-13 14:21:17 -08:00
Niko Matsakis
31bb6a60bb Fixes #1499: a test that shape code can walk explicit disr values 2012-01-13 13:57:06 -08:00
Niko Matsakis
8685a1f7c4 distinguish "any closure" and "stack closure" (block) 2012-01-13 09:31:40 -08:00
Niko Matsakis
3f3bfeec27 make "native fn" the type for bare functions, remove fn exprs 2012-01-13 06:27:35 -08:00
Niko Matsakis
455f8b0d45 deprecate fn exprs and the fn() type, preferring fn@ and native fn 2012-01-13 06:27:34 -08:00
Marijn Haverbeke
d2be5b6c7a Remove tests for objs, adjust tests that use objs 2012-01-13 11:52:13 +01:00
Brian Anderson
0616cba62b libcore: Add sys::set_exit_status
Sets the process exit code
2012-01-12 22:24:27 -08:00
Tim Chevalier
565ea068ca Add type parameters when checking wildcard patterns
For some reason, wildcard patterns were never getting type parameter
substitutions attached. This would cause an assertion failure when
checking a wildcard pattern that matches against a tag with
polymorphic type (not sure why this didn't come up before). Fixed it.
(The diff and test case may be easier to understand than this note
:P)

Closes #1503.
2012-01-12 16:51:07 -08:00
Niko Matsakis
8818f42b19 make parser disambiguate fn~ at top level correctly 2012-01-12 13:47:38 -08:00
Niko Matsakis
263f4c58a0 add tydescs into shape, rewrite walk_fn_contents() 2012-01-12 13:47:38 -08:00
Niko Matsakis
e55aa6e5ef free uniq data we encounter on the sweep, walk thru them otherwise 2012-01-12 13:47:38 -08:00
Marijn Haverbeke
56fe4c2681 Implement passing cast-to-vtable values as bounded params
Closes #1492
2012-01-12 16:57:58 +01:00
Kevin Atkinson
44352df57c Cleanups to previous commits for issue #1393. 2012-01-12 09:55:48 +01:00
Brian Anderson
35b27aa172 test: Add a test that empty records don't parse
Closes #1200
2012-01-11 19:45:18 -08:00
Brian Anderson
6e1f9ad1f1 rustc: Don't allow empty link_name when nolink attribute is present
Closes #1326
2012-01-11 19:45:18 -08:00
Brian Anderson
70367d757c test: xfail-win32 run-pass/too-much-recursion 2012-01-11 15:10:36 -08:00
Brian Anderson
94c389a25b rt: Add RUST_MAX_STACK env var with 8MB default
Closes #1489
2012-01-11 13:57:11 -08:00
Marijn Haverbeke
34d7f05292 Major clean-up of std::io
Use ifaces instead of objs, stop wrapping everything in two (or three)
layers of no-value-added indirection, and remove some of the more
pointless/outdated idioms from the code.
2012-01-11 21:00:11 +01:00
Marijn Haverbeke
15744210e7 Implement std::map as an iface/impl instead of an obj 2012-01-11 20:33:44 +01:00
Niko Matsakis
c68345e57e add a log_str() function and allow '%?' in fmt strings to use it 2012-01-11 10:32:54 -08:00
Niko Matsakis
f3b867fd04 add section on spawn_connected to tutorial and pull test into file 2012-01-11 09:49:21 -08:00
Niko Matsakis
441a42c5d2 update shape code to handle iface instances 2012-01-10 19:05:28 -08:00
Kevin Atkinson
1dc3debdaf Add support for casting enum-like tags to scalar values. 2012-01-10 15:59:57 -08:00
Kevin Atkinson
08abf8d37f Support explicit discriminant numbers on tag variants.
Addresses issue #1393.

For now disallow disr. values unless all variants use nullary
contractors (i.e. "enum-like").

Disr. values are now encoded in the crate metadata, but only when it
will differ from the inferred value based on the order.
2012-01-10 15:59:57 -08:00
Patrick Walton
d0fe6723fc test: Fix test/pretty/tag-blank-lines.rs for the tag -> enum switch 2012-01-10 16:02:49 -08:00
Niko Matsakis
8b911587df rename sendfn to fn~, lambda to fn@ 2012-01-10 13:31:06 -08:00
Niko Matsakis
110c3ccdca add rust_task_is_unwinding predicate and do not kill if already unwinding 2012-01-09 19:53:32 -08:00
Austin Seipp
a94b1ccacb Change all uses of 'when' in alt-patterns to 'if'
Issue #1396
2012-01-09 19:27:05 -08:00
Graydon Hoare
8387896dda Remove proto_sugar and 'lambda' as keyword, commit to fn@. 2012-01-09 16:12:48 -08:00
Brian Anderson
fbad0204e4 Merge pull request #1470 from grahame/grahame
add new read_chars method, fix bug in read_char
2012-01-09 10:35:48 -08:00
Marijn Haverbeke
6b20e8c88b Fix error message case in two cfail test
I had made the error consistent with other errors, but forgot to
also change the tests.
2012-01-09 17:51:39 +01:00
Niko Matsakis
51364b5708 Fix #1474: check that block args resolved to bare fns do not make use of upvars 2012-01-09 06:50:40 -08:00
Marijn Haverbeke
f30c5ea686 Remove leftover comm.rs in std
(The actual comm module lives in core.)
2012-01-09 14:53:13 +01:00
Grahame Bowland
ba694775f5 add tests for io::readchars and io::readchar
Additionally reformat so that 'make check' passes.
2012-01-09 20:49:17 +08:00
Niko Matsakis
9775b480fd add spawn_connected 2012-01-08 15:32:13 -08:00
Niko Matsakis
7a336f1e7c modify last use to take into account cap clause, add new test 2012-01-08 14:57:03 -08:00
Niko Matsakis
106385cb91 make spawned fn copy mode so that bare fns can be used 2012-01-08 14:57:03 -08:00
Niko Matsakis
d4410a9f9b rewrite to use old C++-based mechanism 2012-01-06 22:40:32 -08:00
Niko Matsakis
a1ef79c9d2 update to use new spawn syntax 2012-01-06 22:40:32 -08:00
Niko Matsakis
6237368cc2 plug leak: free shared type descrs recursively, as we ought to 2012-01-06 22:40:32 -08:00
Niko Matsakis
8506241f3a fix how we walk functions to match new closure fmt 2012-01-06 22:40:31 -08:00
Niko Matsakis
4f52e5a5ec make size_of and align_of take an optional value 2012-01-06 22:40:31 -08:00
Niko Matsakis
9f84f88276 port over the tests to use the new API 2012-01-06 22:40:31 -08:00
Niko Matsakis
25e81e34ea rewrite task tests 2012-01-06 22:40:31 -08:00
Niko Matsakis
e88905cd28 remove trailing whitespace 2012-01-06 22:07:29 -08:00
Niko Matsakis
373dbe7741 test exposing memory management failure for #1078 2012-01-06 21:15:27 -08:00
Brian Anderson
74c825e385 std: Add fs::homedir
Returns the home directory of the user as appropriate for the platform.

Issue #1359
2012-01-06 16:33:17 -08:00
Tim Chevalier
7c7559edaf Disallow variable names that shadow tags in scope
Now, if you have a tag named "foo", a variable declaration like
"let foo..." is illegal. This change makes it possible to eliminate
the '.' after a nullary tag pattern in an alt (but I'll be doing
that in a future commit) -- as now it's always obvious whether a
name refers to a tag or a new declared variable.

resolve implements this change -- all the other changes are just to
get rid of existing code that declares variables that shadow tag
names.
2012-01-06 14:44:43 -08:00
Graydon Hoare
4f3171ea81 Merge pull request #1450 from erickt/master
adding some misc functions and some functions just for [u8]
2012-01-06 13:04:49 -08:00
Marijn Haverbeke
41a2d8495e Fix pretty-printing of ty params in iface methods 2012-01-06 17:40:05 +01:00
Marijn Haverbeke
7c1f683c6d Fix bug in method type parameter passing
It would occasionally pass the wrong type parameter, when calling
a generic method from a generic impl on a bounded param type.
2012-01-06 17:40:05 +01:00
Erick Tryzelaar
6cfc196d42 libstd: rename c_vec::size to len. 2012-01-06 08:12:18 -08:00
Brian Anderson
51e6df689c rustc: Allow the test runner to run unexported tests 2012-01-05 18:16:56 -08:00
Brian Anderson
c2c497ff53 rustc: Configure out #[test] functions when not testing 2012-01-05 17:31:57 -08:00
Niko Matsakis
75f84b2563 make test typecheck 2012-01-05 10:44:38 -08:00
Niko Matsakis
e1a0d0f03d fix pretty printer to correctly insert parens for disamb 2012-01-05 10:44:38 -08:00
Niko Matsakis
810927824c update test on disambig to reflect that some cases are no longer legal 2012-01-05 10:44:38 -08:00
Niko Matsakis
afe792496a correct test to reference right value 2012-01-05 10:44:38 -08:00
Niko Matsakis
f832edc369 require a non-semi expr acting as a stmt to have unit return type 2012-01-05 10:44:38 -08:00
Niko Matsakis
37ba5f3b32 make parser handle parenthesized block-sugar exprs properly 2012-01-05 10:44:38 -08:00
Stefan Plantikow
c8467977c4 Merge branch 'master' into kmath
Conflicts:
	src/libcore/float.rs
2012-01-05 17:20:13 +01:00
Stefan Plantikow
1f10ee365c Moved generic float::min, max to core::math and cleaned up some imports 2012-01-05 17:11:34 +01:00
Stefan Plantikow
494ad4e601 Merge branch 'master' into kmath 2012-01-05 16:25:51 +01:00
Marijn Haverbeke
60ae1590af Switch to new param kind bound syntax
And remove support for the old syntax
2012-01-05 15:50:02 +01:00
Stefan Plantikow
6284190ef9 Merge branch 'master' into kmath
Conflicts:
	src/libcore/cmath.rs
2012-01-05 02:07:12 +01:00
Niko Matsakis
70c808d173 extend tester so that error msgs can be attached to lines 2012-01-04 15:25:17 -08:00
Marijn Haverbeke
71c1c15805 xfail-pretty iface-generic.rs until i have time to debug 2012-01-04 19:58:02 +01:00
Marijn Haverbeke
b02a77d6b4 Add test for generic iface methods
Issue #1227
2012-01-04 17:30:36 +01:00
Lenny222
d1ffe5034b "str": rename "str_from_cstr" to "from_cstr" (analogous to the other "from_*") 2012-01-04 09:33:07 +01:00
Lenny222
dd284eb396 "char": use shorter names "to_lower"/"to_upper", analogous to the same names in "str" 2012-01-04 09:33:04 +01:00
Tim Chevalier
439e28b751 Add missing ty_constr cases to trans::type_of_inner and ty::fold_ty.
Closes #970
2012-01-03 15:50:05 -08:00
Niko Matsakis
72a3667eb3 Allow tail expressions even in no_value blocks. Type checker
will guarantee they have unit type.
2012-01-03 13:13:52 -08:00