Changeset 69bafd2 for src/AST/Type.hpp


Ignore:
Timestamp:
May 15, 2019, 3:57:26 PM (5 years ago)
Author:
Aaron Moss <a3moss@…>
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:
3648d98
Parents:
9e1d485 (diff), be567e9 (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' of plg.uwaterloo.ca:software/cfa/cfa-cc

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/AST/Type.hpp

    r9e1d485 r69bafd2  
    6767        virtual bool isComplete() const { return true; }
    6868
    69         virtual Type * accept( Visitor & v ) override = 0;
     69        virtual const Type * accept( Visitor & v ) const override = 0;
    7070private:
    7171        virtual Type * clone() const override = 0;
     
    8181        bool isComplete() const override { return false; }
    8282
    83         Type * accept( Visitor & v ) override { return v.visit( this ); }
     83        const Type * accept( Visitor & v ) const override { return v.visit( this ); }
    8484private:
    8585        VoidType * clone() const override { return new VoidType{ *this }; }
     
    143143        bool isInteger() const { return kind <= MAX_INTEGER_TYPE; }
    144144
    145         Type * accept( Visitor & v ) override { return v.visit( this ); }
     145        const Type * accept( Visitor & v ) const override { return v.visit( this ); }
    146146private:
    147147        BasicType * clone() const override { return new BasicType{ *this }; }
     
    173173        bool isComplete() const override { return ! isVarLen; }
    174174
    175         Type * accept( Visitor & v ) override { return v.visit( this ); }
     175        const Type * accept( Visitor & v ) const override { return v.visit( this ); }
    176176private:
    177177        PointerType * clone() const override { return new PointerType{ *this }; }
     
    194194        bool isComplete() const override { return dimension || isVarLen; }
    195195
    196         Type * accept( Visitor & v ) override { return v.visit( this ); }
     196        const Type * accept( Visitor & v ) const override { return v.visit( this ); }
    197197private:
    198198        ArrayType * clone() const override { return new ArrayType{ *this }; }
     
    213213        unsigned size() const override { return base->size(); }
    214214
    215         Type * accept( Visitor & v ) override { return v.visit( this ); }
     215        const Type * accept( Visitor & v ) const override { return v.visit( this ); }
    216216private:
    217217        ReferenceType * clone() const override { return new ReferenceType{ *this }; }
     
    227227        : Type(q), parent(p), child(c) {}
    228228
    229         Type * accept( Visitor & v ) override { return v.visit( this ); }
     229        const Type * accept( Visitor & v ) const override { return v.visit( this ); }
    230230private:
    231231        QualifiedType * clone() const override { return new QualifiedType{ *this }; }
     
    271271        bool isUnprototyped() const { return isVarArgs && parameters.size() == 0; }
    272272
    273         Type * accept( Visitor & v ) override { return v.visit( this ); }
     273        const Type * accept( Visitor & v ) const override { return v.visit( this ); }
    274274private:
    275275        FunctionType * clone() const override { return new FunctionType{ *this }; }
     
    316316        const StructDecl * aggr() const override { return base; }
    317317
    318         Type * accept( Visitor & v ) override { return v.visit( this ); }
     318        const Type * accept( Visitor & v ) const override { return v.visit( this ); }
    319319private:
    320320        StructInstType * clone() const override { return new StructInstType{ *this }; }
     
    338338        const UnionDecl * aggr() const override { return base; }
    339339
    340         Type * accept( Visitor & v ) override { return v.visit( this ); }
     340        const Type * accept( Visitor & v ) const override { return v.visit( this ); }
    341341private:
    342342        UnionInstType * clone() const override { return new UnionInstType{ *this }; }
     
    360360        const EnumDecl * aggr() const override { return base; }
    361361
    362         Type * accept( Visitor & v ) override { return v.visit( this ); }
     362        const Type * accept( Visitor & v ) const override { return v.visit( this ); }
    363363private:
    364364        EnumInstType * clone() const override { return new EnumInstType{ *this }; }
     
    383383        const TraitDecl * aggr() const override { return base; }
    384384
    385         Type * accept( Visitor & v ) override { return v.visit( this ); }
     385        const Type * accept( Visitor & v ) const override { return v.visit( this ); }
    386386private:
    387387        TraitInstType * clone() const override { return new TraitInstType{ *this }; }
     
    411411        const AggregateDecl * aggr() const override { assert(false); }
    412412
    413         Type * accept( Visitor & v ) override { return v.visit( this ); }
     413        const Type * accept( Visitor & v ) const override { return v.visit( this ); }
    414414private:
    415415        TypeInstType * clone() const override { return new TypeInstType{ *this }; }
     
    439439        }
    440440
    441         Type * accept( Visitor & v ) override { return v.visit( this ); }
     441        const Type * accept( Visitor & v ) const override { return v.visit( this ); }
    442442private:
    443443        TupleType * clone() const override { return new TupleType{ *this }; }
     
    453453        : Type(q), expr(e), kind(k) {}
    454454
    455         Type * accept( Visitor & v ) override { return v.visit( this ); }
     455        const Type * accept( Visitor & v ) const override { return v.visit( this ); }
    456456private:
    457457        TypeofType * clone() const override { return new TypeofType{ *this }; }
     
    463463        VarArgsType( CV::Qualifiers q = {} ) : Type( q ) {}
    464464       
    465         Type * accept( Visitor & v ) override { return v.visit( this ); }
     465        const Type * accept( Visitor & v ) const override { return v.visit( this ); }
    466466private:
    467467        VarArgsType * clone() const override { return new VarArgsType{ *this }; }
     
    473473        ZeroType( CV::Qualifiers q = {} ) : Type( q ) {}
    474474       
    475         Type * accept( Visitor & v ) override { return v.visit( this ); }
     475        const Type * accept( Visitor & v ) const override { return v.visit( this ); }
    476476private:
    477477        ZeroType * clone() const override { return new ZeroType{ *this }; }     
     
    483483        OneType( CV::Qualifiers q = {} ) : Type( q ) {}
    484484
    485         Type * accept( Visitor & v ) override { return v.visit( this ); }
     485        const Type * accept( Visitor & v ) const override { return v.visit( this ); }
    486486private:
    487487        OneType * clone() const override { return new OneType{ *this }; }
     
    493493        GlobalScopeType( CV::Qualifiers q = {} ) : Type( q ) {}
    494494
    495         Type * accept( Visitor & v ) override { return v.visit( this ); }
     495        const Type * accept( Visitor & v ) const override { return v.visit( this ); }
    496496private:
    497497        GlobalScopeType * clone() const override { return new GlobalScopeType{ *this }; }
Note: See TracChangeset for help on using the changeset viewer.