-
Notifications
You must be signed in to change notification settings - Fork 1.8k
C#: Negative summaries (ie. no flow through) #9867
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
Show all changes
40 commits
Select commit
Hold shift + click to select a range
cc44e89
C#: Introduce support for Negative summary models.
michaelnebel 0cf4e64
C#: Update test cases with new empty query predicate.
michaelnebel 87c7dd9
C#: Disregard destructors in model generation.
michaelnebel 9c6bcec
C#: Add model generator testcase for Negative summaries for abstract …
michaelnebel 136bdeb
C#: Add test for Negative summary generation.
michaelnebel 7d46d15
C#: Update summary model generation test output.
michaelnebel 929f1b3
C#: Prepare for .NET negative summaries and use in UnsupportedExterna…
michaelnebel 0578d3e
C#: Improve python script to allow generation of Negative summary mod…
michaelnebel 15c05e2
Java: Re-factor specialized CSV predicates into overrides of the row …
michaelnebel 5255e16
Java: Sync files and make framework specific code.
michaelnebel 120fb25
Java: Sync files and model generator and tests.
michaelnebel fbc0e6a
Ruby: Sync files and make dummy negative summary implementation.
michaelnebel 8db454a
Swift: Sync files and make dummy negative summary implementation.
michaelnebel 19469a2
C#: Re-factor CSV validation into a separate file.
michaelnebel 4c59cfb
C#: Re-factor the invalidModelRow predicate.
michaelnebel 3315d76
C#: Introduce negative summary column count validation.
michaelnebel 053460f
C#: Introduce validation of negative summaries.
michaelnebel 4939439
Java: Re-factor CSV Validation into standalone module.
michaelnebel 9f9129d
Java: Introduce column validation for negative summaries.
michaelnebel 37f01fe
Go: Re-factor CSV validation into separate file.
michaelnebel 2c2e09b
Go: Add summary model validation on the kind column.
michaelnebel 54e85ff
Swift: Remove some of the copied (and dead) language specific (to C#)…
michaelnebel 9b16192
Swift: Re-factor CsvValidation into a separate file.
michaelnebel 00d1b86
C#: Add negative generated .NET Runtime models.
michaelnebel ad671f7
C#: Update test expected output after addition of negative summaries.
michaelnebel 8949f71
C#: Fixup CSV validation refactor.
michaelnebel 581824a
C#/Java/Ruby/Swift: Fix various typos.
michaelnebel d2087ec
C#: Update negative summaries reported by FlowSummaries test after re…
michaelnebel 37976d5
C#/Java/Go/Swift: Move CsvValidation back into ExternalFlow.
michaelnebel c3e21e8
C#: Move NegativeSummary.qll to the internal folder.
michaelnebel 160ae93
C#/Java/Ruby/Swift: Fix typo in QL doc.
michaelnebel 592b60d
C#: Fix rebase error merge (validation on encryption kind was un-inte…
michaelnebel 30d5545
C#/Java: Fix some QL doc spelling typos.
michaelnebel 2e273f2
C#: Re-arange the import order, such that CsvValidation follows Exter…
michaelnebel fbc3680
C#: Fix merge issues after re-base.
michaelnebel f728ddf
C#: Update negative summaries (there has been a rebase since last upd…
michaelnebel 761ed28
C#/Java/Ruby/Swift: Address review comments.
michaelnebel 51e7b08
C#: Update negative models.
michaelnebel e446eab
C#: Update C# Flowsummaries test expected out (Negative models has be…
michaelnebel a412c95
Java: One implementation of the interface has no flow (which seems un…
michaelnebel File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This makes anything depending on the other kinds of models also depend on negative summaries. This might be fine for now, but if they grow too large that we don't want to scan them for regular queries then we'd likely need to split this predicate here (and do the implementation sharing bits with parameterised modules instead). But it's probably fine to leave that as potential future work.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The idea is that the modules containing the negative summaries are included near the queries that relies on them. Are you worried that if a query that imports the negative summaries are included in query package containing many other queries that these other queries will be slower?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Currently inclusion is based on file module activation (aka transitive import), and the negative models aren't activated for regular queries, so they'll be fine. But all of the positive models and their dependencies will be recomputed once negative models are included, so any queries referring to negative models need to do extra work. Again, this is probably fine for now.
I originally didn't notice that the negative models were excluded from the computation by way of not being activated, since the picture in my mind was a more explicit split at the predicate level. And once we move the MaD rows to external files then we need to refactor this, since at that point the exclusion-by-no-import won't work.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Great! Thank you very much for the explanation! 😃