| Age | Commit message (Collapse) | Author | Lines |
|
|
|
|
|
It is now no longer needed to have a ty::ctxt to get at the contents
of a ty::t. The straight-forward approach of doing this, simply making
ty::t a box type, unfortunately killed our compiler performance (~15%
slower) through refcounting cost. Thus, this patch now represents
ty::t as an unsafe pointer, assuming that the ty::ctxt, which holds
these boxes alive, outlives any uses of the ty::t values. In the
current compiler this trivially holds, but it is does of course add a
new potential pitfall.
ty::get takes a ty::t and returns a boxed representation of the type.
I've changed calls to ty::struct(X) to do ty::get(X).struct. Type
structs are full of vectors, and copying them every time we wanted to
access them was a bit of a cost.
|
|
It was being used as a clumsy synonym of ty_fn.
|
|
Does what it says on the tin.
The next commit will remove support for this syntax.
|
|
Rather, it is now a struct where properties like opts are accessed
directly, and the error-reporting methods are part of a static impl
(with the same name as the type).
|
|
Removes some more code duplication.
|
|
|
|
#debug.
|
|
|
|
|
|
|
|
|
|
|
|
This makes it possible to omit the semicolon after the block, and will
cause the pretty-printer to properly print such calls (if
pretty-printing of blocks wasn't so broken). Block calls (with the
block outside of the parentheses) can now only occur at statement
level, and their value can not be used. When calling a block-style
function that returns a useful value, the block must be put insde the
parentheses.
Issue #1054
|
|
|
|
This was working by just skipping an AST node instead of doing the advertised
check. I can't find a test case for it, but this is more correct.
|
|
Issue #1038
|
|
I'm going to add further checks unrelated to unsafe.
Issue #1038
|