Lines Matching refs:Effect
83 FunctionEffect Effect; member
92 Violation(FunctionEffect Effect, ViolationID ID, ViolationSite VS, in Violation()
95 : Effect(Effect), CalleeEffectPreventingInference(CalleeEffect), ID(ID), in Violation()
311 else if (lookup(Viol.Effect) != nullptr) in maybeInsert()
322 *Impl, [&](const auto &Item) { return Item.Effect == Key; }); in lookup()
473 const Violation *firstViolationForEffect(FunctionEffect Effect) { in firstViolationForEffect() argument
474 return InferrableEffectToFirstViolation.lookup(Effect); in firstViolationForEffect()
551 for (FunctionEffect Effect : S.AllEffectsToVerify) { in run() local
552 const FunctionEffect::Flags Flags = Effect.flags(); in run()
554 AllInferrableEffectsToVerify.insert(Effect); in run()
619 for (FunctionEffect Effect : CInfo.Effects) { in verifyDecl() local
620 if (!(Effect.flags() & FunctionEffect::FE_ExcludeThrow)) in verifyDecl()
634 << GetCallableDeclKind(D, nullptr) << Effect.name(); in verifyDecl()
737 auto Check1Effect = [&](FunctionEffect Effect, bool Inferring) { in followCall() argument
738 if (!Effect.shouldDiagnoseFunctionCall(DirectCall, CalleeEffects)) in followCall()
744 !(Effect.flags() & FunctionEffect::FE_InferrableOnCallees)) { in followCall()
747 {Effect, ViolationID::CallsDeclWithoutEffect, in followCall()
752 {Effect, ViolationID::AllocatesMemory, VSite, CallLoc}); in followCall()
759 for (FunctionEffect Effect : PFA.DeclaredVerifiableEffects) in followCall() local
760 Check1Effect(Effect, false); in followCall()
762 for (FunctionEffect Effect : PFA.EffectsToInfer) in followCall() local
763 Check1Effect(Effect, true); in followCall()
841 StringRef effectName = Viol1.Effect.name(); in emitDiagnostics()
897 else if (CalleeInfo.Effects.contains(Viol1.Effect.oppositeKind())) in emitDiagnostics()
901 << FunctionEffect(Viol1.Effect.oppositeKind()).name(); in emitDiagnostics()
912 Completed->firstViolationForEffect(Viol1.Effect); in emitDiagnostics()
1022 for (FunctionEffect Effect : CurrentFunction.DeclaredVerifiableEffects) { in diagnoseLanguageConstruct() local
1023 if (Effect.flags() & Flag) { in diagnoseLanguageConstruct()
1024 addViolation(/*inferring=*/false, Effect, VID, Loc, Callee); in diagnoseLanguageConstruct()
1030 for (FunctionEffect Effect : CurrentFunction.EffectsToInfer) in diagnoseLanguageConstruct() local
1031 if (Effect.flags() & Flag) in diagnoseLanguageConstruct()
1032 addViolation(/*inferring=*/true, Effect, VID, Loc, Callee); in diagnoseLanguageConstruct()
1035 void addViolation(bool Inferring, FunctionEffect Effect, ViolationID VID, in addViolation()
1038 Inferring, Violation(Effect, VID, VSite, Loc, Callee)); in addViolation()
1076 auto Check1Effect = [&](FunctionEffect Effect, bool Inferring) { in checkIndirectCall() argument
1077 if (Effect.shouldDiagnoseFunctionCall( in checkIndirectCall()
1079 addViolation(Inferring, Effect, ViolationID::CallsExprWithoutEffect, in checkIndirectCall()
1083 for (FunctionEffect Effect : CurrentFunction.DeclaredVerifiableEffects) in checkIndirectCall() local
1084 Check1Effect(Effect, false); in checkIndirectCall()
1086 for (FunctionEffect Effect : CurrentFunction.EffectsToInfer) in checkIndirectCall() local
1087 Check1Effect(Effect, true); in checkIndirectCall()
1407 FunctionEffect::Kind NewKind = NewEC.Effect.kind(); in diagnoseConflictingFunctionEffect()
1414 FunctionEffect::Kind PrevKind = PrevEC.Effect.kind(); in diagnoseConflictingFunctionEffect()
1417 if (PrevEC.Effect.oppositeKind() == NewKind) in diagnoseConflictingFunctionEffect()
1476 if (EC.Effect.flags() & FunctionEffect::FE_InferrableOnCallees) { in addDeclWithEffects()
1477 AllEffectsToVerify.insert(EC.Effect); in addDeclWithEffects()
1513 if (Old.Effect.kind() < New.Effect.kind()) in FunctionEffectDiffVector()
1515 else if (New.Effect.kind() < Old.Effect.kind()) in FunctionEffectDiffVector()
1523 Old.Effect.kind(), FunctionEffectDiff::Kind::ConditionMismatch, in FunctionEffectDiffVector()
1532 push_back(FunctionEffectDiff{Old.Effect.kind(), in FunctionEffectDiffVector()
1539 push_back(FunctionEffectDiff{New.Effect.kind(), in FunctionEffectDiffVector()
1560 if (CFE.Effect.kind() == FunctionEffect::Kind::NonBlocking) in shouldDiagnoseConversion()