Patrick Walton
5739e0be01
rustc: Remove some unused references to std::vec from tstate::ann and tstate::auxiliary
2011-07-06 15:14:29 -07:00
Patrick Walton
abab04635a
rustc: Move middle::tstate::auxiliary and middle::tstate::bitvectors over to interior vectors
2011-07-06 15:14:19 -07:00
Patrick Walton
6d1517cf3a
rustc: Move tstate::annotate over to interior vectors
2011-07-06 15:14:09 -07:00
Patrick Walton
35c1dbd492
rustc: Convert bind_params_in_type() to use interior vectors
2011-07-06 15:13:59 -07:00
Patrick Walton
1d57800236
rustc: Migrate tag variants to interior vectors
2011-07-06 15:13:54 -07:00
Patrick Walton
2e1aa04fcd
rustc: Make object methods into interior vectors
2011-07-06 15:13:47 -07:00
Brian Anderson
b06ccb45ab
Begin adding unit testing infrastructure to the compiler
...
Add a --test flag and a pass for transforming the AST to generate a test
harness.
Issue #428
2011-07-06 14:39:36 -07:00
Brian Anderson
0eac640fdd
Swap the expected/actual for typechecking fields of updated records
...
In 'rec(a = b with c)', if a exists in c then the expected type for b is the
type of c.
2011-07-06 14:04:52 -07:00
Patrick Walton
05954f37b7
rustc: Use an interior vector for ty::count_ty_params
2011-07-06 12:05:18 -07:00
Patrick Walton
e066bae56e
rustc: Move the interner over to interior vectors
2011-07-06 12:05:13 -07:00
Patrick Walton
717ac3df77
rustc: Make the various constraint-related types in middle::ty use interior vectors
2011-07-06 12:05:06 -07:00
Patrick Walton
2fd46b54fb
rustc: Make type parameter substitutions interior vectors
2011-07-06 12:04:59 -07:00
Patrick Walton
cb2018c6db
rustc: Change constraints in types to use interior vectors
2011-07-06 12:04:07 -07:00
Patrick Walton
13d920c10d
rustc: Switch tag type parameters to interior vectors
2011-07-06 12:03:55 -07:00
Patrick Walton
ede35f4c43
rustc: Use interior vectors for tag type parameters
2011-07-06 12:03:06 -07:00
Brian Anderson
066bcc6c79
Make "cannot determine a type for this local variable" non-fatal
2011-07-06 11:44:42 -07:00
Brian Anderson
5c20a8aa9c
Make "cannot determine a type for this expression" non-fatal. Closes #621
2011-07-06 11:44:36 -07:00
Brian Anderson
c31472e845
Refactor the typeck::writeback AST walk
...
All visitors take a wb_ctxt now instead of some taking a fn_ctxt and some
taking an ignore flag.
2011-07-06 11:42:20 -07:00
Brian Anderson
0c9c4cb575
Remove unused method from typeck::writeback
2011-07-06 11:42:20 -07:00
Brian Anderson
c1136e4e05
Limit exports from typeck
2011-07-06 11:42:20 -07:00
Brian Anderson
97c1537374
Limit exports from typeck::writeback
2011-07-06 11:42:20 -07:00
Lindsey Kuper
e30d2c82ae
Simplify AST for expr_anon_obj.
2011-07-06 11:36:06 -07:00
Lindsey Kuper
23bae67f4c
Simplify arguments to trans_anon_obj and friends.
2011-07-06 11:36:06 -07:00
Patrick Walton
bbdba21b1f
rustc: Revert the conversion to interior vectors due to heap corruption
2011-07-06 11:26:26 -07:00
Patrick Walton
ec890fff23
Temp commit on the way to making meta_item into an interior vector
2011-07-06 11:09:08 -07:00
Patrick Walton
3f6c9f8d84
rustc: Move crate directives over to interior vectors
2011-07-06 11:09:08 -07:00
Patrick Walton
c927d97fa0
rustc: Convert attribute in the AST to interior vectors
2011-07-06 11:09:08 -07:00
Patrick Walton
1591955adf
rustc: Make AST paths use interior vectors
2011-07-06 11:09:08 -07:00
Patrick Walton
b108280db1
rustc: Move middle::tstate::collect_locals over to interior vectors
2011-07-06 11:09:08 -07:00
Patrick Walton
48438ba1ae
rustc: Remove unused or seldom-used imports from middle::tstate::{bitvectors, ck}
2011-07-06 11:09:07 -07:00
Patrick Walton
ec634e471f
rustc: Remove some unused references to std::vec from tstate::ann and tstate::auxiliary
2011-07-06 11:09:07 -07:00
Patrick Walton
cfc659009e
rustc: Move middle::tstate::auxiliary and middle::tstate::bitvectors over to interior vectors
2011-07-06 11:09:07 -07:00
Patrick Walton
702f88a3be
rustc: Move tstate::annotate over to interior vectors
2011-07-06 11:09:07 -07:00
Patrick Walton
4c384304e9
rustc: Convert bind_params_in_type() to use interior vectors
2011-07-06 11:09:07 -07:00
Patrick Walton
5703bd1760
rustc: Migrate tag variants to interior vectors
2011-07-06 11:09:07 -07:00
Patrick Walton
52a7c2b78e
rustc: Make object methods into interior vectors
2011-07-06 11:09:07 -07:00
Patrick Walton
75c5f9bdba
rustc: Use an interior vector for ty::count_ty_params
2011-07-06 11:09:06 -07:00
Patrick Walton
bd7a072266
rustc: Move the interner over to interior vectors
2011-07-06 11:09:06 -07:00
Patrick Walton
b9a2117475
rustc: Make the various constraint-related types in middle::ty use interior vectors
2011-07-06 11:09:06 -07:00
Patrick Walton
0eb889f9d2
rustc: Make type parameter substitutions interior vectors
2011-07-06 11:09:06 -07:00
Patrick Walton
8bee69da25
rustc: Change constraints in types to use interior vectors
2011-07-06 11:09:06 -07:00
Patrick Walton
f391acbd3f
rustc: Switch tag type parameters to interior vectors
2011-07-06 11:09:06 -07:00
Patrick Walton
09e591c12f
rustc: Use interior vectors for tag type parameters
2011-07-06 11:09:06 -07:00
Marijn Haverbeke
8e585e7008
Support paren-free and lightweight-case syntax
...
(The old syntax is still supported as well, for now.)
It is now possible to leave out the parens around if, while, and
do/while conditions, and around alt expressions. Cases in an alt block
can now leave off the case keyword and parens around the pattern.
After the next snapshot, we can start migrating our code to use the
new alt syntax, probably with a pretty-printer pass. The paren-free
syntax will remain optional (you may always parenthesize expressions),
but the old case syntax will no longer be supported in the future.
2011-07-06 17:50:52 +02:00
Marijn Haverbeke
7661c08496
Remove temporary stdlib placeholders, use actual stdlib functions
...
(Possible now that a snapshot took place.)
2011-07-06 16:46:17 +02:00
Lindsey Kuper
4c315666dd
Forwarding functions. Lots of progress toward #539 , #540 , #543 .
2011-07-05 20:21:59 -07:00
Lindsey Kuper
993e47175f
Comments and cleanup.
2011-07-05 20:17:33 -07:00
Tim Chevalier
f279e0d76e
Handle pattern-bound upvars
...
If a closure inside a case alternative (for example, a for each loop)
referenced a pattern-bound variable, this would cause an assertion
failure in trans. Changed trans::collect_upvars to handle pattern-bound
vars correctly.
Incidentally, eliminated all direct uses of option::get in trans.
2011-07-05 19:58:49 -07:00
Brian Anderson
2cb129355b
Change ast::meta_name_value to accept any literal, not just string
...
This isn't useful for much of anything yet, since metadata::encoder doesn't
know how to handle the non-string variants.
Issue #611
2011-07-05 17:25:18 -07:00
Brian Anderson
375f0b2211
Require that the meta items in a use statement have unique names
2011-07-05 16:12:24 -07:00
Tim Chevalier
a793b85fbd
Handle fail inside a for-each loop properly
2011-07-05 16:05:38 -07:00
Tim Chevalier
ded9008e38
handle fail inside a for loop
2011-07-05 16:05:38 -07:00
Tim Chevalier
6d0cb70fc3
Handle fail as an argument
2011-07-05 16:05:38 -07:00
Graydon Hoare
741db24e49
Print remaining comments at end of *crate*, not module.
2011-07-05 14:44:54 -07:00
Brian Anderson
a9d84ab28a
Make type unification failures non-fatal
...
Add a failure checkpoint after the typechecking pass. There are still many
fatal errors in typeck, but loosening up this one makes it easier to lean on
the compiler when making changes to types.
Issue #440 .
2011-07-05 14:40:33 -07:00
Graydon Hoare
a7d82a7f0f
Factor the ivec code a touch.
2011-07-05 14:19:27 -07:00
Brian Anderson
57d94493cf
Remove unused eval function. Issue #604
2011-07-05 13:34:02 -07:00
Brian Anderson
b79ea489e3
Support conditional compilation of native items. Closes #610
2011-07-05 13:30:00 -07:00
Brian Anderson
8499c77cee
Parse attributes for native items. Closes #609
2011-07-05 12:43:44 -07:00
Brian Anderson
10a4737d34
Warn when compiling shared crates that don't have name/vers link attributes
...
Closes #614
2011-07-05 11:58:44 -07:00
Brian Anderson
6f8bc404f8
Error if the link attribute has duplicate items. Issue #614
2011-07-05 11:46:02 -07:00
Marijn Haverbeke
4349eaed84
Don't thread the local crate number through the session
...
It's a constant, anyway.
2011-07-05 16:09:32 +02:00
Marijn Haverbeke
6fd6fdea93
Move everything syntax-related to syntax/, break deps on rest of compiler
...
src/comp/syntax is currently just a sub-module of rustc, but it will,
in the near future, be its own crate. This includes:
- The AST data structure
- The parser
- The pretty-printer
- Visit, walk, and fold
- The syntax extension system
- Some utility stuff that should be in the stdlib*
*) Stdlib extensions currently require a snapshot before they can be
used, and the win build is very broken right now. This is temporary
and will be cleaned up when one of those problems goes away.
A lot of code was moved by this patch, mostly towards a more organized
layout. Some package paths did get longer, and I guess the new layout
will take some getting used to. Sorry about that!
Please try not to re-introduce any dependencies in syntax/ on any of
the other src/comp/ subdirs.
2011-07-05 15:57:21 +02:00
Marijn Haverbeke
04acba7968
Move pretty-printing 'modes' into a callback hook
...
This way, the pretty-printer does not have to know about middle::ty.
(This is a preparation for separating the AST functionality into a
separate crate.)
2011-07-05 10:42:17 +02:00
Patrick Walton
5d2c189631
rustc: Remove obsolete "The second has to be authed pure" comment
2011-07-04 19:08:25 -07:00
Marijn Haverbeke
fb10829aef
Switch the alias checking pass to use span_err instead of span_fatal
...
It'll now spit out all problems it finds, and only abort after
the whole pass has run.
2011-07-04 22:00:07 +02:00
Marijn Haverbeke
b1423be1d6
Move the ids of pat AST nodes into their struct
...
Just like it was done with items and exprs. Simplifies some code.
2011-07-04 22:00:06 +02:00
Rafael Ávila de Espíndola
b669430f72
Use metadata to avoid always passing -Lrustllvm to the linker.
2011-07-04 13:22:23 -04:00
Rafael Ávila de Espíndola
6b1da80eb4
Simplify.
2011-07-04 11:36:10 -04:00
Rafael Ávila de Espíndola
e0ce092ddc
Simplify the code a bit.
2011-07-04 11:17:30 -04:00
Josh Matthews
7e7e326ee6
Make use of demand::simple instead of manually checking fail expr type.
2011-07-03 21:46:17 -07:00
Josh Matthews
a2775a5b72
Make non-str fail expression a type checking failure instead of a translation one.
2011-07-03 21:46:17 -07:00
Tim Chevalier
046c25dbc0
Handle fail as an argument; parse fail expressions unambiguously
...
An expression like:
foo(1, fail, 2)
was failing to parse, because the parser was interpreting the comma
as the start of an expression that was an argument to fail, rather
than recognizing that the fail here has no arguments
Fixed this by using can_begin_expr to determine whether the next
token after a fail token suggests that this is a nullary fail or a
unary fail.
In addition, when translating calls, check before translating each
argument that the block still isn't terminated. This has the effect
that if an argument list includes fail, the back-end won't keep trying
to generate code for successive arguments and trip the !*terminated
assertion.
2011-07-03 11:51:47 -07:00
Tim Chevalier
6369807ffe
Add a predicate that determines whether a token can begin an expression
2011-07-03 11:51:46 -07:00
Tim Chevalier
48a69d2100
Eliminate all direct calls to option::get() from typeck
...
This means fewer mysterious error messages.
2011-07-03 02:48:08 -07:00
Tim Chevalier
c425a422ed
Manipulate contexts correctly in trans_fail_expr
...
This fixes Issue #617
2011-07-03 02:38:11 -07:00
Tim Chevalier
7426252549
Generate code properly for calls with _|_ - typed arguments
...
The code for translating a fail (for example) would call
Unreachable(), which terminates the block; if a fail appeared as an
argument, this would cause an LLVM assertion failure. Changed
trans_call to handle this situation correctly.
2011-07-02 22:02:59 -07:00
Tim Chevalier
f0fad0dca5
Add a function that determines whether the block is terminated
2011-07-02 22:02:08 -07:00
Josh Matthews
a4421cc4e8
Fix assertion failure when syntax extension name is missing.
2011-07-02 00:06:58 -07:00
Josh Matthews
d485e0d15a
Allow any string expression to be used with fail.
2011-07-02 00:06:58 -07:00
Patrick Walton
67c9ef9b30
rustc: Fix memory corruption with ivectors-inside-ivectors by duplicating *first*, and *then* copying subtypes.
2011-07-01 20:07:19 -07:00
Patrick Walton
d39c59ae41
rustc: Move path_to_str to front::ast
2011-07-01 17:22:18 -07:00
Brian Anderson
396c4defcc
Introduce --cfg argument for providing additional configuration. Issue #489
2011-07-01 15:30:25 -07:00
Brian Anderson
a34b61fb15
Add some FIXMEs for issue #607
2011-07-01 12:51:46 -07:00
Brian Anderson
021b203fc6
Add some logging to attr when reading crate link attributes
...
Only link attributes of the meta_list type are considered when matching crate
attributes. Instead of doing nothing we can at least log that link attributes
of other types were ignored.
2011-07-01 12:30:27 -07:00
Patrick Walton
f7a2f01746
Revert "rustc: Change methods in ty::t to use interior vectors"
...
This reverts commit 6720ea760d
.
2011-07-01 11:37:19 -07:00
Patrick Walton
6720ea760d
rustc: Change methods in ty::t to use interior vectors
2011-07-01 11:33:17 -07:00
Brian Anderson
172c5633c4
Export only what's in use from front::eval. Issue #604
2011-07-01 10:46:59 -07:00
Brian Anderson
bdc5abe82c
Remove unused imports from front::eval
2011-07-01 10:45:30 -07:00
Brian Anderson
8614cc975c
Remove remaining unused eval methods. Issue #604
2011-07-01 10:45:30 -07:00
Brian Anderson
91b87b31e5
Remove the concept of crate directive let statements. Issue #604
2011-07-01 10:45:30 -07:00
Brian Anderson
d8fe0d7cee
Remove the concept of crate directive expressions. Issue #604
2011-07-01 10:45:30 -07:00
Brian Anderson
bca45720f7
Remove the environment concept from front::eval
...
This is the old method of conditional compilation. It is going away.
Issue #489
2011-07-01 10:45:30 -07:00
Brian Anderson
70a28dc238
Cleanup attribute code. Issue #487
2011-07-01 10:45:30 -07:00
Brian Anderson
26ce1e1035
Add some helper functions to front::attr
2011-07-01 10:45:29 -07:00
Marijn Haverbeke
77f5d14f14
Track def_ids of native types so that they can be distinguished
...
Closes #526
2011-07-01 18:39:24 +02:00
Marijn Haverbeke
432e5e9f7f
Allow dereferencing of single-variant, single-argument tag values
...
(Using the * operator.)
This makes tags more useful as nominal 'newtype' types, since you no
longer have to copy out their contents (or construct a cumbersome
boilerplate alt) to access them.
I could have gone with a scheme where you could dereference individual
arguments of an n-ary variant with ._0, ._1, etc, but opted not to,
since we plan to move to a system where all variants are unary (or, I
guess, nullary).
2011-07-01 17:51:47 +02:00
Marijn Haverbeke
57e6340253
Allow 'newtype' syntax for tags
...
Doing this:
tag foo = mytype;
is now equivalent to doing this:
tag foo { foo(mytype); }
2011-07-01 17:51:43 +02:00
Marijn Haverbeke
fb72be0a89
Do not store a tag num for single-variant tags
...
This is a preparation for tags-as-nominal-types. A tag that has only a
single variant is now represented, at run-time, as simply a tuple of
the variant's parameters, with the variant id left off.
2011-07-01 17:50:52 +02:00
Marijn Haverbeke
bf20fe5575
Make sure the pretty-printer understand resources
2011-07-01 13:04:49 +02:00
Michael Sullivan
7b1b5d5a8a
Implement autoderef for function calls.
...
This is important since we are going to be making functions noncopyable
soon, which means we'll be seeing a lot of boxed functions.
(*f)(...) is really just too heavyweight.
Doing the autodereferencing was a very little bit tricky since
trans_call works with an *lval* of the function whereas existing
autoderef code was not for lvals.
2011-07-01 12:39:58 +02:00
Michael Sullivan
ee45d54a4e
Move autoderefed_ty to ty.rs and rename it type_autoderef.
2011-07-01 12:39:57 +02:00
Patrick Walton
b773f8d22b
rustc: Duplicate heap data of interior vectors when passing them by value
2011-06-30 19:09:52 -07:00
Graydon Hoare
0eb257e864
Minor pp cleanups.
2011-06-30 17:58:19 -07:00
Graydon Hoare
6d441d3238
Preserve hard \n\n pairs from source when pretty-printing, as explicit formatting control from users.
2011-06-30 17:25:20 -07:00
Patrick Walton
dc9f285b06
rustc: Remove unused variables from last commit
2011-06-30 16:19:04 -07:00
Patrick Walton
108cc4e0ed
rustc: Change function argument types to interior vectors
2011-06-30 16:11:39 -07:00
Brian Anderson
50b1953f9b
Pretty-print view items in mod items
...
For mods that aren't defined at the file level we were forgetting to print the
view items so, e.g. 'mod { use std; }' would not print correctly.
2011-06-30 16:08:28 -07:00
Brian Anderson
64d6081429
Use attributes for conditional compilation in std.rc
2011-06-30 14:13:49 -07:00
Brian Anderson
39fccf3bc7
Conditionally compile items declared as statements. Issue #489
2011-06-30 13:04:35 -07:00
Tim Chevalier
37bfbc4b79
Get rid of remaining unused variables
2011-06-30 12:37:30 -07:00
Tim Chevalier
6a74253d60
Don't warn about unused for-loop index variables
2011-06-30 12:37:30 -07:00
Tim Chevalier
d8db9a0fe1
Kill unused variables
2011-06-30 12:37:30 -07:00
Tim Chevalier
4519f54857
Warn for unused variables
...
Modify typestate to check for unused variables and emit warnings
where relevant. This exposed a (previously harmless) bug in
collect_locals where outer functions had bit-vector entries
for init constraints for variables declared in their inner
nested functions. Fixing that required changing collect_locals to
use visit instead of walk -- probably a good thing anyway.
2011-06-30 12:37:30 -07:00
Patrick Walton
add9031dd5
rustc: Use interior vectors for record types
2011-06-30 12:02:40 -07:00
Patrick Walton
fd0d1cb7d8
rustc: Make mk_imm_tup() take an interior vector
2011-06-30 11:35:05 -07:00
Patrick Walton
b841152a40
rustc: Use interior vectors for tuple types
2011-06-30 11:35:05 -07:00
Eric Holk
b4a145e60f
Added a nanosecond timer to time.rs, support for some floating point casts, and a commandline-driven mode for pfib.rs
2011-06-30 11:32:10 -07:00
Brian Anderson
4165d3640a
Add a pass to fold out items that do not belong in the current configuration
...
The parser needs to parse unconfigured items into the AST so that they can
make the round trip back through the pretty printer, but subsequent passes
shouldn't care about items not being translated. Running a fold pass after
parsing is the lowest-impact way to make this work. The performance seems
fine.
Issue #489
2011-06-30 10:06:26 -07:00
Brian Anderson
3483c65b1f
Add missing item variants to fold_item_underscore
2011-06-30 10:06:26 -07:00
Brian Anderson
aa6a3debf3
Add missing expression variants to fold_expr
2011-06-30 10:06:26 -07:00
Brian Anderson
1f0c25406c
Fold the crate-level module in front::fold
2011-06-30 10:06:26 -07:00
Brian Anderson
5de916dd5c
Move middle::attr to front::attr
2011-06-30 10:06:26 -07:00
Brian Anderson
afc8a5c031
Convert the eval::env to an ast::crate_cfg
...
crate_cfg will replace eval::env as the mechanism for conditional compilation.
This is a transitional step so they can both exist together.
Issue #489
2011-06-30 10:06:25 -07:00
Brian Anderson
d53bfad8e7
Introduce a config property to the crate AST node
...
This represents the compilation environment, defined as AST meta_items, Used
for driving conditional compilation and will eventually replace the
environment used by the parser for the current conditional compilation scheme.
Issue #489
2011-06-30 10:06:25 -07:00
Brian Anderson
78a82b9fd1
Switch rustc's crate metadata to use the link attribute
2011-06-30 10:03:07 -07:00
Marijn Haverbeke
86f16b90cd
Support type parameters in resources
...
Some rather dodgy code was added to trans in the process. I'd love to
discuss it with someone who knows more about types during translation.
2011-06-30 18:36:12 +02:00
Marijn Haverbeke
31ec26d46a
Make calling resource destructors work cross-crate
...
Tydescs are currently re-created for each compilation unit (and I
guess for structural types, they have to be, though the duplication
still bothers me). This means a destructor can not be inlined in the
drop glue for a resource type, since other crates don't have access to
the destructor body.
Destructors are now compiled as separate functions with an external
symbol that can be looked up in the crate (under the resource type's
def_id), and called from the drop glue.
2011-06-30 18:36:12 +02:00
Rafael Ávila de Espíndola
5b7ce80ffa
Second try to remove -lssp.
2011-06-30 08:55:25 -04:00
Graydon Hoare
afabde19dc
More fixes to fast-check.
2011-06-29 17:54:05 -07:00
Graydon Hoare
c796a8f24d
Re-enable tidy (it was broken) and fix various non-tidy things.
2011-06-29 15:14:55 -07:00
Brian Anderson
190644063e
Be more strategic about linking to rust crates
...
Instead of linking directly to the rust crate, try to figure out the location
and name of the library from the file name, then call gcc with appropriate -L,
-l flags. This will allow dynamic linking to be more forgiving about where it
loads the library from at runtime - currently a stage3 compiler can't run
correctly from the stage0 directory. Only tested on Linux. Fingers crossed.
2011-06-29 14:35:39 -07:00
Brian Anderson
e130e7b598
Display an error when linking fails
2011-06-29 14:35:39 -07:00
Brian Anderson
e60cb9197f
Add session.note method
2011-06-29 14:35:39 -07:00
Brian Anderson
4ffa5ddf76
session.err shouldn't take a span
2011-06-29 14:35:39 -07:00
Tim Chevalier
76b755f9ad
Remove workaround for a compiler bug that, I guess, got fixed
2011-06-29 14:28:03 -07:00
Tim Chevalier
88447a47c0
Eliminate the --check-claims compiler flag
...
The option can only be toggled at runtime now.
2011-06-29 14:28:02 -07:00
Tim Chevalier
1ba85932b1
Add a runtime flag to enable/disable claims en masse
...
Now, if the environment variable CHECK_CLAIMS is set, then all
claims turn into checks. Otherwise, claims are no-ops.
2011-06-29 14:28:02 -07:00
Brian Anderson
d4b5b48e0a
Correctly locate the crate's version from the link attribute
2011-06-29 14:21:39 -07:00
Brian Anderson
29afe1a518
Write metadata for sythesized name/vers items to the crate's link attr
...
If the crate doesn't specify it's name or version, the defaults need to be
exported in the crate metadata
2011-06-29 14:21:39 -07:00
Brian Anderson
308bc31f24
Encapsulate more crate meta calculations
2011-06-29 14:21:39 -07:00
Brian Anderson
325f46da06
Move the calculation of the crate name, vers and cmh to a single function
2011-06-29 14:21:39 -07:00
Graydon Hoare
5b2c17fba5
Fix resource encoding bugs.
2011-06-29 12:14:29 -07:00
Patrick Walton
b18cefdfd7
rustc: Fix a leak that resulted from copying a structural interior type containing interior vectors. Add a test case.
2011-06-29 12:16:07 -07:00
Rafael Ávila de Espíndola
54f618128e
Revert ""Try" push without -lssp on windows to see what needs it."
...
This reverts commit 47b3e087e9
.
2011-06-29 13:25:52 -04:00
Patrick Walton
bbd0d58955
rustc: Unbreak self assignment
2011-06-29 10:22:53 -07:00
Rafael Ávila de Espíndola
47b3e087e9
"Try" push without -lssp on windows to see what needs it.
2011-06-29 12:56:54 -04:00
Michael Sullivan
1d05718c2d
Extend visit to use visit_fn to visit fn expressions.
2011-06-29 09:04:00 -07:00
Brian Anderson
7c500fc0a0
Replace common::new_seq_hash with an adapter around std::smallintmap
...
It would be better to either convert ast_map to use smallintmap or make
smallintmap and hashmap follow the same interface, but I don't feel up to
it just now. Closes #585 .
2011-06-28 19:48:33 -07:00
Lindsey Kuper
7b5d34aa9a
Comments and cleanup.
2011-06-28 19:06:44 -07:00