/** * A function definition (a declaration plus an associated block of code).
*/ class FunctionDefinition final : public ProgramElement { public: inlinestatic constexpr Kind kIRNodeKind = Kind::kFunction;
/** * Coerces `return` statements to the return type of the function, and reports errors in the * function that can't be detected at the individual statement level: * * - `break` and `continue` statements must be in reasonable places. * - Non-void functions are required to return a value on all paths. * - Vertex main() functions don't allow early returns. * - Limits on overall stack size are enforced. * * This will return a FunctionDefinition even if an error is detected; this leads to better * diagnostics overall. (Returning null here leads to spurious "function 'f()' was not defined" * errors when trying to call a function with an error in it.)
*/ static std::unique_ptr<FunctionDefinition> Convert(const Context& context,
Position pos, const FunctionDeclaration& function,
std::unique_ptr<Statement> body);
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.