@@ -4444,16 +4444,16 @@ class ApplyExpr : public Expr {
4444
4444
// / The function being called.
4445
4445
Expr *Fn;
4446
4446
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 ;
4449
4449
4450
4450
// / Returns true if \c e could be used as the call's argument. For most \c ApplyExpr
4451
4451
// / subclasses, this means it is a \c ParenExpr or \c TupleExpr.
4452
4452
bool validateArg (Expr *e) const ;
4453
4453
4454
4454
protected:
4455
4455
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) {
4457
4457
assert (classof ((Expr*)this ) && " ApplyExpr::classof out of date" );
4458
4458
assert (validateArg (Arg) && " Arg is not a permitted expr kind" );
4459
4459
Bits.ApplyExpr .ThrowsIsSet = false ;
@@ -4466,15 +4466,10 @@ class ApplyExpr : public Expr {
4466
4466
void setFn (Expr *e) { Fn = e; }
4467
4467
Expr *getSemanticFn () const { return Fn->getSemanticsProvidingExpr (); }
4468
4468
4469
- Expr *getArg () const { return ArgAndIsSuper. getPointer () ; }
4469
+ Expr *getArg () const { return Arg ; }
4470
4470
void setArg (Expr *e) {
4471
4471
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;
4478
4473
}
4479
4474
4480
4475
// / Has the type-checker set the 'throws' bit yet?
0 commit comments