Yume
Namespaces | Functions | Variables
overload.cpp File Reference
#include "overload.hpp"
#include "ast/ast.hpp"
#include "ty/compatibility.hpp"
#include "ty/type.hpp"
#include "util.hpp"
#include <algorithm>
#include <compare>
#include <llvm/ADT/STLExtras.h>
#include <llvm/Support/Casting.h>
#include <llvm/Support/raw_ostream.h>
#include <map>
#include <stdexcept>
#include <string>
#include <utility>
Include dependency graph for overload.cpp:

Go to the source code of this file.

Namespaces

namespace  yume
 
namespace  yume::semantic
 

Functions

static auto yume::semantic::join_args (const auto &iter, auto fn, llvm::raw_ostream &stream=errs())
 
static auto yume::semantic::overload_name (const ast::AST *ast) -> std::string
 
static auto yume::semantic::overload_receiver (const ast::AST *ast) -> optional< ty::Type >
 
static auto yume::semantic::literal_cast (ast::AST &arg, ty::Type target_type) -> ty::Compat
 
auto yume::semantic::parameter_count_matches (const vector< ast::AST * > &args, const Fn &fn) -> bool
 
static auto yume::semantic::generic_base (optional< ty::Type > type) -> optional< ty::Type >
 
static auto yume::semantic::cmp (bool a, bool b) -> std::strong_ordering
 
static auto yume::semantic::compare_implicit_conversions (ty::Conv a, ty::Conv b) -> std::weak_ordering
 

Variables

static constexpr auto yume::semantic::get_val_ty = [](const ast::AST* ast) { return ast->val_ty(); }
 
static constexpr auto yume::semantic::indirect = [](const ty::Type& ty) { return &ty; }