#include "UocInfo.hxx"#include "AST.hxx"#include "Type.hxx"Go to the source code of this file.
Defines | |
| #define | CHKERR(noerr, exp) |
| #define | BE_CHKERR(noerr, exp) |
| #define | FEXPR(let) (let)->child(1) |
| #define | IDENT(let) (let)->child(0)->child(0) |
| #define | IGNORE(ast) ((size_t)(((ast)->astType == at_uswitch)?0:1)) |
Enumerations | |
| enum | ResolutionMode { NULL_MODE = 0x0u, DEF_MODE = 0x1u, USE_MODE = 0x2u, DECL_MODE = 0x3u, LOCAL_MODE = 0x4u, TYPE_MODE = 0x5u } |
| Mode of operation used in Symbol Resolution and Type-inference. More... | |
Functions | |
| void | BitcP (std::ostream &out, const boost::shared_ptr< AST > ast, bool showTypes) |
| void | addDecl (boost::shared_ptr< AST > decl) |
| void | fatal () |
| Cease processing after fatal error. | |
| #define BE_CHKERR | ( | noerr, | |||
| exp | ) |
Value:
do { \ bool ans = (exp); \ assert(ans); \ if (ans == false) \ (noerr) = false; \ }while (0)
Definition at line 80 of file inter-pass.hxx.
Referenced by checkInfTypedValues(), polyinst(), and Specialize().
| #define CHKERR | ( | noerr, | |||
| exp | ) |
Value:
do { \ bool ans = (exp); \ if (ans == false) \ (noerr) = false; \ }while (0)
Definition at line 73 of file inter-pass.hxx.
Referenced by acyclic(), AllocCheck(), buildLinkedAST(), Type::checkMutConsistency(), CheckMutConsistency(), UocInfo::DoResolve(), UocInfo::DoTypeCheck(), emit_fnxn_label(), EmitGlobalInitializers(), findusedef(), generalizePat(), GenerateCoutput(), getDefs(), handlePcst(), handleSpecialPred(), InferObject(), InferStruct(), InferTypeClass(), InferUnion(), initGamma(), isAsGeneral(), matchDefDecl(), ProcessLetExprs(), PropagateMutability(), Type::propagateMutability(), UocInfo::RandT(), reprCheck(), reRandT(), resolve(), toc(), typeInfer(), TypesTOC(), unify(), Unify(), UnifyDecl(), UnifyFnArgs(), unifyPrim(), UnifyStructUnion(), and ValuesTOH().
| #define FEXPR | ( | let | ) | (let)->child(1) |
Definition at line 89 of file inter-pass.hxx.
Referenced by emit_fnxn_label(), emitInitProc(), ssa(), and toc().
| #define IDENT | ( | let | ) | (let)->child(0)->child(0) |
Definition at line 91 of file inter-pass.hxx.
| #define IGNORE | ( | ast | ) | ((size_t)(((ast)->astType == at_uswitch)?0:1)) |
Definition at line 96 of file inter-pass.hxx.
Referenced by cl_heapify(), findusedef(), LocChk(), markTail(), TopInit(), and tvarInst().
| enum ResolutionMode |
Mode of operation used in Symbol Resolution and Type-inference.
| NULL_MODE | Don't care or error case. |
| DEF_MODE |
Introducing a newly defined symbol into the environment.
This mode is used when recursing into a defining occurrence. It is currently used as the default at top-level in most cases. |
| USE_MODE |
Checking a use-occurrence of a symbol.
This mode is used when recursing into a use occurrence context. |
| DECL_MODE |
Introducing a newly declared symbol into the environment.
This mode is used when recursing into a declaring occurrence. |
| LOCAL_MODE | Local definitions, used only in closure conversion. |
| TYPE_MODE | Type definitions, used only in closure conversion. |
Definition at line 49 of file inter-pass.hxx.
| void addDecl | ( | boost::shared_ptr< AST > | decl | ) |
| void BitcP | ( | std::ostream & | out, | |
| const boost::shared_ptr< AST > | ast, | |||
| bool | showTypes | |||
| ) |
Referenced by doChildren().
| void fatal | ( | ) |
1.4.7