diff options
author | Michael Forney <mforney@mforney.org> | 2017-07-01 14:43:22 -0700 |
---|---|---|
committer | Ori Bernstein <ori@eigenstate.org> | 2017-07-03 23:27:02 -0700 |
commit | 871ef281aaf3c2e8bdff5d92355461bedfa5d933 (patch) | |
tree | 76db674822cd67fb1cd1772a8d52f40910735d00 /mbld/deps.myr | |
parent | ca10a1ec838b7d468a2b43894af659c111a0e9b1 (diff) | |
download | mc-871ef281aaf3c2e8bdff5d92355461bedfa5d933.tar.gz |
Specialize impl declarations on impl type in addition to decl type
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.
Diffstat (limited to 'mbld/deps.myr')
-rw-r--r-- | mbld/deps.myr | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/mbld/deps.myr b/mbld/deps.myr index 1bdcae7..506fffa 100644 --- a/mbld/deps.myr +++ b/mbld/deps.myr @@ -11,7 +11,7 @@ pkg bld = const myrdeps : (b : build#, mt : myrtarg#, doclean : bool, addsrc : bool -> depgraph#) ;; -const Abiversion = 12 +const Abiversion = 13 var usepat : regex.regex# var cflagpat : regex.regex# |