From 7ad4fb0e689c5d111aa44e3e3e1ffd2b35e436bb Mon Sep 17 00:00:00 2001 From: Richard Feldman Date: Sun, 5 Apr 2020 22:42:24 -0400 Subject: [PATCH] Add List.concat --- compiler/builtins/src/std.rs | 9 +++++++++ compiler/module/src/symbol.rs | 1 + 2 files changed, 10 insertions(+) diff --git a/compiler/builtins/src/std.rs b/compiler/builtins/src/std.rs index 29ee1285b3..7296872b3e 100644 --- a/compiler/builtins/src/std.rs +++ b/compiler/builtins/src/std.rs @@ -408,6 +408,15 @@ pub fn types() -> MutMap { ), ); + // concat : List elem, List elem -> List elem + add_type( + Symbol::LIST_CONCAT, + SolvedType::Func( + vec![list_type(flex(TVAR1)), list_type(flex(TVAR1))], + Box::new(list_type(flex(TVAR1))), + ), + ); + // map : List before, (before -> after) -> List after add_type( Symbol::LIST_MAP, diff --git a/compiler/module/src/symbol.rs b/compiler/module/src/symbol.rs index 2c28b48df3..1d593916c1 100644 --- a/compiler/module/src/symbol.rs +++ b/compiler/module/src/symbol.rs @@ -640,6 +640,7 @@ define_builtins! { 9 LIST_FOLDL: "foldl" 10 LIST_FOLDR: "foldr" 11 LIST_GET_UNSAFE: "getUnsafe" // TODO remove once we can code gen Result + 12 LIST_CONCAT: "concat" } 7 RESULT: "Result" => { 0 RESULT_RESULT: "Result" imported // the Result.Result type alias