mirror of
https://github.com/github/codeql.git
synced 2025-12-24 04:36:35 +01:00
C#/Java: Rename to Typed based summary model generation.
This commit is contained in:
@@ -1,14 +1,14 @@
|
||||
/**
|
||||
* @name Capture Theorems for Free summary models.
|
||||
* @name Capture typed based summary models.
|
||||
* @description Finds applicable summary models to be used by other queries.
|
||||
* @kind diagnostic
|
||||
* @id cs/utils/model-generator/summary-models-theorems-for-free
|
||||
* @id cs/utils/model-generator/summary-models-typed-based
|
||||
* @tags model-generator
|
||||
*/
|
||||
|
||||
import semmle.code.csharp.dataflow.ExternalFlow
|
||||
import internal.CaptureTheoremsForFreeSummaryModels
|
||||
import internal.CaptureTypeBasedSummaryModels
|
||||
|
||||
from TheoremTargetApi api, string flow
|
||||
from TypeBasedFlowTargetApi api, string flow
|
||||
where flow = captureFlow(api)
|
||||
select flow order by flow
|
||||
@@ -6,7 +6,7 @@
|
||||
private import CaptureModelsSpecific
|
||||
|
||||
class DataFlowTargetApi extends TargetApiSpecific {
|
||||
DataFlowTargetApi() { isRelevantForFlowModels(this) }
|
||||
DataFlowTargetApi() { isRelevantForDataFlowModels(this) }
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -42,14 +42,14 @@ private predicate isRelevantForModels(CS::Callable api) {
|
||||
/**
|
||||
* Holds if it is relevant to generate models for `api` based on data flow analysis.
|
||||
*/
|
||||
predicate isRelevantForFlowModels(CS::Callable api) {
|
||||
predicate isRelevantForDataFlowModels(CS::Callable api) {
|
||||
isRelevantForModels(api) and not isHigherOrder(api)
|
||||
}
|
||||
|
||||
/**
|
||||
* Holds if it is relevant to generate models for `api` based on Theorems for Free.
|
||||
* Holds if it is relevant to generate models for `api` based on its type.
|
||||
*/
|
||||
predicate isRelevantForTheoremModels = isRelevantForModels/1;
|
||||
predicate isRelevantForTypeBasedFlowModels = isRelevantForModels/1;
|
||||
|
||||
/**
|
||||
* A class of callables that are relevant generating summary, source and sinks models for.
|
||||
|
||||
@@ -84,7 +84,7 @@ private string implicit(DotNet::Callable callable, TypeParameter tp) {
|
||||
}
|
||||
|
||||
/**
|
||||
* Holds if `callable` has a delegate type parameter `tp` at parameter position `position`.
|
||||
* Holds if `callable` has a delegate parameter `dt` at parameter position `position`.
|
||||
*/
|
||||
private predicate delegate(DotNet::Callable callable, DelegateType dt, int position) {
|
||||
exists(Parameter p |
|
||||
@@ -192,8 +192,8 @@ private predicate output(DotNet::Callable callable, TypeParameter tp, string out
|
||||
* A class of callables that are relevant generating summaries for based
|
||||
* on the Theorems for Free approach.
|
||||
*/
|
||||
class TheoremTargetApi extends Specific::TargetApiSpecific {
|
||||
TheoremTargetApi() { Specific::isRelevantForTheoremModels(this) }
|
||||
class TypeBasedFlowTargetApi extends Specific::TargetApiSpecific {
|
||||
TypeBasedFlowTargetApi() { Specific::isRelevantForTypeBasedFlowModels(this) }
|
||||
|
||||
/**
|
||||
* Gets the string representation of all type based summaries inspired by
|
||||
@@ -228,4 +228,4 @@ class TheoremTargetApi extends Specific::TargetApiSpecific {
|
||||
/**
|
||||
* Returns the Theorems for Free inspired typed based summaries for `api`.
|
||||
*/
|
||||
string captureFlow(TheoremTargetApi api) { result = api.getSummaries() }
|
||||
string captureFlow(TypeBasedFlowTargetApi api) { result = api.getSummaries() }
|
||||
@@ -1 +0,0 @@
|
||||
utils/model-generator/CaptureTheoremsForFreeSummaryModels.ql
|
||||
@@ -0,0 +1 @@
|
||||
utils/model-generator/CaptureTypeBasedSummaryModels.ql
|
||||
Reference in New Issue
Block a user