From 06393537597f2eb7582c5504653e5568e6a097ef Mon Sep 17 00:00:00 2001 From: Brendan Hansen Date: Fri, 25 Dec 2020 23:00:12 -0600 Subject: [PATCH] small #solidify bugfix --- docs/todo | 2 +- onyx | Bin 286968 -> 286968 bytes progs/poly_solidify.onyx | 8 ++++++-- src/onyxsymres.c | 4 ++++ 4 files changed, 11 insertions(+), 3 deletions(-) diff --git a/docs/todo b/docs/todo index 7a6faf3b..6da2e100 100644 --- a/docs/todo +++ b/docs/todo @@ -112,7 +112,7 @@ Language Cohesion: [ ] Add macros. - [ ] #solidify polymoprhic procedures. + [X] #solidify polymoprhic procedures. API Expansion: There are many different places where the standard API for WASI and JS diff --git a/onyx b/onyx index 4777151a3e66e23a4bff5fdb082f623d16365f80..90cf0736fe79d3ebf3fdbdb33dfce98c88b2125a 100755 GIT binary patch delta 32228 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 delta 32195 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 C6Nlgc diff --git a/progs/poly_solidify.onyx b/progs/poly_solidify.onyx index f71cb85f..3437f761 100644 --- a/progs/poly_solidify.onyx +++ b/progs/poly_solidify.onyx @@ -6,7 +6,8 @@ max_f32 :: #solidify math.max { T = f32 }; compose :: proc (a: $A, f: proc (A) -> $B, g: proc (B) -> $C) -> C do return g(f(a)); -specific_compose :: #solidify compose { A = f32, B = f32, C = u32 }; +specific_compose_0 :: #solidify compose { B = u32 }; +specific_compose_1 :: #solidify specific_compose_0 { A = f32 }; main :: proc (args: [] cstr) { printf("max(1, 2) = %i\n", math.max(1, 2)); @@ -14,5 +15,8 @@ main :: proc (args: [] cstr) { // printf("max_f32(1, 2) = %i\n", max_f32(cast(u32) 1, cast(u32) 2)); - + println(specific_compose_1( + 2, + proc (a: f32) -> i32 { return ~~(a * 2); }, + proc (b: i32) -> i32 { return ~~(b + 6); })); } \ No newline at end of file diff --git a/src/onyxsymres.c b/src/onyxsymres.c index e145dab6..278a5d25 100644 --- a/src/onyxsymres.c +++ b/src/onyxsymres.c @@ -604,6 +604,10 @@ static void symres_directive_solidify(AstDirectiveSolidify** psolid) { *psolid = (AstDirectiveSolidify *) solid->resolved_proc; symres_expression((AstTyped **) &solid->poly_proc); + if (solid->poly_proc && solid->poly_proc->kind == Ast_Kind_Directive_Solidify) { + solid->poly_proc = (AstPolyProc *) ((AstDirectiveSolidify *) solid->poly_proc)->resolved_proc; + } + if (!solid->poly_proc || solid->poly_proc->kind != Ast_Kind_Polymorphic_Proc) { onyx_report_error(solid->token->pos, "Expected polymorphic procedure in #solidify directive."); return; -- 2.25.1