44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
|
cout << "function arguments mismatch.\n";
return nullopt;
}
auto unifiedArgs = ValueFromIRExpr( Substitute( *bestSol, *bestUC ) );
assert( unifiedArgs );
// TODO: reduce the value
return Value( rtype, make_shared< llr::Element >( llr::Call( callee, *unifiedArgs ) ) );
}
virtual Term getSignature( const ptr< Env >& env, const Value& callee ) const override
{
return getSignatureAndRType( env, callee ).first;
}
|
<
|
44
45
46
47
48
49
50
51
52
53
54
55
56
57
|
cout << "function arguments mismatch.\n";
return nullopt;
}
auto unifiedArgs = ValueFromIRExpr( Substitute( *bestSol, *bestUC ) );
assert( unifiedArgs );
return Value( rtype, make_shared< llr::Element >( llr::Call( callee, *unifiedArgs ) ) );
}
virtual Term getSignature( const ptr< Env >& env, const Value& callee ) const override
{
return getSignatureAndRType( env, callee ).first;
}
|