Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/AST/Expr.hpp

    rae265b55 r99da267  
    5050
    5151        ParamEntry() : decl( 0 ), declptr( nullptr ), actualType( nullptr ), formalType( nullptr ), expr( nullptr ) {}
    52         ParamEntry(
    53                 UniqueId id, const Decl * declptr, const Type * actual, const Type * formal,
     52        ParamEntry( 
     53                UniqueId id, const Decl * declptr, const Type * actual, const Type * formal, 
    5454                const Expr * e )
    5555        : decl( id ), declptr( declptr ), actualType( actual ), formalType( formal ), expr( e ) {}
     
    115115                        case Empty: new(&data.resnSlots) ResnSlots{}; mode = Slots; // fallthrough
    116116                        case Slots: return data.resnSlots;
    117                         case Params: assertf(false, "Cannot return to resnSlots from Params"); abort();
     117                        case Params: assert(!"Cannot return to resnSlots from Params");
    118118                        }
    119                         assertf(false, "unreachable");
     119                        return *((ResnSlots*)nullptr);
    120120                }
    121121
     
    124124                                return data.resnSlots;
    125125                        }
    126                         assertf(false, "Mode was not already resnSlots");
    127                         abort();
     126                        assert(!"Mode was not already resnSlots");
     127                        return *((ResnSlots*)nullptr);
    128128                }
    129129
     
    134134                        case Params: return data.inferParams;
    135135                        }
    136                         assertf(false, "unreachable");
     136                        assert(!"unreachable");
     137                        return *((InferredParams*)nullptr);
    137138                }
    138139
     
    141142                                return data.inferParams;
    142143                        }
    143                         assertf(false, "Mode was not already Params");
    144                         abort();
     144                        assert(!"Mode was not already Params");
     145                        return *((InferredParams*)nullptr);
    145146                }
    146147
    147148                void set_inferParams( InferredParams && ps ) {
    148149                        switch(mode) {
    149                         case Slots:
     150                        case Slots: 
    150151                                data.resnSlots.~ResnSlots();
    151152                                // fallthrough
    152                         case Empty:
     153                        case Empty: 
    153154                                new(&data.inferParams) InferredParams{ std::move( ps ) };
    154155                                mode = Params;
     
    174175                                        data.inferParams[p.first] = std::move(p.second);
    175176                                }
    176                         } else assertf(false, "invalid mode");
     177                        } else assert(!"invalid mode");
    177178                }
    178179        };
     
    358359        MemberExpr * clone() const override { return new MemberExpr{ *this }; }
    359360        MUTATE_FRIEND
    360 
    361         // Custructor overload meant only for AST conversion
    362         enum NoOpConstruction { NoOpConstructionChosen };
    363         MemberExpr( const CodeLocation & loc, const DeclWithType * mem, const Expr * agg,
    364             NoOpConstruction overloadSelector );
    365         friend class ::ConverterOldToNew;
    366         friend class ::ConverterNewToOld;
    367361};
    368362
     
    393387
    394388        ConstantExpr(
    395                 const CodeLocation & loc, const Type * ty, const std::string & r,
     389                const CodeLocation & loc, const Type * ty, const std::string & r, 
    396390                        std::optional<unsigned long long> i )
    397391        : Expr( loc, ty ), rep( r ), ival( i ) {}
     
    779773public:
    780774        ptr<Expr> expr;
    781         readonly<Decl> deleteStmt;
    782 
    783         DeletedExpr( const CodeLocation & loc, const Expr * e, const Decl * del )
     775        readonly<Node> deleteStmt;
     776
     777        DeletedExpr( const CodeLocation & loc, const Expr * e, const Node * del )
    784778        : Expr( loc, e->result ), expr( e ), deleteStmt( del ) { assert( expr->result ); }
    785779
Note: See TracChangeset for help on using the changeset viewer.