Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/AST/Decl.cpp

    r3e5dd913 r490fb92e  
    5050
    5151FunctionDecl::FunctionDecl( const CodeLocation & loc, const std::string & name,
    52         std::vector<ptr<TypeDecl>>&& forall,
    53         std::vector<ptr<DeclWithType>>&& params, std::vector<ptr<DeclWithType>>&& returns,
    54         CompoundStmt * stmts, Storage::Classes storage, Linkage::Spec linkage,
    55         std::vector<ptr<Attribute>>&& attrs, Function::Specs fs, bool isVarArgs)
    56 : DeclWithType( loc, name, storage, linkage, std::move(attrs), fs ), params(std::move(params)), returns(std::move(returns)),
    57         type_params(std::move(forall)), stmts( stmts ) {
    58         FunctionType * ftype = new FunctionType(static_cast<ArgumentFlag>(isVarArgs));
    59         for (auto & param : this->params) {
    60                 ftype->params.emplace_back(param->get_type());
    61         }
    62         for (auto & ret : this->returns) {
    63                 ftype->returns.emplace_back(ret->get_type());
    64         }
    65         for (auto & tp : this->type_params) {
    66                 ftype->forall.emplace_back(new TypeInstType(tp->name, tp));
    67         }
    68         this->type = ftype;
    69 }
     52                std::vector<ptr<TypeDecl>>&& forall,
     53                std::vector<ptr<DeclWithType>>&& params, std::vector<ptr<DeclWithType>>&& returns,
     54                CompoundStmt * stmts, Storage::Classes storage, Linkage::Spec linkage,
     55                std::vector<ptr<Attribute>>&& attrs, Function::Specs fs, bool isVarArgs)
     56        : DeclWithType( loc, name, storage, linkage, std::move(attrs), fs ), params(std::move(params)), returns(std::move(returns)),
     57          stmts( stmts ) {
     58                  FunctionType * ftype = new FunctionType(static_cast<ArgumentFlag>(isVarArgs));
     59                  for (auto & param : this->params) {
     60                          ftype->params.emplace_back(param->get_type());
     61                  }
     62                  for (auto & ret : this->returns) {
     63                          ftype->returns.emplace_back(ret->get_type());
     64                  }
     65                  ftype->forall = std::move(forall);
     66                  this->type = ftype;
     67          }
    7068
    7169
Note: See TracChangeset for help on using the changeset viewer.