Changeset df626eb
- Timestamp:
- Oct 24, 2017, 1:09:33 PM (7 years ago)
- 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:
- b45d4b2
- Parents:
- 85d340d
- git-author:
- Rob Schluntz <rschlunt@…> (10/24/17 13:08:34)
- git-committer:
- Rob Schluntz <rschlunt@…> (10/24/17 13:09:33)
- Location:
- src
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
TabularUnified src/ResolvExpr/AlternativeFinder.cc ¶
r85d340d rdf626eb 632 632 std::cerr << std::endl; 633 633 ) 634 ApplicationExpr *appExpr = static_cast< ApplicationExpr* >( newerAlt.expr );635 634 // follow the current assertion's ID chain to find the correct set of inferred parameters to add the candidate to (i.e. the set of inferred parameters belonging to the entity which requested the assertion parameter). 636 InferredParams * inferParameters = & appExpr->get_inferParams();635 InferredParams * inferParameters = &newerAlt.expr->get_inferParams(); 637 636 for ( UniqueId id : cur->second.idChain ) { 638 637 inferParameters = (*inferParameters)[ id ].inferParams.get(); -
TabularUnified src/SynTree/ApplicationExpr.cc ¶
r85d340d rdf626eb 59 59 60 60 ApplicationExpr::ApplicationExpr( const ApplicationExpr &other ) : 61 Expression( other ), function( maybeClone( other.function ) ) , inferParams( other.inferParams ){61 Expression( other ), function( maybeClone( other.function ) ) { 62 62 cloneAll( other.args, args ); 63 63 } -
TabularUnified src/SynTree/Expression.cc ¶
r85d340d rdf626eb 35 35 Expression::Expression() : result( 0 ), env( 0 ) {} 36 36 37 Expression::Expression( const Expression &other ) : BaseSyntaxNode( other ), result( maybeClone( other.result ) ), env( maybeClone( other.env ) ), extension( other.extension ) {37 Expression::Expression( const Expression &other ) : BaseSyntaxNode( other ), result( maybeClone( other.result ) ), env( maybeClone( other.env ) ), extension( other.extension ), inferParams( other.inferParams ) { 38 38 } 39 39 -
TabularUnified src/SynTree/Expression.h ¶
r85d340d rdf626eb 31 31 32 32 33 /// Expression is the root type for all expressions34 class Expression : public BaseSyntaxNode{35 public:36 Type * result;37 TypeSubstitution * env;38 bool extension = false;39 40 Expression();41 Expression( const Expression & other );42 virtual ~Expression();43 44 Type *& get_result() { return result; }45 const Type * get_result() const { return result; }46 void set_result( Type * newValue ) { result = newValue; }47 48 TypeSubstitution * get_env() const { return env; }49 void set_env( TypeSubstitution * newValue ) { env = newValue; }50 bool get_extension() const { return extension; }51 Expression * set_extension( bool exten ) { extension = exten; return this; }52 53 virtual Expression * clone() const override = 0;54 virtual void accept( Visitor & v ) override = 0;55 virtual Expression * acceptMutator( Mutator & m ) override = 0;56 virtual void print( std::ostream & os, Indenter indent = {} ) const override;57 };58 59 33 struct ParamEntry; 60 34 … … 73 47 Type * actualType; 74 48 Type * formalType; 75 Expression * expr;49 Expression * expr; 76 50 std::unique_ptr< InferredParams > inferParams; 51 }; 52 53 /// Expression is the root type for all expressions 54 class Expression : public BaseSyntaxNode { 55 public: 56 Type * result; 57 TypeSubstitution * env; 58 bool extension = false; 59 InferredParams inferParams; 60 61 Expression(); 62 Expression( const Expression & other ); 63 virtual ~Expression(); 64 65 Type *& get_result() { return result; } 66 const Type * get_result() const { return result; } 67 void set_result( Type * newValue ) { result = newValue; } 68 69 TypeSubstitution * get_env() const { return env; } 70 void set_env( TypeSubstitution * newValue ) { env = newValue; } 71 bool get_extension() const { return extension; } 72 Expression * set_extension( bool exten ) { extension = exten; return this; } 73 74 InferredParams & get_inferParams() { return inferParams; } 75 76 virtual Expression * clone() const override = 0; 77 virtual void accept( Visitor & v ) override = 0; 78 virtual Expression * acceptMutator( Mutator & m ) override = 0; 79 virtual void print( std::ostream & os, Indenter indent = {} ) const override; 77 80 }; 78 81 … … 83 86 Expression * function; 84 87 std::list<Expression *> args; 85 InferredParams inferParams;86 88 87 89 ApplicationExpr( Expression * function, const std::list<Expression *> & args = std::list< Expression * >() ); … … 92 94 void set_function( Expression * newValue ) { function = newValue; } 93 95 std::list<Expression *>& get_args() { return args; } 94 InferredParams & get_inferParams() { return inferParams; }95 96 96 97 virtual ApplicationExpr * clone() const { return new ApplicationExpr( * this ); }
Note: See TracChangeset
for help on using the changeset viewer.