diff options
author | Boris Kolpackov <boris@codesynthesis.com> | 2016-11-21 11:56:00 +0200 |
---|---|---|
committer | Boris Kolpackov <boris@codesynthesis.com> | 2016-11-21 11:56:00 +0200 |
commit | 7a528eab1561b0d0d4ec29f98355fe67025ea632 (patch) | |
tree | 28a2061f17e3ee625e8674378227a81a8738a6ec /unit-tests/function | |
parent | 3db0756adc641e0a63c4c9f194c4f73cceddd90c (diff) |
Add support for derived-to-base function overload resolution
Diffstat (limited to 'unit-tests/function')
-rw-r--r-- | unit-tests/function/call.test | 21 | ||||
-rw-r--r-- | unit-tests/function/driver.cxx | 2 |
2 files changed, 16 insertions, 7 deletions
diff --git a/unit-tests/function/call.test b/unit-tests/function/call.test index d459300..003a828 100644 --- a/unit-tests/function/call.test +++ b/unit-tests/function/call.test @@ -14,8 +14,15 @@ $* <'print $dummy.qual()' >'abc' : $* <'print $qual()' 2>>EOE != 0 buildfile:1:8: error: unmatched call to qual\() + info: candidate: dummy.qual\() EOE +: derived-base +: Test derived-to-base overload resolution +: +$* <'print $dummy.abs([dir_path] .)' >'false'; +$* <'print $dummy.abs([abs_dir_path] .)' >'true' + : variadic : # @@ TMP: add some args @@ -45,22 +52,22 @@ EOE : $* <'$dummy0(abc)' 2>>EOE != 0 buildfile:1:2: error: unmatched call to dummy0\(<untyped>) - info: candidate: dummy0\(), qualified name dummy.dummy0 + info: candidate: dummy0\(), qualified name dummy.dummy0 EOE : no-match-type : $* <'$dummy1([uint64] 123)' 2>>EOE != 0 buildfile:1:2: error: unmatched call to dummy1\(uint64) - info: candidate: dummy1\(string), qualified name dummy.dummy1 + info: candidate: dummy1\(string), qualified name dummy.dummy1 EOE : ambig : $* <'$ambig(abc)' 2>>EOE != 0 buildfile:1:2: error: ambiguous call to ambig\(<untyped>) - info: candidate: ambig\(<untyped> [, uint64]), qualified name dummy.ambig - info: candidate: ambig\(<untyped> [, string]), qualified name dummy.ambig + info: candidate: ambig\(<untyped> [, uint64]), qualified name dummy.ambig + info: candidate: ambig\(<untyped> [, string]), qualified name dummy.ambig EOE : optional-absent @@ -111,15 +118,15 @@ EOE : $* <'$ambig([bool] true)' 2>>EOE != 0 buildfile:1:2: error: unmatched call to ambig\(bool) - info: candidate: ambig\(<untyped> [, uint64]), qualified name dummy.ambig - info: candidate: ambig\(<untyped> [, string]), qualified name dummy.ambig + info: candidate: ambig\(<untyped> [, uint64]), qualified name dummy.ambig + info: candidate: ambig\(<untyped> [, string]), qualified name dummy.ambig EOE : print-fovl-variadic : $* <'$variadic(abc)' 2>>EOE != 0 buildfile:1:2: error: unmatched call to variadic\(<untyped>) - info: candidate: variadic\(bool [, ...]) + info: candidate: variadic\(bool [, ...]) EOE : member-function diff --git a/unit-tests/function/driver.cxx b/unit-tests/function/driver.cxx index ba51662..0708cea 100644 --- a/unit-tests/function/driver.cxx +++ b/unit-tests/function/driver.cxx @@ -47,6 +47,8 @@ namespace build2 f[".length"] = &string::size; // Member function. f[".type"] = &name::type; // Data member. + f[".abs"] = [](dir_path d) {return d.absolute ();}; + // Variadic function with first required argument of type bool. Returns // number of arguments passed. // |