3869 Commits

Author SHA1 Message Date
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
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
Tim Chevalier
a7bd817017 Fail slightly more gracefully when given an -o filename that doesn't have an extension 2012-01-17 10:08:16 -08:00
Marijn Haverbeke
87418dbc93 Prevent pretty-printer from trying to consume stdin twice
Why this didn't fail on my machine, I don't know.
2012-01-17 17:44:38 +01:00
Marijn Haverbeke
54d5a9846f Try to fix pretty-printer failure
I can't reproduce it on my side, unfortunately.
2012-01-17 17:12:58 +01:00
Marijn Haverbeke
08c16b17e9 Fix --pretty normal, reorganize some code in driver.rs
There is now only one path doing crate expanding and typechecking,
which should make it less likely for the pretty-printing code to be
broken by changes to the compilation pipeline.

Closes #1536
2012-01-17 16:42:49 +01:00
Marijn Haverbeke
1c7a62c93b Use a memset upcall to zero things without static alignment
This fixes issues #843 and #1546. The cost of an upcall is
unfortunate, though. I assume there must be a way to simply manually
compute the pointer or size, using something akin to the formula in
`align_to` in `rust_util.h`. I could not get this to work,
unfortunately.
2012-01-17 14:04:55 +01:00
Brian Anderson
bd63c3928e rustc: Move some attribute accessors from rustdoc to rustc 2012-01-16 21:12:36 -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
Josh Matthews
ea1e360c15 Ensure library file always has a proper suffix. 2012-01-16 13:35:35 -05:00
Marijn Haverbeke
b3927d6052 Don't write out type names when hashing types
I hope this is why my patch made things so much slower...
2012-01-16 17:03:51 +01:00
Marijn Haverbeke
d673f76fdf Remove misguided indirect return in trans_closure
Closes #1528
2012-01-16 14:27:41 +01: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