aboutsummaryrefslogtreecommitdiff
path: root/src/comp/middle/ty.rs
Commit message (Collapse)AuthorAgeFilesLines
* Continued sketching out code for checking states against preconditions.Tim Chevalier2011-04-061-1/+1
| | | | | | | | | It's still sketchy. I added a typestate annotation field to statements tagged stmt_decl or stmt_expr, because a stmt_decl statement has a typestate that's different from that of its child node. This necessitated trivial changes to a bunch of other files all over to the compiler. I also added a few small standard library functions, some of which I didn't actually end up using but which I thought might be useful anyway.
* Last pieces of self-call support.Lindsey Kuper2011-04-051-0/+6
| | | | | | | | The last few pieces of the hack that lets us use trans.trans_call() to translate self-calls, plus a fix for the parser buy that was preventing self-call expressions from getting past parsing. test/run-pass/obj-self.rs works now (as in it actually prints "hi!" twice!).
* Make box prefix operator and box type carry mutability flag.Graydon Hoare2011-04-041-2/+2
|
* Started adding support for typestate checking.Tim Chevalier2011-04-011-7/+7
| | | | | | | | | | | | | | | I added a new field to the ast "ann" type for typestate information. Currently, the field contains a record of a precondition bit vector and postcondition vector, but I tried to structure things so as to make it easy to change the representation of the typestate annotation type. I also had to add annotations to some syntactic forms that didn't have them before (fail, ret, be...), with all the boilerplate changes that that would imply. The main call to the typestate_check entry point is commented out and the actual pre-postcondition algorithm only has a few cases implemented, though the overall AST traversal is there. The rest of the typestate algorithm isn't implemented yet.
* rustc: Add a type annotation to tag itemsPatrick Walton2011-03-311-7/+2
|
* rustc: Make tag_ty_params() and substitute_ty_params() take def ids instead ↵Patrick Walton2011-03-311-3/+3
| | | | of ty_params, and to check in external crates
* rustc: Thread an item-to-type mapping throughout the typechecking and ↵Patrick Walton2011-03-301-0/+55
| | | | translation phases
* Beginnings of support for magical self prefix; nothing profound happening yet.Lindsey Kuper2011-03-291-0/+1
|
* Add expr_spawn, spawn parsing, folding, typechecking, ty_taskBrian Anderson2011-03-281-0/+3
|
* Another go at changing compile-command, this time using RBUILD env var.Graydon Hoare2011-03-251-1/+1
|
* Revert "Bulk-edit compile commands in emacs chatter to point to assumed ↵Graydon Hoare2011-03-251-1/+1
| | | | | | build/ dir off src root." This reverts commit 846f2e2ba994268725f38c36fa12f1a09f21615c.
* Bulk-edit compile commands in emacs chatter to point to assumed build/ dir ↵Graydon Hoare2011-03-251-1/+1
| | | | off src root.
* rustc: Create a crate metadata cachePatrick Walton2011-03-251-5/+1
|
* Support for shorter error messages that are aware of objects' cnames.Lindsey Kuper2011-03-221-6/+20
|
* Add codegen for ports and chansBrian Anderson2011-03-221-0/+6
|
* Make floating-point operations work (neg, add, sub, mul, div, rem,Tim Chevalier2011-03-211-0/+5
| | | | and comparison ops.)
* Started adding support for floating-point type, floating-point literals, and ↵Tim Chevalier2011-03-211-0/+3
| | | | logging of floats. Other operations on float probably don't work yet.
* Modify native_item_fn to handle trailing linkage names that differ from the ↵Graydon Hoare2011-03-201-1/+1
| | | | item name (used in win32 build of std.dll)
* rustc: Implement "mutable?". Add a test case and XFAIL it in rustboot for now.Patrick Walton2011-03-181-23/+60
|
* rustc: Switch mutability from being a type constructor to a field annotationPatrick Walton2011-03-171-58/+100
|
* rustc: Correctly report mutability when stringifying typesPatrick Walton2011-03-171-24/+24
|
* rustc: Consider native types to be scalarPatrick Walton2011-03-171-0/+1
|
* rustc: Sort object methods when parsing textual types in the ASTPatrick Walton2011-03-171-0/+8
|
* Switch all vases of vec += elt to vec += vec. Prohibit former in rustboot. ↵Graydon Hoare2011-03-161-5/+4
| | | | Tweak std lib vec fns in process.
* Merge remote branch 'brson/recursive-elseif'Graydon Hoare2011-03-141-1/+1
|\
| * Merge branch 'master' into recursive-elseifBrian Anderson2011-03-131-83/+12
| |\ | | | | | | | | | | | | | | | Conflicts: src/comp/middle/typeck.rs
| * \ Merge branch 'master' into recursive-elseifBrian Anderson2011-03-071-190/+489
| |\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/Makefile src/comp/front/ast.rs src/comp/front/parser.rs src/comp/middle/fold.rs src/comp/middle/trans.rs
* | | | Add ty_port and ty_chan to expr_ty functionBrian Anderson2011-03-141-11/+13
| | | |
* | | | Add folding and type checking for ports and chansBrian Anderson2011-03-141-0/+54
| |_|/ |/| |
* | | Implement deep structural comparison through boxes and sequences.Graydon Hoare2011-03-091-0/+8
| | |
* | | Have the pretty-printer take a writer stream as argumentMarijn Haverbeke2011-03-091-80/+1
| | | | | | | | | | | | | | | It now uses a string writer to also fill in for middle.ty.ast_ty_to_str
* | | rustc: Make ann_to_type() fail if the node has no type. Miraculously, no ↵Patrick Walton2011-03-081-2/+2
| | | | | | | | | | | | test cases fail.
* | | rustc: Add a slot for explicit type parameter instantations to the ↵Patrick Walton2011-03-081-1/+1
| |/ |/| | | | | typechecker's AST annotation
* | Add a pretty-printerMarijn Haverbeke2011-03-071-0/+2
| | | | | | | | | | Adds a -pp option to the compiler which will cause it to simply pretty-print the given file.
* | Construct the wrappers to native functions. Hello world now works :-)Rafael Ávila de Espíndola2011-03-071-0/+7
| |
* | Remove typestate workaroundsBrian Anderson2011-03-061-29/+13
| |
* | Make ret and fail stmts have 0 out-edges, Closes #250.Graydon Hoare2011-03-051-1/+1
| |
* | Assortment of additional work on vec-append. Not done yet.Graydon Hoare2011-03-031-0/+9
| |
* | Revert "rustc: Add support for folding over tag types" as it's unnecessary. ↵Patrick Walton2011-03-031-9/+1
| | | | | | | | Oops.
* | rustc: Add support for folding over tag typesPatrick Walton2011-03-031-1/+9
| |
* | Handle native types in calls.Rafael Ávila de Espíndola2011-03-031-0/+10
| |
* | Sketch out some more pieces of vec-append.Graydon Hoare2011-03-021-0/+10
| |
* | Add fold, typecheck and trans for expr_extBrian Anderson2011-03-021-0/+1
| |
* | rustc: Mark tags that have subtypes with dynamic size as dynamicPatrick Walton2011-02-281-0/+7
| |
* | rustc: Make the tag info table keyed by both tag ID and type parameter. Also ↵Patrick Walton2011-02-251-2/+3
| | | | | | | | fix a bug that was causing all tags to compare equal.
* | Pass the abi of native functions all the way to codegen.Rafael Ávila de Espíndola2011-02-251-11/+20
| |
* | rustc: Perform type parameter substitutions when emitting glue for generic ↵Patrick Walton2011-02-241-1/+42
| | | | | | | | tags. Un-XFAIL generic-tag.rs.
* | Implement type descriptor binding. Un-XFAIL test/run-pass/generic-bind.rs.Patrick Walton2011-02-231-0/+3
| |
* | Handle the new ty_native_fn in type check.Rafael Ávila de Espíndola2011-02-231-20/+87
| |
* | Make a tag for iterness / fnness, teach many places about it.Graydon Hoare2011-02-181-107/+136
| |