diff --git a/include/phasar/DataFlow/IfdsIde/EdgeFunctionUtils.h b/include/phasar/DataFlow/IfdsIde/EdgeFunctionUtils.h index dc1b2d816a..4a28b5694c 100644 --- a/include/phasar/DataFlow/IfdsIde/EdgeFunctionUtils.h +++ b/include/phasar/DataFlow/IfdsIde/EdgeFunctionUtils.h @@ -52,15 +52,16 @@ template struct ConstantEdgeFunction { return Value; } - template > ConcreteEF> + template [[nodiscard]] static EdgeFunction compose(EdgeFunctionRef This, - const EdgeFunction &SecondFunction); + const EdgeFunction &SecondFunction) + requires std::derived_from>; - template > ConcreteEF> + template [[nodiscard]] static EdgeFunction - join(EdgeFunctionRef This, - const EdgeFunction &OtherFunction); + join(EdgeFunctionRef This, const EdgeFunction &OtherFunction) + requires std::derived_from>; [[nodiscard]] constexpr bool isConstant() const noexcept { return true; } @@ -441,10 +442,12 @@ EdgeFunction EdgeIdentity::join(EdgeFunctionRef This, } template -template > ConcreteEF> +template EdgeFunction ConstantEdgeFunction::compose(EdgeFunctionRef This, - const EdgeFunction &SecondFunction) { + const EdgeFunction &SecondFunction) + requires std::derived_from> +{ if (auto Default = defaultComposeOrNull(This, SecondFunction)) { return Default; } @@ -482,10 +485,12 @@ ConstantEdgeFunction::compose(EdgeFunctionRef This, } template -template > ConcreteEF> +template EdgeFunction ConstantEdgeFunction::join(EdgeFunctionRef This, - const EdgeFunction &OtherFunction) { + const EdgeFunction &OtherFunction) + requires std::derived_from> +{ if (auto Default = defaultJoinOrNull(This, OtherFunction)) { return Default; }