diff options
| author | ArielG-NV <159081215+ArielG-NV@users.noreply.github.com> | 2024-06-06 17:35:40 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-06-06 17:35:40 -0400 |
| commit | a709e029df959efa9c0aa73f42cbe972fc26c5b6 (patch) | |
| tree | b691db389e0537e94bb9ceede756eebd97f1572a /examples/hello-world | |
| parent | d301267ccba581dd7af9237d88418d9f7aeb39e1 (diff) | |
Update capability-generator-main.cpp (#4295)
fixes: #4293
Currently the code does:
```
void inclusiveJoinConjunction(CapabilitySharedContext& context, CapabilityConjunction& c, List<CapabilityConjunction>& toAddAfter)
{
if (c.isImpossible())
return;
for (auto& conjunction : conjunctions)
{
if (c.implies(conjunction))
return;
}
```
This is incorrect because it means that "if the set we are going to add is a super set of an element, don't add it". This does not make sense since inclusive join is meant to be 'additive' of super sets.
Correct behavior code:
```
void inclusiveJoinConjunction(CapabilitySharedContext& context, CapabilityConjunction& c, List<CapabilityConjunction>& toAddAfter)
{
if (c.isImpossible())
return;
for (auto& conjunction : conjunctions)
{
if (conjunction.implies(c))
return;
}
```
This is correct behavior because it means that: "if the set we are going to add is a sub set of an element, ignore it". This makes sense since inclusive join can then add super sets in-place of subsets
Diffstat (limited to 'examples/hello-world')
0 files changed, 0 insertions, 0 deletions
