Patrick Walton
|
3f9d5dab5b
|
rustc: Run the verifier over LLVM modules before writing them out
|
2010-12-06 17:17:49 -08:00 |
|
Patrick Walton
|
a1c7d19836
|
rustc: Translate tag constructors. Can't call them at the moment due to lack of alias args, though.
|
2010-12-06 16:50:24 -08:00 |
|
Patrick Walton
|
fb05d9184b
|
rustc: Make copy_args_to_allocas not insist on a function type so it's easier to make it work with tag constructors
|
2010-12-06 11:22:08 -08:00 |
|
Graydon Hoare
|
9f6a630519
|
Drop rec and tup alloca temporariles on block exit.
|
2010-12-03 18:43:40 -08:00 |
|
Patrick Walton
|
b4d9754347
|
rustc: Make new_fn_ctxt and copy_args_to_allocas receive a list of args rather than an AST fn, so we can use it for tag constructors
|
2010-12-03 18:20:41 -08:00 |
|
Patrick Walton
|
2e119698b7
|
rustc: Add def ids to variant arguments so we can turn them into function arguments later
|
2010-12-03 18:13:15 -08:00 |
|
Graydon Hoare
|
0c19c8e18f
|
Parse layer and effect annotations.
|
2010-12-03 18:04:18 -08:00 |
|
Patrick Walton
|
afd3af9bb5
|
rustc: Remove LLVM unions and represent tags as (discriminant, byte blob) pairs
|
2010-12-03 16:55:59 -08:00 |
|
Patrick Walton
|
f371dc613a
|
rustc: Set data layout and target triple
|
2010-12-03 13:52:54 -08:00 |
|
Graydon Hoare
|
aeef8cee29
|
Add load_non_structural and use it.
|
2010-12-03 13:03:07 -08:00 |
|
Patrick Walton
|
5347cac92d
|
rustc: Handle n-ary tag constructors in iter_structural_ty (which lets us process their refcounts correctly)
|
2010-12-03 12:35:49 -08:00 |
|
Graydon Hoare
|
4316df6323
|
Trim whitespace.
|
2010-12-03 12:26:27 -08:00 |
|
Graydon Hoare
|
a98b2ebb4a
|
Change 'stratum' to the friendlier term 'layer'.
|
2010-12-03 12:15:32 -08:00 |
|
Patrick Walton
|
7bdb93266d
|
rustc: Translate nullary tag constructors
|
2010-12-03 10:24:55 -08:00 |
|
Graydon Hoare
|
d922b0ad9c
|
Drop slots on the way out of scopes. Un-XFAIL box.rs.
|
2010-12-02 19:44:24 -08:00 |
|
Graydon Hoare
|
966cfed07c
|
Modify block ctxt / cleanup handling to only occur on scope blocks.
|
2010-12-02 19:12:34 -08:00 |
|
Graydon Hoare
|
1e9c8b923d
|
Implement translation for deref unop.
|
2010-12-02 19:12:09 -08:00 |
|
Graydon Hoare
|
97247bbb53
|
Change order of basic blocks in copy_ty, makes nicer disassembly.
|
2010-12-02 18:33:11 -08:00 |
|
Graydon Hoare
|
f69b4417e6
|
Don't drop context returned from decl-init call to copy_ty.
|
2010-12-02 18:32:43 -08:00 |
|
Graydon Hoare
|
0f41f5a8f9
|
Improve translations of unary box operator and drop_ty on boxes.
|
2010-12-02 17:43:24 -08:00 |
|
Patrick Walton
|
e233978891
|
rustc: Change fn_names and fn_ids to item_names and item_ids in trans, since we're soon to be storing tags in there too
|
2010-12-02 17:30:07 -08:00 |
|
Patrick Walton
|
49b3cd700e
|
rustc: Remove the premature optimization for nullary tag constructors, since it'll be no longer necessary once LLVM gets a unit type
|
2010-12-02 17:18:06 -08:00 |
|
Graydon Hoare
|
a439f6ec68
|
Add ty_boxed to typeck.type_is_boxed.
|
2010-12-02 15:56:44 -08:00 |
|
Graydon Hoare
|
cdcab742a7
|
Fix fold bug on expr_unary.
|
2010-12-02 15:54:45 -08:00 |
|
Graydon Hoare
|
df5f8f3e37
|
Add minimal test for box/deref.
|
2010-12-02 15:02:17 -08:00 |
|
Graydon Hoare
|
de9fc72cb4
|
Add test for non-exhaustive match failure.
|
2010-12-02 14:50:00 -08:00 |
|
Graydon Hoare
|
b79de6b76c
|
Typecheck the box and deref unops properly.
|
2010-12-02 14:38:32 -08:00 |
|
Patrick Walton
|
376b35e618
|
rustc: Remove the overly complex variant_indices and n_ary_variant_indices tables
|
2010-12-02 11:00:10 -08:00 |
|
Patrick Walton
|
eeecc8d061
|
rustc: Add stub support for tag constructors in trans
|
2010-12-01 19:03:47 -08:00 |
|
Graydon Hoare
|
98a63bd1f9
|
Add code to fail on non-exhaustive alt matching. Fix all cases this picked up in rustc.
|
2010-12-01 17:09:02 -08:00 |
|
Patrick Walton
|
fd600bad46
|
rustc: Annotate variants with their types. This may be useful for trans!
|
2010-12-01 15:27:38 -08:00 |
|
Patrick Walton
|
cd97b9d965
|
rustc: Typecheck tag constructors
|
2010-12-01 11:39:03 -08:00 |
|
Patrick Walton
|
67a616340d
|
rustc: Fix segfault due to nonexhaustive match when using tags
|
2010-12-01 10:53:40 -08:00 |
|
Patrick Walton
|
42282a25c0
|
rustc: Resolve tag variant names
|
2010-12-01 10:19:38 -08:00 |
|
Graydon Hoare
|
4dc98e54d1
|
Make the ugly detailed leak-spray on rustc failures optional.
|
2010-11-30 17:10:51 -08:00 |
|
Graydon Hoare
|
45043374ff
|
Tidy up structural types for rec, tup AST and typeck nodes.
|
2010-11-30 16:32:00 -08:00 |
|
Patrick Walton
|
567a45cc70
|
rustc: Add def ids to variants
|
2010-11-30 12:32:20 -08:00 |
|
Graydon Hoare
|
25b973df1b
|
Finish support for typechecking and translating records. Un-XFAIL rec.rs.
|
2010-11-30 10:39:35 -08:00 |
|
Graydon Hoare
|
9c426521ee
|
Wrap long lines.
|
2010-11-29 17:53:35 -08:00 |
|
Graydon Hoare
|
a94046f5d2
|
Teach typechecker about record types.
|
2010-11-29 17:42:53 -08:00 |
|
Patrick Walton
|
6c5a05b819
|
rustc: Implement the block syntax discussed on the mailing list
|
2010-11-29 17:11:41 -08:00 |
|
Graydon Hoare
|
6c4e975099
|
Teach fold about ty_rec.
|
2010-11-29 16:09:46 -08:00 |
|
Graydon Hoare
|
e6b7f76385
|
Add ty_rec and parse it.
|
2010-11-29 15:42:09 -08:00 |
|
Graydon Hoare
|
3e08171fc2
|
Change mutability into a type constructor.
|
2010-11-29 15:29:55 -08:00 |
|
Graydon Hoare
|
386f363cfe
|
Change from bool to tag ast.mutability.
|
2010-11-29 14:18:26 -08:00 |
|
Graydon Hoare
|
38846e39c4
|
Add ast.ty_mutable.
|
2010-11-29 12:29:57 -08:00 |
|
Graydon Hoare
|
20b11c832c
|
Add mut field to typeck.ty.
|
2010-11-29 12:13:38 -08:00 |
|
Graydon Hoare
|
7be7c23b6b
|
Copy args to allocas, change llargs lookups to 'in mem'. Un-XFAIL tup.rs.
|
2010-11-26 17:47:27 -08:00 |
|
Graydon Hoare
|
d7ce2425c9
|
Load structural values through pointer before passing structs as args.
|
2010-11-26 16:08:10 -08:00 |
|
Graydon Hoare
|
9f56b0061c
|
Pass exprs by @, always treat structural types by pointer, move path and name into trans_lval.
|
2010-11-26 15:54:04 -08:00 |
|
Graydon Hoare
|
1600974a3a
|
Avoid segfault due to fallthrough in base case of incr_all_refcounts. We could use a typestate checker in rustc, any time now.
|
2010-11-26 13:03:56 -08:00 |
|
Graydon Hoare
|
7e01aba12d
|
Declare the memcpy intrinsics properly.
|
2010-11-26 13:02:48 -08:00 |
|
Graydon Hoare
|
3fd3270845
|
Return memcpy src rather than falling through and failing.
|
2010-11-25 18:28:15 -08:00 |
|
Graydon Hoare
|
a95dbdef70
|
Cast memcpy args to correct types.
|
2010-11-25 18:13:20 -08:00 |
|
Graydon Hoare
|
9b3182a99d
|
Add lookup checks and intrinsics table to trans.
|
2010-11-25 17:45:26 -08:00 |
|
Graydon Hoare
|
7e2f205866
|
Add missed case to typeck.ast_ty_to_ty, plus faux exhaustiveness check.
|
2010-11-25 17:06:36 -08:00 |
|
Graydon Hoare
|
416d9bc0fd
|
Fix typo in numeric-label-parsing loop.
|
2010-11-25 16:53:17 -08:00 |
|
Graydon Hoare
|
f0abe8f568
|
Translate field expressions.
|
2010-11-25 16:40:24 -08:00 |
|
Graydon Hoare
|
5678f5aa56
|
Typecheck field expressions.
|
2010-11-25 16:40:03 -08:00 |
|
Graydon Hoare
|
092af6fb76
|
Typecheck tup expressions.
|
2010-11-25 14:44:04 -08:00 |
|
Graydon Hoare
|
cffdb66aa4
|
Translate tuple-expressions.
|
2010-11-24 18:11:11 -08:00 |
|
Patrick Walton
|
78ec07790a
|
rustc: Assign definition IDs to type params
|
2010-11-24 18:01:20 -08:00 |
|
Patrick Walton
|
9769b61226
|
rustc: Parse type-parametric typedefs
|
2010-11-24 17:36:22 -08:00 |
|
Patrick Walton
|
98e8c2ef21
|
rustc: Parse type-parametric tags
|
2010-11-24 17:17:42 -08:00 |
|
Graydon Hoare
|
f809375b16
|
Sketch out type-directed structural drop and copy, including vector types.
|
2010-11-24 16:56:01 -08:00 |
|
Graydon Hoare
|
96540ef0bb
|
move expr_call translation into helper function.
|
2010-11-24 16:56:01 -08:00 |
|
Graydon Hoare
|
e2f9f746ea
|
Move expr_cast translation into helper function.
|
2010-11-24 16:56:01 -08:00 |
|
Patrick Walton
|
c1916adc7e
|
rustc: Parse type-parametric functions
|
2010-11-24 16:52:49 -08:00 |
|
Patrick Walton
|
80d099c59a
|
rustc: Don't require a semicolon after an "alt" statement
|
2010-11-24 16:29:44 -08:00 |
|
Patrick Walton
|
f075b10af2
|
rustc: Add patterns to fold
|
2010-11-24 15:45:59 -08:00 |
|
Patrick Walton
|
756880a5f5
|
rustc: Parse simple patterns
|
2010-11-24 14:42:01 -08:00 |
|
Patrick Walton
|
5d72dae1d1
|
rustc: Parse tag items. Currently segfaults in copy glue.
|
2010-11-24 11:36:35 -08:00 |
|
Patrick Walton
|
f55f46af64
|
rustc: Typecheck whiles and do-whiles. Add a workaround to complex.rs pending a solution to the one-armed-if problem.
|
2010-11-23 17:02:08 -08:00 |
|
Patrick Walton
|
4208352527
|
rustc: As an experiment, swap the expected/actual types when checking function arguments. Produces better diagnostics for arg-type-mismatch.rs.
|
2010-11-23 10:25:20 -08:00 |
|
Graydon Hoare
|
f2a7e712d3
|
Remove warning about non-void expr stmts.
|
2010-11-22 18:03:27 -08:00 |
|
Patrick Walton
|
c20ea9e60a
|
rustc: Un-XFAIL compile-fail/arg-type-mismatch.rs.
|
2010-11-22 17:56:45 -08:00 |
|
Graydon Hoare
|
e05d7c3ac1
|
Support mach types in rustc, enable 5 more tests.
|
2010-11-22 17:41:32 -08:00 |
|
Patrick Walton
|
3e01b2d529
|
rustc: "Expected" and "actual" were swapped. Also un-XFAIL compile-fail/arg-count-mismatch.rs for good measure.
|
2010-11-22 17:38:23 -08:00 |
|
Patrick Walton
|
c0741c13ab
|
Remove the global bindings table in the typechecker
|
2010-11-22 17:14:18 -08:00 |
|
Graydon Hoare
|
d3cb25d5d1
|
Check and translate 'as' cast-operator, lower target-specific types, reindent rustc.rs, enable uint test.
|
2010-11-22 16:27:00 -08:00 |
|
Graydon Hoare
|
c262543d3b
|
Fix type disagreements in lowering typeck.ty to llvm TypeRefs, enable complex.rs test.
|
2010-11-22 14:28:05 -08:00 |
|
Graydon Hoare
|
1090c5e69c
|
Check for structural equality rather than structural-and-cname equality.
|
2010-11-22 13:24:53 -08:00 |
|
Graydon Hoare
|
6fcf55347e
|
Resolve the easy case of type paths.
|
2010-11-22 13:24:53 -08:00 |
|
Graydon Hoare
|
fdac6ffa7c
|
Accumulate type paths as we parse, rather than throwing them away.
|
2010-11-22 13:24:53 -08:00 |
|
Patrick Walton
|
0847ff7d42
|
rustc: "expectied" -> "expected" in parser.rs; also say what was found
|
2010-11-22 11:43:25 -08:00 |
|
Graydon Hoare
|
ccc21fd4da
|
Fix lexer bug, enable 5 more tests on rustc.
|
2010-11-22 11:35:00 -08:00 |
|
Graydon Hoare
|
3ba6736383
|
More typeck hacking, check if and call exprs, enable fact and deep tests.
|
2010-11-21 12:06:09 -08:00 |
|
Graydon Hoare
|
5955e23343
|
Typecheck assignment exprs, redo decl checking, propagate ty_vars. Enable another test.
|
2010-11-21 01:16:16 -08:00 |
|
Graydon Hoare
|
79a3811ab8
|
Typecheck binary, unary and name expressions. Re-enable 3 more tests.
|
2010-11-20 23:00:52 -08:00 |
|
Graydon Hoare
|
77670e84de
|
Fix bug in llvm type signature of function items; enable three more tests.
|
2010-11-20 22:05:17 -08:00 |
|
Graydon Hoare
|
eaf9df2dc3
|
Remove dead code.
|
2010-11-20 22:04:48 -08:00 |
|
Graydon Hoare
|
e731520be5
|
Add helper function to double-check non-null types.
|
2010-11-20 22:04:34 -08:00 |
|
Graydon Hoare
|
244c59ac20
|
Clean up typechecker file, disable all tests that fail under typechecker.
|
2010-11-19 20:46:04 -08:00 |
|
Graydon Hoare
|
6d92ca64a7
|
Translate typeck.ty_fn to a TypeRef. Can compile int.rs test now.
|
2010-11-19 20:08:57 -08:00 |
|
Patrick Walton
|
c00bda539d
|
rustc: First stab at a typechecker
|
2010-11-19 17:50:45 -08:00 |
|
Patrick Walton
|
c410d68529
|
rustboot: Say when a binary operator is unimplemented rather than asserting in trans
|
2010-11-19 17:41:44 -08:00 |
|
Graydon Hoare
|
3352fab59b
|
Parse type items, nil types, named types. Fix some parser bugs. Enable arith-0 and arith-2 tests.
|
2010-11-19 16:34:47 -08:00 |
|
Graydon Hoare
|
44a0c7225d
|
Isolate while-header bug to minimal testcase, fix in rustboot, remove workaround in rustc.
|
2010-11-19 14:59:58 -08:00 |
|
Graydon Hoare
|
d311719a75
|
Enable more now-passing tests for rustc (including function calls).
|
2010-11-19 11:04:10 -08:00 |
|
Graydon Hoare
|
6cecc93e8d
|
Disable LLVM backend in rustboot; more trouble than it's worth at this point.
|
2010-11-19 10:45:24 -08:00 |
|