Changeset 8135d4c for src/ResolvExpr


Ignore:
Timestamp:
Aug 22, 2017, 7:31:52 PM (8 years ago)
Author:
Rob Schluntz <rschlunt@…>
Branches:
ADT, aaron-thesis, arm-eh, ast-experimental, cleanup-dtors, deferred_resn, demangler, enum, forall-pointer-decay, jacob/cs343-translation, jenkins-sandbox, master, new-ast, new-ast-unique-expr, new-env, no_list, persistent-indexer, pthread-emulation, qualifiedEnum, resolv-new, with_gc
Children:
9aaac6e9
Parents:
fc56cdbf (diff), b3d413b (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent.
Message:

Merge branch 'master' into references

Location:
src/ResolvExpr
Files:
29 edited

Legend:

Unmodified
Added
Removed
  • src/ResolvExpr/AdjustExprType.cc

    rfc56cdbf r8135d4c  
    1414//
    1515
    16 #include "typeops.h"
    17 #include "SynTree/Type.h"
    18 #include "TypeEnvironment.h"
    19 #include "SymTab/Indexer.h"
     16#include "SymTab/Indexer.h"       // for Indexer
     17#include "SynTree/Declaration.h"  // for TypeDecl, TypeDecl::Kind::Ftype
     18#include "SynTree/Mutator.h"      // for Mutator
     19#include "SynTree/Type.h"         // for PointerType, TypeInstType, Type
     20#include "TypeEnvironment.h"      // for EqvClass, TypeEnvironment
    2021
    2122namespace ResolvExpr {
  • src/ResolvExpr/Alternative.cc

    rfc56cdbf r8135d4c  
    1515
    1616#include "Alternative.h"
    17 #include "SynTree/Type.h"
    18 #include "SynTree/Expression.h"
    19 #include "Common/utility.h"
     17
     18#include <ostream>                       // for operator<<, ostream, basic_o...
     19#include <string>                        // for operator<<, char_traits, string
     20
     21#include "Common/utility.h"              // for maybeClone
     22#include "ResolvExpr/Cost.h"             // for Cost, Cost::zero, operator<<
     23#include "ResolvExpr/TypeEnvironment.h"  // for TypeEnvironment
     24#include "SynTree/Expression.h"          // for Expression
     25#include "SynTree/Type.h"                // for Type
    2026
    2127namespace ResolvExpr {
  • src/ResolvExpr/Alternative.h

    rfc56cdbf r8135d4c  
    1616#pragma once
    1717
    18 #include <list>
    19 #include "SynTree/SynTree.h"
    20 #include "Cost.h"
    21 #include "TypeEnvironment.h"
     18#include <iosfwd>             // for ostream
     19#include <list>               // for list
     20
     21#include "Cost.h"             // for Cost
     22#include "TypeEnvironment.h"  // for TypeEnvironment
     23
     24class Expression;
    2225
    2326namespace ResolvExpr {
    2427        struct Alternative;
     28
    2529        typedef std::list< Alternative > AltList;
    2630
  • src/ResolvExpr/AlternativeFinder.cc

    rfc56cdbf r8135d4c  
    1414//
    1515
    16 #include <list>
    17 #include <iterator>
    18 #include <algorithm>
    19 #include <functional>
    20 #include <cassert>
    21 #include <unordered_map>
    22 #include <utility>
    23 #include <vector>
    24 
     16#include <algorithm>               // for copy
     17#include <cassert>                 // for safe_dynamic_cast, assert, assertf
     18#include <iostream>                // for operator<<, cerr, ostream, endl
     19#include <iterator>                // for back_insert_iterator, back_inserter
     20#include <list>                    // for _List_iterator, list, _List_const_...
     21#include <map>                     // for _Rb_tree_iterator, map, _Rb_tree_c...
     22#include <memory>                  // for allocator_traits<>::value_type
     23#include <utility>                 // for pair
     24
     25#include "Alternative.h"           // for AltList, Alternative
    2526#include "AlternativeFinder.h"
    26 #include "Alternative.h"
    27 #include "Cost.h"
    28 #include "typeops.h"
    29 #include "Unify.h"
    30 #include "RenameVars.h"
    31 #include "SynTree/Type.h"
    32 #include "SynTree/Declaration.h"
    33 #include "SynTree/Expression.h"
    34 #include "SynTree/Initializer.h"
    35 #include "SynTree/Visitor.h"
    36 #include "SymTab/Indexer.h"
    37 #include "SymTab/Mangler.h"
    38 #include "SynTree/TypeSubstitution.h"
    39 #include "SymTab/Validate.h"
    40 #include "Tuples/Tuples.h"
    41 #include "Tuples/Explode.h"
    42 #include "Common/utility.h"
    43 #include "InitTweak/InitTweak.h"
    44 #include "InitTweak/GenInit.h"
    45 #include "ResolveTypeof.h"
    46 #include "Resolver.h"
     27#include "Common/SemanticError.h"  // for SemanticError
     28#include "Common/utility.h"        // for deleteAll, printAll, CodeLocation
     29#include "Cost.h"                  // for Cost, Cost::zero, operator<<, Cost...
     30#include "InitTweak/InitTweak.h"   // for getFunctionName
     31#include "RenameVars.h"            // for RenameVars, global_renamer
     32#include "ResolveTypeof.h"         // for resolveTypeof
     33#include "Resolver.h"              // for resolveStmtExpr
     34#include "SymTab/Indexer.h"        // for Indexer
     35#include "SymTab/Mangler.h"        // for Mangler
     36#include "SymTab/Validate.h"       // for validateType
     37#include "SynTree/Constant.h"      // for Constant
     38#include "SynTree/Declaration.h"   // for DeclarationWithType, TypeDecl, Dec...
     39#include "SynTree/Expression.h"    // for Expression, CastExpr, NameExpr
     40#include "SynTree/Initializer.h"   // for SingleInit, operator<<, Designation
     41#include "SynTree/SynTree.h"       // for UniqueId
     42#include "SynTree/Type.h"          // for Type, FunctionType, PointerType
     43#include "Tuples/Explode.h"        // for explode
     44#include "Tuples/Tuples.h"         // for isTtype, handleTupleAssignment
     45#include "Unify.h"                 // for unify
     46#include "typeops.h"               // for adjustExprType, polyCost, castCost
    4747
    4848extern bool resolvep;
     
    979979        void AlternativeFinder::visit( SizeofExpr *sizeofExpr ) {
    980980                if ( sizeofExpr->get_isType() ) {
    981                         // xxx - resolveTypeof?
    982                         alternatives.push_back( Alternative( sizeofExpr->clone(), env, Cost::zero ) );
     981                        Type * newType = sizeofExpr->get_type()->clone();
     982                        alternatives.push_back( Alternative( new SizeofExpr( resolveTypeof( newType, indexer ) ), env, Cost::zero ) );
    983983                } else {
    984984                        // find all alternatives for the argument to sizeof
     
    10001000        void AlternativeFinder::visit( AlignofExpr *alignofExpr ) {
    10011001                if ( alignofExpr->get_isType() ) {
    1002                         // xxx - resolveTypeof?
    1003                         alternatives.push_back( Alternative( alignofExpr->clone(), env, Cost::zero ) );
     1002                        Type * newType = alignofExpr->get_type()->clone();
     1003                        alternatives.push_back( Alternative( new AlignofExpr( resolveTypeof( newType, indexer ) ), env, Cost::zero ) );
    10041004                } else {
    10051005                        // find all alternatives for the argument to sizeof
  • src/ResolvExpr/AlternativeFinder.h

    rfc56cdbf r8135d4c  
    1616#pragma once
    1717
    18 #include <set>
     18#include <algorithm>                     // for copy
     19#include <list>                          // for list
     20#include <string>                        // for string
    1921
    20 #include "Alternative.h"
    21 #include "Unify.h"
    22 #include "SynTree/SynTree.h"
    23 #include "SymTab/Indexer.h"
    24 #include "SynTree/TypeSubstitution.h"
     22#include "Alternative.h"                 // for AltList, Alternative
     23#include "ResolvExpr/Cost.h"             // for Cost, Cost::infinity
     24#include "ResolvExpr/TypeEnvironment.h"  // for AssertionSet, OpenVarSet
     25#include "SynTree/Visitor.h"             // for Visitor
     26#include "SynTree/SynTree.h"             // for Visitor Nodes
     27
     28namespace SymTab {
     29class Indexer;
     30}  // namespace SymTab
    2531
    2632namespace ResolvExpr {
  • src/ResolvExpr/AlternativePrinter.cc

    rfc56cdbf r8135d4c  
    1515
    1616#include "AlternativePrinter.h"
    17 #include "AlternativeFinder.h"
    18 #include "Alternative.h"
    19 #include "SynTree/Statement.h"
    20 #include "SynTree/Type.h"
    21 #include "SynTree/Expression.h"
    22 #include "Common/utility.h"
     17
     18#include <list>                          // for _List_const_iterator, list<>...
     19
     20#include "Alternative.h"                 // for AltList, Alternative
     21#include "AlternativeFinder.h"           // for AlternativeFinder
     22#include "ResolvExpr/TypeEnvironment.h"  // for TypeEnvironment
     23#include "SynTree/Expression.h"          // for Expression
     24#include "SynTree/Statement.h"           // for ExprStmt
     25#include "SynTree/Type.h"                // for Type
    2326
    2427namespace ResolvExpr {
  • src/ResolvExpr/AlternativePrinter.h

    rfc56cdbf r8135d4c  
    1616#pragma once
    1717
    18 #include <iostream>
     18#include <iostream>          // for ostream
    1919
    20 #include "Alternative.h"
    21 #include "SymTab/Indexer.h"
     20#include "SymTab/Indexer.h"  // for Indexer
     21
     22class ExprStmt;
    2223
    2324namespace ResolvExpr {
  • src/ResolvExpr/CastCost.cc

    rfc56cdbf r8135d4c  
    1414//
    1515
    16 #include "typeops.h"
    17 #include "Cost.h"
    18 #include "ConversionCost.h"
    19 #include "SynTree/Type.h"
    20 #include "SynTree/Visitor.h"
    21 #include "SymTab/Indexer.h"
     16#include <cassert>                       // for assert
     17
     18#include "ConversionCost.h"              // for ConversionCost
     19#include "Cost.h"                        // for Cost, Cost::infinity
     20#include "ResolvExpr/TypeEnvironment.h"  // for TypeEnvironment, EqvClass
     21#include "SymTab/Indexer.h"              // for Indexer
     22#include "SynTree/Declaration.h"         // for TypeDecl, NamedTypeDecl
     23#include "SynTree/Type.h"                // for PointerType, Type, TypeInstType
     24#include "typeops.h"                     // for typesCompatibleIgnoreQualifiers
    2225
    2326
  • src/ResolvExpr/CommonType.cc

    rfc56cdbf r8135d4c  
    1414//
    1515
    16 #include "typeops.h"
    17 #include "SynTree/Type.h"
    18 #include "Unify.h"
     16#include <cassert>                       // for safe_dynamic_cast
     17#include <map>                           // for _Rb_tree_const_iterator
     18#include <utility>                       // for pair
     19
     20#include "ResolvExpr/TypeEnvironment.h"  // for OpenVarSet, AssertionSet
     21#include "SymTab/Indexer.h"              // for Indexer
     22#include "SynTree/Declaration.h"         // for TypeDecl, NamedTypeDecl (ptr...
     23#include "SynTree/Type.h"                // for BasicType, BasicType::Kind::...
     24#include "SynTree/Visitor.h"             // for Visitor
     25#include "Unify.h"                       // for unifyExact, bindVar, WidenMode
     26#include "typeops.h"                     // for isFtype
    1927
    2028// #define DEBUG
  • src/ResolvExpr/ConversionCost.cc

    rfc56cdbf r8135d4c  
    1515
    1616#include "ConversionCost.h"
    17 #include "typeops.h"
    18 #include "SynTree/Type.h"
    19 #include "SynTree/Visitor.h"
    20 #include "SymTab/Indexer.h"
     17
     18#include <cassert>                       // for assert
     19#include <list>                          // for list, list<>::const_iterator
     20#include <string>                        // for operator==, string
     21
     22#include "ResolvExpr/Cost.h"             // for Cost
     23#include "ResolvExpr/TypeEnvironment.h"  // for EqvClass, TypeEnvironment
     24#include "SymTab/Indexer.h"              // for Indexer
     25#include "SynTree/Declaration.h"         // for TypeDecl, NamedTypeDecl
     26#include "SynTree/Type.h"                // for Type, BasicType, TypeInstType
     27#include "typeops.h"                     // for typesCompatibleIgnoreQualifiers
    2128
    2229namespace ResolvExpr {
  • src/ResolvExpr/ConversionCost.h

    rfc56cdbf r8135d4c  
    1616#pragma once
    1717
    18 #include "SynTree/Visitor.h"
    19 #include "SymTab/Indexer.h"
    20 #include "Cost.h"
    21 #include "TypeEnvironment.h"
     18#include "Cost.h"             // for Cost
     19#include "SynTree/Visitor.h"  // for Visitor
     20#include "SynTree/SynTree.h"  // for Visitor Nodes
     21
     22namespace SymTab {
     23class Indexer;
     24}  // namespace SymTab
    2225
    2326namespace ResolvExpr {
     27class TypeEnvironment;
     28
    2429        class ConversionCost : public Visitor {
    2530          public:
  • src/ResolvExpr/CurrentObject.cc

    rfc56cdbf r8135d4c  
    1414//
    1515
    16 #include <stack>
    17 #include <iostream>
    18 
     16#include <stddef.h>                    // for size_t
     17#include <cassert>                     // for assertf, assert, safe_dynamic_...
     18#include <iostream>                    // for ostream, operator<<, basic_ost...
     19#include <stack>                       // for stack
     20#include <string>                      // for string, operator<<, allocator
     21
     22#include "Common/Indenter.h"           // for Indenter, operator<<
     23#include "Common/SemanticError.h"      // for SemanticError
     24#include "Common/utility.h"            // for toString
    1925#include "CurrentObject.h"
    20 
    21 #include "Common/Indenter.h"
    22 
    23 #include "SynTree/Declaration.h"
    24 #include "SynTree/Initializer.h"
    25 #include "SynTree/Type.h"
    26 #include "SynTree/TypeSubstitution.h"
     26#include "SynTree/Constant.h"          // for Constant
     27#include "SynTree/Declaration.h"       // for ObjectDecl, Declaration, Struc...
     28#include "SynTree/Expression.h"        // for InitAlternative, VariableExpr
     29#include "SynTree/Initializer.h"       // for Designation, operator<<
     30#include "SynTree/Type.h"              // for Type, StructInstType, UnionIns...
     31#include "SynTree/TypeSubstitution.h"  // for TypeSubstitution
    2732
    2833#if 0
  • src/ResolvExpr/CurrentObject.h

    rfc56cdbf r8135d4c  
    1616#pragma once
    1717
    18 #include <stack>
     18#include <list>   // for list
     19#include <stack>  // for stack
    1920
    20 #include "SynTree/SynTree.h"
    21 #include "SynTree/Expression.h"
     21class Designation;
     22class Type;
     23struct InitAlternative;
    2224
    2325namespace ResolvExpr {
  • src/ResolvExpr/FindOpenVars.cc

    rfc56cdbf r8135d4c  
    1515
    1616#include "FindOpenVars.h"
    17 #include "SynTree/Type.h"
    18 #include "SynTree/Visitor.h"
     17
     18#include <list>                   // for _List_const_iterator, list<>::const...
     19#include <map>                    // for map<>::mapped_type
     20
     21#include "SynTree/Declaration.h"  // for TypeDecl, DeclarationWithType (ptr ...
     22#include "SynTree/Type.h"         // for Type, Type::ForallList, ArrayType
     23#include "SynTree/Visitor.h"      // for Visitor
    1924
    2025namespace ResolvExpr {
  • src/ResolvExpr/FindOpenVars.h

    rfc56cdbf r8135d4c  
    1616#pragma once
    1717
    18 #include "Unify.h"
    19 #include "SynTree/SynTree.h"
     18#include "ResolvExpr/TypeEnvironment.h"  // for AssertionSet, OpenVarSet
     19
     20class Type;
    2021
    2122namespace ResolvExpr {
  • src/ResolvExpr/Occurs.cc

    rfc56cdbf r8135d4c  
    1414//
    1515
    16 #include <set>
    17 #include <algorithm>
    18 #include <iterator>
    19 #include "SynTree/Type.h"
    20 #include "SynTree/Visitor.h"
    21 #include "TypeEnvironment.h"
     16#include <set>                // for set, _Rb_tree_const_iterator
     17#include <string>             // for string
     18
     19#include "SynTree/Type.h"     // for TypeInstType, Type
     20#include "SynTree/Visitor.h"  // for Visitor
     21#include "TypeEnvironment.h"  // for EqvClass, TypeEnvironment
    2222
    2323namespace ResolvExpr {
  • src/ResolvExpr/PolyCost.cc

    rfc56cdbf r8135d4c  
    1414//
    1515
    16 #include "typeops.h"
    17 #include "SynTree/Type.h"
    18 #include "SynTree/Visitor.h"
    19 #include "SymTab/Indexer.h"
    20 #include "TypeEnvironment.h"
     16#include "SymTab/Indexer.h"   // for Indexer
     17#include "SynTree/Type.h"     // for TypeInstType, Type
     18#include "SynTree/Visitor.h"  // for Visitor
     19#include "TypeEnvironment.h"  // for EqvClass, TypeEnvironment
    2120
    2221namespace ResolvExpr {
  • src/ResolvExpr/PtrsAssignable.cc

    rfc56cdbf r8135d4c  
    1414//
    1515
    16 #include "typeops.h"
    17 #include "SynTree/Type.h"
    18 #include "SynTree/Declaration.h"
    19 #include "SynTree/Visitor.h"
     16#include "ResolvExpr/TypeEnvironment.h"  // for EqvClass, TypeEnvironment
     17#include "SynTree/Type.h"                // for TypeInstType, Type, BasicType
     18#include "SynTree/Visitor.h"             // for Visitor
    2019
    2120
  • src/ResolvExpr/PtrsCastable.cc

    rfc56cdbf r8135d4c  
    1414//
    1515
    16 #include "typeops.h"
    17 #include "SynTree/Type.h"
    18 #include "SynTree/Declaration.h"
    19 #include "SynTree/Visitor.h"
    20 #include "SymTab/Indexer.h"
     16#include "ResolvExpr/TypeEnvironment.h"  // for EqvClass, TypeEnvironment
     17#include "SymTab/Indexer.h"              // for Indexer
     18#include "SynTree/Declaration.h"         // for TypeDecl, TypeDecl::Kind::Ftype
     19#include "SynTree/Type.h"                // for TypeInstType, Type, BasicType
     20#include "SynTree/Visitor.h"             // for Visitor
     21#include "typeops.h"                     // for ptrsAssignable
    2122
    2223
  • src/ResolvExpr/RenameVars.cc

    rfc56cdbf r8135d4c  
    1414//
    1515
    16 #include <sstream>
     16#include <ext/alloc_traits.h>      // for __alloc_traits<>::value_type
     17#include <memory>                  // for allocator_traits<>::value_type
     18#include <sstream>                 // for operator<<, basic_ostream, ostring...
     19#include <utility>                 // for pair
    1720
     21#include "Common/SemanticError.h"  // for SemanticError
    1822#include "RenameVars.h"
    19 #include "SynTree/Visitor.h"
    20 #include "SynTree/Type.h"
    21 #include "SynTree/Declaration.h"
    22 #include "SynTree/Expression.h"
     23#include "SynTree/Declaration.h"   // for DeclarationWithType, TypeDecl, Dec...
     24#include "SynTree/Expression.h"    // for Expression
     25#include "SynTree/Type.h"          // for Type, TypeInstType, TraitInstType
     26#include "SynTree/Visitor.h"       // for acceptAll, maybeAccept
    2327
    2428namespace ResolvExpr {
  • src/ResolvExpr/RenameVars.h

    rfc56cdbf r8135d4c  
    55// file "LICENCE" distributed with Cforall.
    66//
    7 // RenameVars.h -- 
     7// RenameVars.h --
    88//
    99// Author           : Richard C. Bilson
     
    1616#pragma once
    1717
    18 #include <list>
    19 #include <map>
    20 #include <string>
     18#include <list>               // for list
     19#include <map>                // for map
     20#include <string>             // for string
    2121
    22 #include "SynTree/SynTree.h"
    23 #include "SynTree/Visitor.h"
     22#include "SynTree/SynTree.h"  // for Visitor Nodes
     23#include "SynTree/Visitor.h"  // for Visitor
    2424
    2525namespace ResolvExpr {
  • src/ResolvExpr/ResolveTypeof.cc

    rfc56cdbf r8135d4c  
    1515
    1616#include "ResolveTypeof.h"
    17 #include "Alternative.h"
    18 #include "AlternativeFinder.h"
    19 #include "Resolver.h"
    20 #include "TypeEnvironment.h"
    21 #include "SynTree/Expression.h"
    22 #include "SynTree/Type.h"
     17
     18#include <cassert>               // for assert
     19
     20#include "Resolver.h"            // for resolveInVoidContext
     21#include "SynTree/Expression.h"  // for Expression
     22#include "SynTree/Mutator.h"     // for Mutator
     23#include "SynTree/Type.h"        // for TypeofType, Type
     24
     25namespace SymTab {
     26class Indexer;
     27}  // namespace SymTab
    2328
    2429namespace ResolvExpr {
  • src/ResolvExpr/ResolveTypeof.h

    rfc56cdbf r8135d4c  
    1616#pragma once
    1717
    18 #include "SynTree/SynTree.h"
    19 #include "SymTab/Indexer.h"
     18class Type;
     19namespace SymTab {
     20class Indexer;
     21}  // namespace SymTab
    2022
    2123namespace ResolvExpr {
  • src/ResolvExpr/Resolver.cc

    rfc56cdbf r8135d4c  
    1414//
    1515
    16 #include <iostream>
    17 
    18 #include "Alternative.h"
    19 #include "AlternativeFinder.h"
    20 #include "CurrentObject.h"
    21 #include "RenameVars.h"
     16#include <stddef.h>                      // for NULL
     17#include <cassert>                       // for safe_dynamic_cast, assert
     18#include <memory>                        // for allocator, allocator_traits<...
     19#include <tuple>                         // for get
     20
     21#include "Alternative.h"                 // for Alternative, AltList
     22#include "AlternativeFinder.h"           // for AlternativeFinder, resolveIn...
     23#include "Common/SemanticError.h"        // for SemanticError
     24#include "Common/utility.h"              // for ValueGuard, group_iterate
     25#include "CurrentObject.h"               // for CurrentObject
     26#include "InitTweak/InitTweak.h"         // for isIntrinsicSingleArgCallStmt
     27#include "RenameVars.h"                  // for RenameVars, global_renamer
     28#include "ResolvExpr/TypeEnvironment.h"  // for TypeEnvironment
     29#include "ResolveTypeof.h"               // for resolveTypeof
    2230#include "Resolver.h"
    23 #include "ResolveTypeof.h"
    24 #include "typeops.h"
    25 
    26 #include "SynTree/Expression.h"
    27 #include "SynTree/Initializer.h"
    28 #include "SynTree/Statement.h"
    29 #include "SynTree/Type.h"
    30 
    31 #include "SymTab/Autogen.h"
    32 #include "SymTab/Indexer.h"
    33 
    34 #include "Common/utility.h"
    35 
    36 #include "InitTweak/InitTweak.h"
     31#include "SymTab/Autogen.h"              // for SizeType
     32#include "SymTab/Indexer.h"              // for Indexer
     33#include "SynTree/Declaration.h"         // for ObjectDecl, TypeDecl, Declar...
     34#include "SynTree/Expression.h"          // for Expression, CastExpr, InitExpr
     35#include "SynTree/Initializer.h"         // for ConstructorInit, SingleInit
     36#include "SynTree/Statement.h"           // for ForStmt, Statement, BranchStmt
     37#include "SynTree/Type.h"                // for Type, BasicType, PointerType
     38#include "SynTree/TypeSubstitution.h"    // for TypeSubstitution
     39#include "SynTree/Visitor.h"             // for acceptAll, maybeAccept
     40#include "typeops.h"                     // for extractResultType
    3741
    3842using namespace std;
     
    390394
    391395        void Resolver::visit( CatchStmt *catchStmt ) {
     396                // inline Indexer::visit so that the exception variable is still in-scope for
     397                // findSingleExpression() below
     398                Parent::enterScope();
     399                Visitor::visit( catchStmt );
     400               
    392401                if ( catchStmt->get_cond() ) {
    393402                        Expression * wrapped = new CastExpr(
     
    397406                        catchStmt->set_cond( findSingleExpression( wrapped, *this ) );
    398407                }
     408
     409                Parent::leaveScope();
    399410        }
    400411
  • src/ResolvExpr/Resolver.h

    rfc56cdbf r8135d4c  
    1616#pragma once
    1717
    18 #include "SynTree/SynTree.h"
    19 #include "SymTab/Indexer.h"
     18#include <list>  // for list
     19
     20class ConstructorInit;
     21class Declaration;
     22class Expression;
     23class StmtExpr;
     24namespace SymTab {
     25class Indexer;
     26}  // namespace SymTab
    2027
    2128namespace ResolvExpr {
  • src/ResolvExpr/TypeEnvironment.cc

    rfc56cdbf r8135d4c  
    1414//
    1515
    16 #include <algorithm>
    17 #include <iterator>
    18 
     16#include <cassert>                     // for assert
     17#include <algorithm>                   // for copy, set_intersection
     18#include <iterator>                    // for ostream_iterator, insert_iterator
     19#include <utility>                     // for pair
     20
     21#include "Common/utility.h"            // for maybeClone
     22#include "SynTree/Type.h"              // for Type, FunctionType, Type::Fora...
     23#include "SynTree/TypeSubstitution.h"  // for TypeSubstitution
    1924#include "TypeEnvironment.h"
    20 #include "SynTree/Type.h"
    21 #include "SynTree/TypeSubstitution.h"
    22 #include "Common/utility.h"
    2325
    2426namespace ResolvExpr {
  • src/ResolvExpr/TypeEnvironment.h

    rfc56cdbf r8135d4c  
    1616#pragma once
    1717
    18 #include <string>
    19 #include <set>
    20 #include <list>
    21 #include <iostream>
     18#include <iostream>                    // for ostream
     19#include <list>                        // for list, list<>::iterator, list<>...
     20#include <map>                         // for map, map<>::value_compare
     21#include <set>                         // for set
     22#include <string>                      // for string
    2223
    23 #include "SynTree/SynTree.h"
    24 #include "SynTree/Type.h"
    25 #include "SynTree/TypeSubstitution.h"
    26 #include "SynTree/Declaration.h"
     24#include "SynTree/Declaration.h"       // for TypeDecl::Data, DeclarationWit...
     25#include "SynTree/SynTree.h"           // for UniqueId
     26#include "SynTree/Type.h"              // for Type, Type::ForallList
     27#include "SynTree/TypeSubstitution.h"  // for TypeSubstitution
    2728
    2829namespace ResolvExpr {
  • src/ResolvExpr/Unify.cc

    rfc56cdbf r8135d4c  
    1414//
    1515
    16 #include <set>
    17 #include <memory>
    18 
     16#include <cassert>                // for assertf, assert
     17#include <iterator>               // for back_insert_iterator, back_inserter
     18#include <map>                    // for _Rb_tree_const_iterator, _Rb_tree_i...
     19#include <memory>                 // for unique_ptr, auto_ptr
     20#include <set>                    // for set
     21#include <string>                 // for string, operator==, operator!=, bas...
     22#include <utility>                // for pair
     23
     24#include "FindOpenVars.h"         // for findOpenVars
     25#include "Parser/LinkageSpec.h"   // for C
     26#include "SynTree/Constant.h"     // for Constant
     27#include "SynTree/Declaration.h"  // for TypeDecl, TypeDecl::Data, Declarati...
     28#include "SynTree/Expression.h"   // for TypeExpr, Expression, ConstantExpr
     29#include "SynTree/Mutator.h"      // for Mutator
     30#include "SynTree/Type.h"         // for Type, TypeInstType, FunctionType
     31#include "SynTree/Visitor.h"      // for Visitor
     32#include "Tuples/Tuples.h"        // for isTtype
     33#include "TypeEnvironment.h"      // for EqvClass, AssertionSet, OpenVarSet
    1934#include "Unify.h"
    20 #include "TypeEnvironment.h"
    21 #include "typeops.h"
    22 #include "FindOpenVars.h"
    23 #include "SynTree/Visitor.h"
    24 #include "SynTree/Type.h"
    25 #include "SynTree/Declaration.h"
    26 #include "SymTab/Indexer.h"
    27 #include "Common/utility.h"
    28 #include "Tuples/Tuples.h"
     35#include "typeops.h"              // for flatten, occurs, commonType
     36
     37namespace SymTab {
     38class Indexer;
     39}  // namespace SymTab
    2940
    3041// #define DEBUG
  • src/ResolvExpr/Unify.h

    rfc56cdbf r8135d4c  
    1616#pragma once
    1717
    18 #include <map>
    19 #include <list>
    20 #include "SynTree/SynTree.h"
    21 #include "SynTree/Type.h"
    22 #include "SynTree/Declaration.h"
    23 #include "SymTab/Indexer.h"
    24 #include "TypeEnvironment.h"
    25 #include "Common/utility.h"
     18#include <list>                   // for list
     19
     20#include "Common/utility.h"       // for deleteAll
     21#include "SynTree/Declaration.h"  // for TypeDecl, TypeDecl::Data
     22#include "TypeEnvironment.h"      // for AssertionSet, OpenVarSet
     23
     24class Type;
     25class TypeInstType;
     26namespace SymTab {
     27class Indexer;
     28}  // namespace SymTab
    2629
    2730namespace ResolvExpr {
Note: See TracChangeset for help on using the changeset viewer.