Skip to content

Commit 5b5ea14

Browse files
committed
C#: Delete the Internal StructuralComparisonConfiguration class as it is no longer needed.
1 parent bf4dc00 commit 5b5ea14

File tree

1 file changed

+0
-52
lines changed

1 file changed

+0
-52
lines changed

csharp/ql/lib/semmle/code/csharp/commons/StructuralComparison.qll

Lines changed: 0 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -236,55 +236,3 @@ abstract class StructuralComparisonConfiguration extends string {
236236
*/
237237
predicate same(ControlFlowElement x, ControlFlowElement y) { candidate(x, y) and sameGvn(x, y) }
238238
}
239-
240-
/**
241-
* INTERNAL: Do not use.
242-
*
243-
* A verbatim copy of the class `StructuralComparisonConfiguration` for internal
244-
* use.
245-
*
246-
* A copy is needed in order to use structural comparison within the standard
247-
* library without running into caching issues.
248-
*/
249-
module Internal {
250-
// Import all uses of the internal library to make sure caching works
251-
private import semmle.code.csharp.controlflow.Guards as G
252-
253-
/**
254-
* A configuration for performing structural comparisons of program elements
255-
* (expressions and statements).
256-
*
257-
* The predicate `candidate()` must be overridden, in order to identify the
258-
* elements for which to perform structural comparison.
259-
*
260-
* Each use of the library is identified by a unique string value.
261-
*/
262-
abstract class InternalStructuralComparisonConfiguration extends string {
263-
bindingset[this]
264-
InternalStructuralComparisonConfiguration() { any() }
265-
266-
/**
267-
* Holds if elements `x` and `y` are candidates for testing structural
268-
* equality.
269-
*
270-
* Subclasses are expected to override this predicate to identify the
271-
* top-level elements which they want to compare. Care should be
272-
* taken to avoid identifying too many pairs of elements, as in general
273-
* there are very many structurally equal subtrees in a program, and
274-
* in order to keep the computation feasible we must focus attention.
275-
*
276-
* Note that this relation is not expected to be symmetric -- it's
277-
* fine to include a pair `(x, y)` but not `(y, x)`.
278-
* In fact, not including the symmetrically implied fact will save
279-
* half the computation time on the structural comparison.
280-
*/
281-
abstract predicate candidate(ControlFlowElement x, ControlFlowElement y);
282-
283-
/**
284-
* Holds if elements `x` and `y` structurally equal. `x` and `y` must be
285-
* flagged as candidates for structural equality, that is,
286-
* `candidate(x, y)` must hold.
287-
*/
288-
predicate same(ControlFlowElement x, ControlFlowElement y) { candidate(x, y) and sameGvn(x, y) }
289-
}
290-
}

0 commit comments

Comments
 (0)