diff options
author | Boris Kolpackov <boris@codesynthesis.com> | 2018-07-14 18:30:28 +0200 |
---|---|---|
committer | Karen Arutyunov <karen@codesynthesis.com> | 2018-07-16 16:49:58 +0300 |
commit | 55e858010b9ba53c27475d9ce6f864a84d28fa81 (patch) | |
tree | ddbbcc909abc23310117afee2225f6197f475f18 /unit-tests/function | |
parent | 3f2b42c3c01ecfee6a63653172d437aa0e915b68 (diff) |
Resolve function overload via the argument reversal to untyped
Diffstat (limited to 'unit-tests/function')
-rw-r--r-- | unit-tests/function/call.test | 19 | ||||
-rw-r--r-- | unit-tests/function/driver.cxx | 2 |
2 files changed, 20 insertions, 1 deletions
diff --git a/unit-tests/function/call.test b/unit-tests/function/call.test index 127af24..3dd9a85 100644 --- a/unit-tests/function/call.test +++ b/unit-tests/function/call.test @@ -74,6 +74,23 @@ buildfile:1:2: error: ambiguous call to ambig(<untyped>) /)) EOE +: unmatched +: +$* <'$ambig(abc, def)' 2>>~/EOE/ != 0 +buildfile:1:2: error: unmatched call to ambig(<untyped>, <untyped>) +/(( + info: candidate: ambig(<untyped> [, uint64]), qualified name dummy.ambig + info: candidate: ambig(<untyped> [, string]), qualified name dummy.ambig +/)|( + info: candidate: ambig(<untyped> [, string]), qualified name dummy.ambig + info: candidate: ambig(<untyped> [, uint64]), qualified name dummy.ambig +/)) +EOE + +: reverse +: +$* <'print $reverse([string] abc)' >'abc' + : optional-absent : $* <'print $optional()' >'true' @@ -118,7 +135,7 @@ EOE : print-fovl : $* <'$ambig([bool] true)' 2>>~/EOE/ != 0 -buildfile:1:2: error: unmatched call to ambig(bool) +buildfile:1:2: error: ambiguous call to ambig(bool) /(( info: candidate: ambig(<untyped> [, uint64]), qualified name dummy.ambig info: candidate: ambig(<untyped> [, string]), qualified name dummy.ambig diff --git a/unit-tests/function/driver.cxx b/unit-tests/function/driver.cxx index e97596a..393b456 100644 --- a/unit-tests/function/driver.cxx +++ b/unit-tests/function/driver.cxx @@ -54,6 +54,8 @@ namespace build2 f["ambig"] = [](names a, optional<string>) {return a;}; f["ambig"] = [](names a, optional<uint64_t>) {return a;}; + f["reverse"] = [](names a) {return a;}; + f["scoped"] = [](const scope*, names a) {return a;}; f["scoped_void"] = [](const scope*, names) {}; f["scoped"] = &scoped; |