Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/AST/Expr.hpp

    recf3812 rb6f2e7ab  
    330330enum GeneratedFlag { ExplicitCast, GeneratedCast };
    331331
    332 /// Even within the basic cast expression there are variants:
    333 /// CCast - C-Style Cast: A backwards compatable cast from C.
    334 /// CoerceCast - Coercion Cast: Change the type without changing the value.
    335 /// ReturnCast - Ascription Cast: Requires the given expression result type.
    336 enum CastKind { CCast, CoerceCast, ReturnCast };
    337 
    338332/// A type cast, e.g. `(int)e`
    339333class CastExpr final : public Expr {
     
    342336        GeneratedFlag isGenerated;
    343337
    344         CastKind kind = CCast;
     338        enum CastKind {
     339                Default, // C
     340                Coerce, // reinterpret cast
     341                Return  // overload selection
     342        };
     343
     344        CastKind kind = Default;
    345345
    346346        CastExpr( const CodeLocation & loc, const Expr * a, const Type * to,
    347                 GeneratedFlag g = GeneratedCast, CastKind kind = CCast ) : Expr( loc, to ), arg( a ), isGenerated( g ), kind( kind ) {}
     347                GeneratedFlag g = GeneratedCast, CastKind kind = Default ) : Expr( loc, to ), arg( a ), isGenerated( g ), kind( kind ) {}
    348348        /// Cast-to-void
    349         CastExpr( const CodeLocation & loc, const Expr * a, GeneratedFlag g = GeneratedCast, CastKind kind = CCast );
     349        CastExpr( const CodeLocation & loc, const Expr * a, GeneratedFlag g = GeneratedCast, CastKind kind = Default );
    350350
    351351        /// Wrap a cast expression around an existing expression (always generated)
Note: See TracChangeset for help on using the changeset viewer.