C#: Use the new shared classes for Source and Sink callables.

This commit is contained in:
Michael Nebel
2024-06-11 15:09:35 +02:00
parent 3d53ddf919
commit 0fabca94db

View File

@@ -431,20 +431,6 @@ Declaration interpretElement(
)
}
/**
* A callable where there exists a MaD sink model that applies to it.
*/
class SinkCallable extends Callable {
SinkCallable() { SourceSinkInterpretationInput::sinkElement(this, _, _, _, _) }
}
/**
* A callable where there exists a MaD source model that applies to it.
*/
class SourceCallable extends Callable {
SourceCallable() { SourceSinkInterpretationInput::sourceElement(this, _, _, _, _) }
}
cached
private module Cached {
/**
@@ -651,3 +637,33 @@ private class NeutralCallableAdapter extends NeutralCallable {
override predicate hasProvenance(Provenance provenance) { provenance = provenance_ }
}
/**
* A callable where there exists a MaD sink model that applies to it.
*/
private class SinkModelCallableAdapter extends SinkModelCallable {
private Provenance provenance;
SinkModelCallableAdapter() {
SourceSinkInterpretationInput::sinkElement(this, _, _, provenance, _)
}
override predicate hasProvenance(Provenance p) { provenance = p }
}
final class SinkCallable = SinkModelCallable;
/**
* A callable where there exists a MaD source model that applies to it.
*/
private class SourceModelCallableAdapter extends SourceModelCallable {
private Provenance provenance;
SourceModelCallableAdapter() {
SourceSinkInterpretationInput::sourceElement(this, _, _, provenance, _)
}
override predicate hasProvenance(Provenance p) { provenance = p }
}
final class SourceCallable = SourceModelCallable;