@@ -4444,16 +4444,16 @@ class ApplyExpr : public Expr {
44444444 // / The function being called.
44454445 Expr *Fn;
44464446
4447- // / The argument being passed to it, and whether it's a 'super' argument .
4448- llvm::PointerIntPair< Expr *, 1 , bool > ArgAndIsSuper ;
4447+ // / The argument being passed to it.
4448+ Expr *Arg ;
44494449
44504450 // / Returns true if \c e could be used as the call's argument. For most \c ApplyExpr
44514451 // / subclasses, this means it is a \c ParenExpr or \c TupleExpr.
44524452 bool validateArg (Expr *e) const ;
44534453
44544454protected:
44554455 ApplyExpr (ExprKind Kind, Expr *Fn, Expr *Arg, bool Implicit, Type Ty = Type())
4456- : Expr(Kind, Implicit, Ty), Fn(Fn), ArgAndIsSuper (Arg, false ) {
4456+ : Expr(Kind, Implicit, Ty), Fn(Fn), Arg (Arg) {
44574457 assert (classof ((Expr*)this ) && " ApplyExpr::classof out of date" );
44584458 assert (validateArg (Arg) && " Arg is not a permitted expr kind" );
44594459 Bits.ApplyExpr .ThrowsIsSet = false ;
@@ -4466,15 +4466,10 @@ class ApplyExpr : public Expr {
44664466 void setFn (Expr *e) { Fn = e; }
44674467 Expr *getSemanticFn () const { return Fn->getSemanticsProvidingExpr (); }
44684468
4469- Expr *getArg () const { return ArgAndIsSuper. getPointer () ; }
4469+ Expr *getArg () const { return Arg ; }
44704470 void setArg (Expr *e) {
44714471 assert (validateArg (e) && " Arg is not a permitted expr kind" );
4472- ArgAndIsSuper = {e, ArgAndIsSuper.getInt ()};
4473- }
4474-
4475- bool isSuper () const { return ArgAndIsSuper.getInt (); }
4476- void setIsSuper (bool super) {
4477- ArgAndIsSuper = {ArgAndIsSuper.getPointer (), super};
4472+ Arg = e;
44784473 }
44794474
44804475 // / Has the type-checker set the 'throws' bit yet?
0 commit comments