#include <assert.h>#include <stdint.h>#include <stdlib.h>#include <dirent.h>#include <fstream>#include <iostream>#include <string>#include <sstream>#include <libsherpa/UExcept.hxx>#include "UocInfo.hxx"#include "AST.hxx"#include "Type.hxx"#include "TypeInfer.hxx"#include "TypeScheme.hxx"#include "TypeMut.hxx"#include "Typeclass.hxx"#include "inter-pass.hxx"#include "Unify.hxx"Go to the source code of this file.
Defines | |
| #define | CHKEXP(itsExpansive, exp) |
Functions | |
| bool | isExpansive (std::ostream &errStream, shared_ptr< const TSEnvironment > gamma, shared_ptr< const AST > ast) |
| bool | isAValue (shared_ptr< const AST > ast) |
| bool | isExpansive (std::ostream &errStream, shared_ptr< const TSEnvironment > gamma, shared_ptr< Type > typ) |
| #define CHKEXP | ( | itsExpansive, | |||
| exp | ) |
Value:
do {\ bool ans = (exp);\ if (ans == true) \ (itsExpansive) = true; \ }while (0)
Definition at line 64 of file TypeValRes.cxx.
Referenced by isExpansive().
| bool isAValue | ( | shared_ptr< const AST > | ast | ) |
Definition at line 465 of file TypeValRes.cxx.
References at_bitsizeof, at_boolLiteral, at_charLiteral, at_floatLiteral, at_ident, at_intLiteral, at_lambda, at_mkClosure, at_select, at_sizeof, at_stringLiteral, at_typeAnnotation, at_unit, and at_usesel.
| bool isExpansive | ( | std::ostream & | errStream, | |
| shared_ptr< const TSEnvironment > | gamma, | |||
| shared_ptr< Type > | typ | |||
| ) |
Definition at line 507 of file TypeValRes.cxx.
References assert(), CHKEXP, isExpansive(), and MARK_PREDICATE.
| bool isExpansive | ( | std::ostream & | errStream, | |
| shared_ptr< const TSEnvironment > | gamma, | |||
| shared_ptr< const AST > | ast | |||
| ) |
Definition at line 87 of file TypeValRes.cxx.
References agt_category, agt_CompilationUnit, agt_definition, agt_eform, agt_expr, agt_expr_or_define, agt_fielditem, agt_if_definition, agt_literal, agt_openclosed, agt_ow, agt_qtype, agt_tc_definition, agt_tvar, agt_type, agt_type_definition, agt_ucon, agt_uselhs, agt_value_definition, agt_var, assert(), at_allocREF, at_and, at_AnyGroup, at_apply, at_argVec, at_array, at_array_nth, at_array_ref_nth, at_arrayRefType, at_arrayType, at_begin, at_bitfieldType, at_bitsizeof, at_boolLiteral, at_boxedCat, at_boxedType, at_byRefType, at_charLiteral, at_cond, at_cond_leg, at_cond_legs, at_condelse, at_constraints, at_constructor, at_constructors, at_constType, at_container, at_copyREF, at_declare, at_declares, at_declrepr, at_declstruct, at_declunion, at_defexception, at_define, at_definstance, at_defrepr, at_defstruct, at_deftypeclass, at_defunion, at_deref, at_docString, at_dummyType, at_dup, at_exceptionType, at_field, at_fields, at_fieldType, at_fill, at_floatLiteral, at_fn, at_fnargVec, at_fqCtr, at_frameBindings, at_ident, at_identList, at_identPattern, at_if, at_ifident, at_ifsel, at_import, at_importAs, at_inner_ref, at_interface, at_intLiteral, at_labeledBlock, at_lambda, at_let, at_letbinding, at_letbindings, at_letGather, at_letrec, at_letStar, at_localFrame, at_loop, at_loopbinding, at_loopbindings, at_looptest, at_MakeVector, at_methdecl, at_method_decl, at_method_decls, at_methType, at_mkArrayRef, at_mkClosure, at_module, at_mutableType, at_nth, at_Null, at_object_apply, at_oc_closed, at_oc_open, at_opaqueCat, at_or, at_otherwise, at_primaryType, at_proclaim, at_provide, at_qualType, at_recdef, at_reprctr, at_reprctrs, at_reprrepr, at_return_from, at_sel_ctr, at_select, at_setbang, at_setClosure, at_sizeof, at_stringLiteral, at_struct_apply, at_suspend, at_tcapp, at_tcdecls, at_tcmethod_binding, at_tcmethods, at_throw, at_try, at_tvlist, at_tyfn, at_typeAnnotation, at_typeapp, at_ucon_apply, at_unboxedCat, at_unboxedType, at_unit, at_unless, at_usesel, at_usw_leg, at_usw_legs, at_uswitch, at_vector, at_vector_nth, at_vectorType, at_when, CHKEXP, and isExpansive().
1.4.7