- Timestamp:
- May 22, 2019, 5:32:46 PM (5 years ago)
- Branches:
- ADT, arm-eh, ast-experimental, cleanup-dtors, enum, forall-pointer-decay, jacob/cs343-translation, jenkins-sandbox, master, new-ast, new-ast-unique-expr, pthread-emulation, qualifiedEnum
- Children:
- 489bacf, f23de79d
- Parents:
- 893e106
- Location:
- src
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
src/AST/Expr.cpp
r893e106 r722c4831 159 159 assert( aggregate->result ); 160 160 161 <<<<<<< HEAD 162 // #warning Needs GenericSubsitution.cpp building to work correctly 163 // result.set_and_mutate( mem->get_type() )->qualifiers |= aggregate->result->qualifiers | CV::Lvalue; // FIXME temporary patch 164 165 // take ownership of member type 166 result = mem->get_type(); 167 // substitute aggregate generic parameters into member type 168 genericSubsitution( aggregate->result ).apply( result ); 169 // ensure lvalue and appropriate restrictions from aggregate type 170 result.get_and_mutate()->qualifiers |= aggregate->result->qualifiers | CV::Lvalue; 171 ======= 172 // assert(!"unimplemented; need TypeSubstitution, genericSubstitution"); 173 >>>>>>> ef5ef56042ce2b547da955746d9986e26cf628ca 161 #warning Needs GenericSubsitution.cpp building to work correctly 162 result.set_and_mutate( mem->get_type() )->qualifiers |= aggregate->result->qualifiers | CV::Lvalue; // FIXME temporary patch 163 164 // // take ownership of member type 165 // result = mem->get_type(); 166 // // substitute aggregate generic parameters into member type 167 // genericSubsitution( aggregate->result ).apply( result ); 168 // // ensure lvalue and appropriate restrictions from aggregate type 169 // result.get_and_mutate()->qualifiers |= aggregate->result->qualifiers | CV::Lvalue; 174 170 } 175 171 -
src/AST/GenericSubstitution.cpp
r893e106 r722c4831 31 31 TypeSubstitution sub; 32 32 33 const Type *previsit( const Type * ty ) {33 void previsit( const Type * ty ) { 34 34 assertf( false, "Attempted generic substitution for non-aggregate type: %s", 35 35 toString( ty ).c_str() ); 36 return ty;37 36 } 38 37 39 const ReferenceType *previsit( const ReferenceType * ty ) {38 void previsit( const ReferenceType * ty ) { 40 39 // do nothing; allows substitution from base type 41 return ty;42 40 } 43 41 44 const ReferenceToType *previsit( const ReferenceToType * ty ) {42 void previsit( const ReferenceToType * ty ) { 45 43 visit_children = false; 46 44 // build substitution from base parameters 47 45 const AggregateDecl * aggr = ty->aggr(); 48 46 sub = TypeSubstitution{ aggr->params.begin(), aggr->params.end(), ty->params.begin() }; 49 return ty;50 47 } 51 48 }; -
src/AST/module.mk
r893e106 r722c4831 21 21 AST/DeclReplacer.cpp \ 22 22 AST/Expr.cpp \ 23 AST/GenericSubstitution.cpp \24 23 AST/Init.cpp \ 25 24 AST/LinkageSpec.cpp \ -
src/Makefile.in
r893e106 r722c4831 167 167 am__objects_1 = AST/Attribute.$(OBJEXT) AST/Convert.$(OBJEXT) \ 168 168 AST/Decl.$(OBJEXT) AST/DeclReplacer.$(OBJEXT) \ 169 AST/Expr.$(OBJEXT) AST/GenericSubstitution.$(OBJEXT) \ 170 AST/Init.$(OBJEXT) AST/LinkageSpec.$(OBJEXT) \ 171 AST/Node.$(OBJEXT) AST/Pass.$(OBJEXT) AST/Print.$(OBJEXT) \ 172 AST/Stmt.$(OBJEXT) AST/Type.$(OBJEXT) \ 173 AST/TypeSubstitution.$(OBJEXT) 169 AST/Expr.$(OBJEXT) AST/Init.$(OBJEXT) \ 170 AST/LinkageSpec.$(OBJEXT) AST/Node.$(OBJEXT) \ 171 AST/Pass.$(OBJEXT) AST/Print.$(OBJEXT) AST/Stmt.$(OBJEXT) \ 172 AST/Type.$(OBJEXT) AST/TypeSubstitution.$(OBJEXT) 174 173 am__objects_2 = CodeGen/CodeGenerator.$(OBJEXT) \ 175 174 CodeGen/FixMain.$(OBJEXT) CodeGen/GenType.$(OBJEXT) \ … … 575 574 AST/DeclReplacer.cpp \ 576 575 AST/Expr.cpp \ 577 AST/GenericSubstitution.cpp \578 576 AST/Init.cpp \ 579 577 AST/LinkageSpec.cpp \ … … 741 739 AST/$(DEPDIR)/$(am__dirstamp) 742 740 AST/Expr.$(OBJEXT): AST/$(am__dirstamp) AST/$(DEPDIR)/$(am__dirstamp) 743 AST/GenericSubstitution.$(OBJEXT): AST/$(am__dirstamp) \744 AST/$(DEPDIR)/$(am__dirstamp)745 741 AST/Init.$(OBJEXT): AST/$(am__dirstamp) AST/$(DEPDIR)/$(am__dirstamp) 746 742 AST/LinkageSpec.$(OBJEXT): AST/$(am__dirstamp) \ … … 1177 1173 @AMDEP_TRUE@@am__include@ @am__quote@AST/$(DEPDIR)/DeclReplacer.Po@am__quote@ 1178 1174 @AMDEP_TRUE@@am__include@ @am__quote@AST/$(DEPDIR)/Expr.Po@am__quote@ 1179 @AMDEP_TRUE@@am__include@ @am__quote@AST/$(DEPDIR)/GenericSubstitution.Po@am__quote@1180 1175 @AMDEP_TRUE@@am__include@ @am__quote@AST/$(DEPDIR)/Init.Po@am__quote@ 1181 1176 @AMDEP_TRUE@@am__include@ @am__quote@AST/$(DEPDIR)/LinkageSpec.Po@am__quote@
Note: See TracChangeset
for help on using the changeset viewer.