|
Yume
|
Classes | |
| struct | Overload |
| struct | OverloadSet |
| struct | TypeWalker |
| Determine the type information of AST nodes. This makes up most of the "semantic" phase of the compiler. More... | |
Functions | |
| static auto | join_args (const auto &iter, auto fn, llvm::raw_ostream &stream=errs()) |
| static auto | overload_name (const ast::AST *ast) -> std::string |
| static auto | overload_receiver (const ast::AST *ast) -> optional< ty::Type > |
| static auto | literal_cast (ast::AST &arg, ty::Type target_type) -> ty::Compat |
| auto | parameter_count_matches (const vector< ast::AST * > &args, const Fn &fn) -> bool |
| static auto | generic_base (optional< ty::Type > type) -> optional< ty::Type > |
| static auto | cmp (bool a, bool b) -> std::strong_ordering |
| static auto | compare_implicit_conversions (ty::Conv a, ty::Conv b) -> std::weak_ordering |
| void | wrap_in_implicit_cast (ast::OptionalExpr &expr, ty::Conv conv, optional< ty::Type > target_type) |
| auto | try_implicit_conversion (ast::OptionalExpr &expr, optional< ty::Type > target_ty) -> bool |
| void | make_implicit_conversion (ast::OptionalExpr &expr, optional< ty::Type > target_ty) |
| static auto | for_all_instantiations (std::deque< Struct > &structs, std::invocable< Struct & > auto fn) |
| static auto | find_field_ast (const ty::Struct &st, string_view target_name) -> std::pair< nullable< ast::AnyType * >, int > |
| static auto | find_field (const ty::Struct &st, string_view target_name) -> std::pair< optional< ty::Type >, int > |
Variables | |
| static constexpr auto | get_val_ty = [](const ast::AST* ast) { return ast->val_ty(); } |
| static constexpr auto | indirect = [](const ty::Type& ty) { return &ty; } |
|
static |
Definition at line 247 of file overload.cpp.
Referenced by compare_implicit_conversions().
|
static |
Definition at line 249 of file overload.cpp.
References cmp().
Referenced by yume::semantic::Overload::better_candidate_than().
|
static |
Definition at line 419 of file type_walker.cpp.
References find_field_ast().
Referenced by yume::semantic::TypeWalker::expression().
|
static |
Definition at line 402 of file type_walker.cpp.
Referenced by find_field().
|
inlinestatic |
Definition at line 99 of file type_walker.cpp.
Referenced by yume::semantic::TypeWalker::expression(), and yume::semantic::TypeWalker::make_dup().
Definition at line 110 of file overload.cpp.
Referenced by yume::semantic::OverloadSet::is_valid_overload().
|
static |
Definition at line 21 of file overload.cpp.
Referenced by yume::semantic::OverloadSet::best_viable_overload(), yume::semantic::Overload::dump(), and yume::semantic::OverloadSet::dump().
|
static |
Definition at line 79 of file overload.cpp.
References yume::ty::Int::in_range(), and yume::ty::Compat::valid.
Referenced by yume::semantic::OverloadSet::is_valid_overload().
| void yume::semantic::make_implicit_conversion | ( | ast::OptionalExpr & | expr, |
| optional< ty::Type > | target_ty | ||
| ) |
Definition at line 55 of file type_walker.cpp.
References try_implicit_conversion().
Referenced by yume::semantic::TypeWalker::expression(), and yume::semantic::TypeWalker::statement().
|
static |
Definition at line 29 of file overload.cpp.
Referenced by yume::semantic::OverloadSet::best_viable_overload(), and yume::semantic::OverloadSet::dump().
Definition at line 38 of file overload.cpp.
Referenced by yume::semantic::OverloadSet::is_valid_overload().
| auto yume::semantic::parameter_count_matches | ( | const vector< ast::AST * > & | args, |
| const Fn & | fn | ||
| ) | -> bool |
Definition at line 99 of file overload.cpp.
Referenced by yume::semantic::OverloadSet::is_valid_overload().
|
inline |
Definition at line 38 of file type_walker.cpp.
References wrap_in_implicit_cast().
Referenced by make_implicit_conversion().
|
inline |
Definition at line 32 of file type_walker.cpp.
Referenced by yume::semantic::TypeWalker::expression(), yume::semantic::TypeWalker::make_dup(), and try_implicit_conversion().
|
inlinestaticconstexpr |
Definition at line 18 of file overload.cpp.
Referenced by yume::semantic::OverloadSet::best_viable_overload(), and yume::semantic::OverloadSet::dump().
|
inlinestaticconstexpr |
Definition at line 19 of file overload.cpp.
Referenced by yume::semantic::Overload::dump().