Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/AST/Decl.hpp

    r54e41b3 r8a5530c  
    3232namespace ast {
    3333
     34class Attribute;
     35class Expr;
     36class Init;
     37class TypeDecl;
     38
    3439/// Base declaration class
    3540class Decl : public ParseNode {
     
    114119};
    115120
     121/// Object declaration `int foo()`
    116122class FunctionDecl : public DeclWithType {
    117123public:
     
    126132          stmts( stmts ) {}
    127133
    128         const Type * get_type() const override { return type.get(); }
    129         void set_type(Type * t) override { type = strict_dynamic_cast< FunctionType* >( t ); }
     134        const Type * get_type() const override;
     135        void set_type(Type * t) override;
    130136
    131137        bool has_body() const { return stmts; }
     
    144150public:
    145151        ptr<Type> base;
    146         std::vector<ptr<TypeDecl>> params;
     152        std::vector<ptr<TypeDecl>> parameters;
    147153        std::vector<ptr<DeclWithType>> assertions;
    148154
    149155        NamedTypeDecl( const CodeLocation& loc, const std::string& name, Storage::Classes storage,
    150156                Type* b, Linkage::Spec spec = Linkage::Cforall )
    151         : Decl( loc, name, storage, spec ), base( b ), params(), assertions() {}
     157        : Decl( loc, name, storage, spec ), base( b ), parameters(), assertions() {}
    152158
    153159        /// Produces a name for the kind of alias
     
    184190        TypeDecl( const CodeLocation& loc, const std::string& name, Storage::Classes storage, Type* b,
    185191                TypeVar::Kind k, bool s, Type* i = nullptr )
    186         : NamedTypeDecl( loc, name, storage, b ), kind( k ), sized( k == TypeVar::Ttype || s ), 
     192        : NamedTypeDecl( loc, name, storage, b ), kind( k ), sized( k == TypeVar::Ttype || s ),
    187193          init( i ) {}
    188194
     
    225231public:
    226232        std::vector<ptr<Decl>> members;
    227         std::vector<ptr<TypeDecl>> params;
     233        std::vector<ptr<TypeDecl>> parameters;
    228234        std::vector<ptr<Attribute>> attributes;
    229235        bool body = false;
     
    232238        AggregateDecl( const CodeLocation& loc, const std::string& name,
    233239                std::vector<ptr<Attribute>>&& attrs = {}, Linkage::Spec linkage = Linkage::Cforall )
    234         : Decl( loc, name, Storage::Classes{}, linkage ), members(), params(),
     240        : Decl( loc, name, Storage::Classes{}, linkage ), members(), parameters(),
    235241          attributes( std::move(attrs) ) {}
    236242
Note: See TracChangeset for help on using the changeset viewer.