Niko Matsakis
556947c47a
wrap line
2012-01-21 19:31:52 -08:00
Niko Matsakis
85a3298229
unify size_of, align_of into one call (metrics)
...
create some new (xfail'd) tests looking at tag variant alignment
2012-01-21 19:31:52 -08:00
Niko Matsakis
cd1056df78
migrate size_of() and related funcs from trans into shape
2012-01-21 19:31:51 -08:00
Graham Fawcett
7763b40c71
issue #1352 : change param order on vec::init_elt, putting block in final position.
...
To match the init_fn() and init_fn_mut() changes.
2012-01-21 13:33:16 -08:00
Graham Fawcett
35d12be2ce
fix #1352 : change param order on vec::init_fn (and vec::init_fn_mut), putting block in final position.
2012-01-21 13:31:12 -08:00
Haitao Li
2a59ab8fa5
rustc: Specify lint checks via crate attributes
...
A crate attribute like `#[lint(no_ctypes)]` can now be used to turn off
ctypes checking.
Issue #1543
2012-01-22 01:33:37 +08:00
Haitao Li
635e8200e1
rustc: Always resolve reexported names from original def
...
Issue #1501
2012-01-21 18:03:09 +08:00
Tim Chevalier
ba5cc236f7
WIP on issue 1426 (exporting all tags)
...
Support Lenny222's proposed syntax for exporting a tag without
its variants, or selected tags from a variant, in the AST and parser.
No support further down the line yet. Tests are xfailed.
2012-01-20 19:48:33 -08:00
Tim Chevalier
e36df0f6c8
Handle fail after return correctly in typestate
...
Previously, typestate would conclude that this function was
correctly diverging:
fn f() -> ! { ret; fail; }
even though it always returns to the caller. It wasn't handling the
i_diverge and i_return bits correctly in the fail case. Fixed it.
Closes #897
2012-01-20 17:26:31 -08:00
Tim Chevalier
d242edb57b
Handle predicates that recurse in a check() expression
...
typestate was using the enclosing function ID for the "this function
returns" constraint, which meant confusion and panic in the case
where a predicate p includes "check p()". Fixed it to use a fresh
ID.
Closes #933
2012-01-19 22:53:22 -08:00
Graydon Hoare
7b1a8f0a91
Additional ; to , changes, disable "tag" and ";" in parser. Close #1430 . Close #1428 .
2012-01-19 19:29:21 -08:00
Patrick Walton
a23f188bdb
rustc: Stop parsing "tag"
2012-01-19 19:23:47 -08:00
Patrick Walton
59ebe6af18
rustc: Make the pretty printer output commas after enum variants. Update all tests accordingly.
2012-01-19 18:41:06 -08:00
Brian Anderson
991db34b5b
rustc: Fix fun_to_str
2012-01-19 18:14:17 -08:00
Patrick Walton
c267821742
rustc: ";" to "," in enums
2012-01-19 18:04:25 -08:00
Patrick Walton
7a663032fb
rustc: Remove trailing whitespace
2012-01-19 17:49:23 -08:00
Tim Chevalier
c7592803d9
Compute typestates for FRU exprs correctly, plus a bit of cleanup
...
The code in Issue 948 was causing typestate to diverge because
it was using the prestate for the whole expression -- not the post-
state for the fields list -- as the prestate for the record base
expression. Fixed.
Closes #948
2012-01-19 17:24:27 -08:00
Tim Chevalier
94d2063577
Handle log expressions with a _|_-typed level
...
If we have log(foo, quux) where foo:_|_, just translate foo and
ignore the rest of the expression.
Closes #1459
2012-01-19 14:44:40 -08:00
Patrick Walton
daaeac56b1
rustc: Fix long lines
2012-01-19 14:34:23 -08:00
Patrick Walton
bdb8f6cf52
rustc: "tag" -> "enum"
2012-01-19 14:24:03 -08:00
Brian Anderson
f15182fffc
Use fn~ to simplify the core::test interface
2012-01-19 13:37:01 -08:00
Tim Chevalier
3e25444e51
In trans, allow _|_-typed things to be the argument to fail
...
Rationale: _|_-typed things diverge, so it's safe to use them in
any context.
Closes #1465
2012-01-19 13:30:31 -08:00
Graydon Hoare
4e7de69cda
Partial fix for #1561 , doesn't actually "fix" the problem but you get output now.
...
There's still something wrong with #error here, possibly cross-crate issue.
2012-01-19 11:11:47 -08:00
Niko Matsakis
882bea5b6d
Rename fn*() to fn() as originally planned.
2012-01-19 07:11:50 -08:00
Niko Matsakis
1f0b3d2247
treat fn*() as fn&()
...
This is not my ideal way of going about things. I'd prefer not
to have expressions typed as fn*(), for example, but I couldn't
get that to work together with inferring the modes of arguments
and other corner cases.
2012-01-19 07:10:59 -08:00
Haitao Li
d699db699a
rustc: Refactor lint check and avoid a segv fault
...
The segv fault issue is #1566
2012-01-19 20:31:43 +08:00
Haitao Li
7ffb2cb7e8
rustc: Name the lint-style check module lint
...
Issue #1543
2012-01-19 17:54:38 +08:00
Haitao Li
327a15d58c
rustc: Add a usage pass to collect one-off analyses
...
This patch starts from move the analysis which checkes of probably
incorrectly usage of `int|uint` in native fn.
Issue #1543
2012-01-19 17:27:44 +08:00
Haitao Li
45c0651a49
rustc: Use io::println for time-passes data
...
Issue #1561
2012-01-19 17:25:15 +08:00
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
Tim Chevalier
8c97854c7d
Allow any alternative (not just a block) to follow a nullary tag pattern
2012-01-18 21:29:02 -08:00
Tim Chevalier
209d8c854f
allow dotless nullary patterns inside or-patterns
2012-01-18 21:29:02 -08:00
Tim Chevalier
a453197734
Another minor parser fix for nullary-tag patterns
2012-01-18 21:29:02 -08:00
Tim Chevalier
bf83fd3091
Allow nullary tag names to be qualified
2012-01-18 21:29:02 -08:00
Brian Anderson
3ebf7b42bd
rustc: Assert that the parser doesn't assign node id 0
...
It is reserved for indicating the crate, but doesn't exist in the AST
2012-01-18 19:59:24 -08:00
Graydon Hoare
6a6aec04a2
Fix --out-dir a bit more in driver.
2012-01-18 18:44:07 -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
1aaee20737
rustc: Accept commas to separate tag variants
2012-01-18 12:27:12 -08:00
Haitao Li
04882d7c43
rustc: Use integer from ctypes consistently
2012-01-19 02:10:36 +08:00
Haitao Li
dde41869ce
Use ctypes in native function declarations
2012-01-19 02:10:36 +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
Niko Matsakis
31b25d81eb
use 64-bit memset on 64-bit platforms. Fixes #1546 . Fixes #843 .
...
Actually, we don't "fix" #843 so much as close it: as with memmove,
we simply use an alignment of 1 with dynamically sized types.
2012-01-17 20:21:09 -08:00
Niko Matsakis
7bc2930cfa
roll back commit 1c7a62
2012-01-17 20:21:09 -08:00
Brian Anderson
8acae671c7
rustc: Allow std to be built as a test runner
2012-01-17 19:41:05 -08:00
Graydon Hoare
80c7bfb069
Rename some readmes and fix some dist logic.
2012-01-17 16:50:13 -08:00
Brian Anderson
c0df13958c
Update crates with correct crate_type attribute
2012-01-17 15:13:43 -08:00
Brian Anderson
47b9fc278e
rustc: --test overrides the crate_type attribute
2012-01-17 15:13:43 -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