summaryrefslogtreecommitdiff
path: root/parse/export.c
AgeCommit message (Collapse)Author
2019-02-26Accept that `file` isn't a node.Ori Bernstein
Shrink node sizes, simplify code a bit.
2019-02-26Add support for `__fini__` functions.Ori Bernstein
2018-01-17Hack in seqaux.Ori Bernstein
It's not perfect, and the right solution would be to keep a trait->aux mapping, but for now it works good enough.
2018-01-14Fix serializing trait specs in usefiles.Ori Bernstein
2017-11-05Accept the globalness of file.Ori Bernstein
2017-10-31Loop uniformly in export.Ori Bernstein
2017-10-29Cosmetic tweakOri Bernstein
2017-10-29Fix traits when exported cross-namespaces.Ori Bernstein
2017-10-23Remove debug printf.Ori Bernstein
2017-10-23Propagate hiddenness properly across usefile merges.Ori Bernstein
2017-09-02Fix export tagging of traits.Ori Bernstein
Sometimes, traits would not get tagged for export transitively.
2017-08-22Remove dead code/comments.Ori Bernstein
2017-08-20Fix trait shit.Ori Bernstein
2017-07-09Style(9)-ify.Ori Bernstein
2017-07-03Specialize impl declarations on impl type in addition to decl typeMichael Forney
This allows multiple specializations of a declarations with a concrete type, which can be selected with the new impl expression if it can't be deduced by its type alone. For example trait hasname @t = Name: byte[:] ;; impl hasname void = Name = "somename" ;; impl hasname bool = Name = "othername" ;; const boolname = impl(Name, void) To do this, pass the param type through to genericname and specializedcl. Since we now need the type parameter to look up trait decls, make sure n->expr.param gets the necessary treatment in typesub, specializenode, pickle, and unpickle. We also need to tag the param types for export.
2017-06-28Remove unused memb from Trait and rename funcs -> protoMichael Forney
These are prototype declarations that must be implemented by the impl (not necessarily functions), so proto seems like a better name.
2017-05-14Tag declaration initializers in generics.Ori Bernstein
2017-04-21Clean up export tagging code.Ori Bernstein
2017-01-14Unfuck cross module traits a bit.Ori Bernstein
Mildly tested.
2016-07-12Revert "don't completely fuck up trait exports."Ori Bernstein
This reverts commit bc82e05805d51c1f58cd2e0f9b3ba098522b8ad9.
2016-07-12don't completely fuck up trait exports.Ori Bernstein
2016-03-02Export the traits on types.Ori Bernstein
2016-02-28Recursively tag reflected types.Ori Bernstein