Skip to content

Commit 3b3ad1f

Browse files
committed
Simplify excessive conditional expression: (A && !B) || (!A && B) is equivalent to bool(A) != bool(B)
1 parent 54f9cae commit 3b3ad1f

File tree

1 file changed

+4
-4
lines changed

1 file changed

+4
-4
lines changed

lib/SILOptimizer/Analysis/AliasAnalysis.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -488,24 +488,24 @@ static bool typedAccessTBAAMayAlias(SILType LTy, SILType RTy,
488488
// Tuples do not alias non-tuples.
489489
bool LTyTT = LTy.is<TupleType>();
490490
bool RTyTT = RTy.is<TupleType>();
491-
if ((LTyTT && !RTyTT) || (!LTyTT && RTyTT))
491+
if (LTyTT != RTyTT)
492492
return false;
493493

494494
// Structs do not alias non-structs.
495495
StructDecl *LTyStruct = LTy.getStructOrBoundGenericStruct();
496496
StructDecl *RTyStruct = RTy.getStructOrBoundGenericStruct();
497-
if ((LTyStruct && !RTyStruct) || (!LTyStruct && RTyStruct))
497+
if ((LTyStruct != nullptr) != (RTyStruct != nullptr))
498498
return false;
499499

500500
// Enums do not alias non-enums.
501501
EnumDecl *LTyEnum = LTy.getEnumOrBoundGenericEnum();
502502
EnumDecl *RTyEnum = RTy.getEnumOrBoundGenericEnum();
503-
if ((LTyEnum && !RTyEnum) || (!LTyEnum && RTyEnum))
503+
if ((LTyEnum != nullptr) != (RTyEnum != nullptr))
504504
return false;
505505

506506
// Classes do not alias non-classes.
507507
ClassDecl *RTyClass = RTy.getClassOrBoundGenericClass();
508-
if ((LTyClass && !RTyClass) || (!LTyClass && RTyClass))
508+
if ((LTyClass != nullptr) != (RTyClass != nullptr))
509509
return false;
510510

511511
// Classes with separate class hierarchies do not alias.

0 commit comments

Comments
 (0)