John Clements
ec0a64def5
memoization for resolve
2013-09-06 13:35:12 -07:00
John Clements
0954e66442
uncomment mtwt_resolve calls
2013-09-06 13:35:11 -07:00
John Clements
d9ba61c786
ident->name in NamedField, elsewhere
2013-09-06 13:35:11 -07:00
John Clements
9ab2cfdae6
added utility function
2013-09-06 13:35:11 -07:00
John Clements
bc2a44daf1
fix one remaining token comparison, refactor token comparison to avoid == check
2013-09-06 13:35:11 -07:00
John Clements
e29d25338d
remove dead code
2013-09-06 13:35:11 -07:00
John Clements
b9bb4abcb6
capturing macros now implemented
2013-09-06 13:35:11 -07:00
John Clements
2c51e262f3
add fold_mac clause to fun_to_ctxt_folder
2013-09-06 13:35:11 -07:00
John Clements
dfa04cecca
add fold_mac field to fold.rs
2013-09-06 13:35:10 -07:00
John Clements
3261b6eece
WIP: adding context to macros
2013-09-06 13:35:10 -07:00
John Clements
34f31e2961
rework fold so that fold_tts takes an ast_fold rather than a thunk, stop using closures in ident traversal
2013-09-06 13:35:10 -07:00
John Clements
09e6dda4f2
add temporarily unused ctxt field to mac_invoc_tt
2013-09-06 13:35:10 -07:00
John Clements
3621c674cc
comments
2013-09-06 13:35:10 -07:00
John Clements
0c31c930ff
add test case for macro token comparison
2013-09-06 13:35:10 -07:00
John Clements
963dab5dcb
marking on both input and output from macros. nice shiny new test case framework
2013-09-06 13:35:10 -07:00
John Clements
f68aa459ea
added IterBytes for 4-tuples
2013-09-06 13:35:10 -07:00
John Clements
58e7598c2e
added gensym_copy mechanism to ensure sharing of pointers in the interner
...
this makes comparisons constant-time, and enables spelling-comparison
of identifiers, crucial in many parts of resolve.
2013-09-06 13:35:10 -07:00
John Clements
9d33001a90
added test for ptr_eq on fresh_name-generated idents
2013-09-06 13:35:09 -07:00
John Clements
cd4e637ae4
fixed bug in fold's traversal of cast exprs
2013-09-06 13:35:09 -07:00
John Clements
d876a721d2
new test that uncovers bug in fold
2013-09-06 13:35:09 -07:00
John Clements
015ba31c02
test case support fns, remove debugging test case
2013-09-06 13:35:09 -07:00
John Clements
62fee04ae9
test case work
2013-09-06 13:35:09 -07:00
John Clements
1f8e856430
re-add lost call to expand_block_elts
2013-09-06 13:35:09 -07:00
John Clements
9071ac60b6
re-add debug version
2013-09-06 13:35:09 -07:00
John Clements
7a9af098f0
test case work
2013-09-06 13:35:09 -07:00
John Clements
f5ab867119
use empty_ctxt to simplify downstream
2013-09-06 13:35:09 -07:00
John Clements
a666ddc135
make comparison of special_idents non-hygienic
2013-09-06 13:35:08 -07:00
John Clements
3965725d51
comments
2013-09-06 13:35:08 -07:00
John Clements
d1c01734f3
drop back to a simple gensym approach for fresh-name.
...
this is necessary so that the new idents are connected to the original strings.
this is important both for error messages, and so that top-level refs get connected
to the right things.
2013-09-06 13:35:08 -07:00
John Clements
7bf75adfd9
added FIXME comment
2013-09-06 13:35:08 -07:00
John Clements
9de40dfc87
remove FIXME #2888 , now bug is fixed
2013-09-06 13:35:08 -07:00
John Clements
98a6cbdba3
comments only
2013-09-06 13:35:08 -07:00
John Clements
91d3c36430
adding test case to check marking/unmarking
2013-09-06 13:35:08 -07:00
John Clements
b7c0512b27
refactor so tt_fold only requires an ident->ident fn
2013-09-06 13:35:08 -07:00
John Clements
93337f0daa
separate ItemDecorator from ItemDecorator
2013-09-06 13:35:08 -07:00
John Clements
431ede40df
removed unneccessary SyntaxExpander structs
2013-09-06 13:35:07 -07:00
John Clements
d8276e75f0
comments in ast.rs
2013-09-06 13:35:07 -07:00
John Clements
6c6d053b01
renaming test cases
2013-09-06 13:35:07 -07:00
John Clements
2f6498f7b4
flip the switch on let renaming
2013-09-06 13:35:07 -07:00
John Clements
fb82283a98
resolve test case
...
resolve must ignore syntax context when comparing module names
2013-09-06 13:35:07 -07:00
John Clements
7668fb2c75
make ifn macro non-capturing
2013-09-06 13:35:07 -07:00
John Clements
39ca2dbbc5
update librustc to use name comparison in most cases, and mtwt_resolve comparison in others
2013-09-06 13:35:07 -07:00
John Clements
71e72ee862
one-line comment
2013-09-06 13:35:06 -07:00
John Clements
fa6c981606
add hygiene support fns, move them around.
...
also adds test cases
2013-09-06 13:35:06 -07:00
John Clements
7fd5bdcb9a
try removing basically dead code in resolve
2013-09-06 13:35:06 -07:00
John Clements
72ee6af4d4
compare macro tokens hygienically (commented out)
2013-09-06 13:35:06 -07:00
John Clements
9ec1623d57
ident->name
2013-09-06 13:35:06 -07:00
John Clements
e1734f6d38
rename resolve to mtwt_resolve
2013-09-06 13:35:06 -07:00
John Clements
acad9f35b3
commenting out special Eq implementation for now
...
See the comments for details on why I'm leaving this code
in, though commented out.
2013-09-06 13:34:58 -07:00
John Clements
77c96d754e
disallow ident equality checks when contexts are not equal
2013-09-06 09:28:45 -07:00