Ignore:
Timestamp:
Jun 3, 2019, 5:36:43 PM (5 years ago)
Author:
Aaron Moss <a3moss@…>
Branches:
ADT, arm-eh, ast-experimental, enum, forall-pointer-decay, jacob/cs343-translation, jenkins-sandbox, master, new-ast, new-ast-unique-expr, pthread-emulation, qualifiedEnum
Children:
4ae2364
Parents:
8d70648
Message:

Port unification calculations to new AST

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/ResolvExpr/Unify.h

    r8d70648 rf474e91  
    1818#include <list>                   // for list
    1919
     20#include "AST/Node.hpp"             // for ptr
    2021#include "AST/TypeEnvironment.hpp"  // for TypeEnvironment, AssertionSet, OpenVarSet
    2122#include "Common/utility.h"       // for deleteAll
     
    3940        bool unify( Type *type1, Type *type2, TypeEnvironment &env, AssertionSet &needAssertions, AssertionSet &haveAssertions, OpenVarSet &openVars, const SymTab::Indexer &indexer, Type *&commonType );
    4041        bool unifyExact( Type *type1, Type *type2, TypeEnvironment &env, AssertionSet &needAssertions, AssertionSet &haveAssertions, OpenVarSet &openVars, const SymTab::Indexer &indexer );
    41         bool unifyInexact( Type *type1, Type *type2, TypeEnvironment &env, AssertionSet &needAssertions, AssertionSet &haveAssertions, const OpenVarSet &openVars, WidenMode widenMode, const SymTab::Indexer &indexer, Type *&common );
     42        bool unifyInexact( Type *type1, Type *type2, TypeEnvironment &env, AssertionSet &needAssertions, AssertionSet &haveAssertions, const OpenVarSet &openVars, WidenMode widen, const SymTab::Indexer &indexer, Type *&common );
    4243
    4344        template< typename Iterator1, typename Iterator2 >
     
    6869        }
    6970
     71        bool unifyExact(
     72                const ast::Type * type1, const ast::Type * type2, ast::TypeEnvironment & env,
     73                ast::AssertionSet & need, ast::AssertionSet & have, ast::OpenVarSet & open,
     74                const ast::SymbolTable & symtab );
     75
    7076        bool unifyInexact(
    71                 const ast::Type * type1, const ast::Type * type2, ast::TypeEnvironment & env,
    72                 ast::AssertionSet & need, ast::AssertionSet & have, const ast::OpenVarSet & openVars,
    73                 WidenMode widenMode, const ast::SymbolTable & symtab, const ast::Type *& common );
     77                ast::ptr<ast::Type> & type1, ast::ptr<ast::Type> & type2, ast::TypeEnvironment & env,
     78                ast::AssertionSet & need, ast::AssertionSet & have, const ast::OpenVarSet & open,
     79                WidenMode widen, const ast::SymbolTable & symtab, ast::ptr<ast::Type> & common );
    7480
    7581} // namespace ResolvExpr
Note: See TracChangeset for help on using the changeset viewer.