Merge pull request #19777 from hvitved/shared/summary-stack-mad-repr-unique

Shared: Make sure `getMadRepresentation` is unique
This commit is contained in:
Tom Hvitved
2025-06-16 20:00:18 +02:00
committed by GitHub
2 changed files with 9 additions and 4 deletions

View File

@@ -4,9 +4,9 @@ extensions:
extensible: summaryModel
data:
# Iterator
- ["lang:core", "<[_]>::iter", "Argument[Self].Element", "ReturnValue.Element", "value", "manual"]
- ["lang:core", "<[_]>::iter_mut", "Argument[Self].Element", "ReturnValue.Element", "value", "manual"]
- ["lang:core", "<[_]>::into_iter", "Argument[Self].Element", "ReturnValue.Element", "value", "manual"]
- ["lang:core", "<[_]>::iter", "Argument[self].Element", "ReturnValue.Element", "value", "manual"]
- ["lang:core", "<[_]>::iter_mut", "Argument[self].Element", "ReturnValue.Element", "value", "manual"]
- ["lang:core", "<[_]>::into_iter", "Argument[self].Element", "ReturnValue.Element", "value", "manual"]
- ["lang:core", "crate::iter::traits::iterator::Iterator::nth", "Argument[self].Element", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "manual"]
- ["lang:core", "crate::iter::traits::iterator::Iterator::next", "Argument[self].Element", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "manual"]
- ["lang:core", "crate::iter::traits::iterator::Iterator::collect", "Argument[self].Element", "ReturnValue.Element", "value", "manual"]

View File

@@ -686,6 +686,11 @@ module Make<
derivedFluentFlowPush(_, _, _, head, tail, _)
}
pragma[nomagic]
private string getUniqueMadRepresentation(SummaryComponent c) {
result = strictconcat(string s | s = c.getMadRepresentation() | s, "/")
}
/**
* A (non-empty) stack of summary components.
*
@@ -732,7 +737,7 @@ module Make<
exists(SummaryComponent head, SummaryComponentStack tail |
head = this.head() and
tail = this.tail() and
result = tail.getMadRepresentation() + "." + head.getMadRepresentation()
result = tail.getMadRepresentation() + "." + getUniqueMadRepresentation(head)
)
or
exists(SummaryComponent c |