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