dd76827ca5ec408035f1deea91793f102d71487a of emscripten
RSTODO, RSNOTE
why does panic in match arms in rust not type check as *, whereas it does for functions? see setBlockContent
DEBUG=1 && cargo build $([ $DEBUG = 1 ] || echo --release) --features profiling && cp ./target/$([ $DEBUG = 1 ] && echo debug || echo release)/ayzim-opt ~/Desktop/emscripten/
cargo build --release --target x86_64-unknown-linux-musl
- make sure to always assert that the last element was/wasn't present (or add
a note that it's not appropriate) when inserting or deleting from sets and
maps
- explicitly call .iter/.iter_mut/.into_iter
- make sure all traverse* closures explicitly give argument types
- mast may not be needed if you use **
- review uses of .. - should only be used when matching a number of different
ast types in order to ignore them
- consider turning all matches on _ to explicit matches of ast variations
- be wary about using &IString, they're needlessly inefficient
- if not indenting inside a traverse*, leave a blank line at beginning and end
of the closure
- make sure to never use .X tuple indexing when doing .getBlah
- convert all unwraps to expect and add details to panics
- check for &* - the * isn't needed if rust knows the target type
- consider mem::replace to be must_use - just use *x = y otherwise (maybe clippy should warn)
- rewrite ayzim-macros to use macros 1.1?
LATER
- not sure how well tested emit and receivejson are
- not being able to chain conditions onto the beginning or end of if let lines
is rubbish, there's an issue fr it somewhere
- ensure no semicolons except where necessary
- consistently name the enum members of the ast enum
- use vecs rather than astvecs where it doesn't increase the size of the
astvalue enum
- try and minimise astnode usage - should mostly be &(mut)? AstValue
- think of some nice way to get rid of mast entirely
- mem::swaps are interesting because they can either swap the boxes (pointers)
or the actual AstValues. could this distinction harm locality
- pattern matches should possibly unbox, so that future accesses only have to
dereference once
- is it faster to use functions rather than IStringSets?
- type aliases for ordered and unordered maps rather than using hashmap and btreemap directly