Rust: Remove TC from ImplTraitTypeRepr.isInReturnPos

This commit is contained in:
Tom Hvitved
2025-08-15 12:45:13 +02:00
parent 0512940c0c
commit 1af6ddd8e3

View File

@@ -23,14 +23,18 @@ module Impl {
* ``` * ```
*/ */
class ImplTraitTypeRepr extends Generated::ImplTraitTypeRepr { class ImplTraitTypeRepr extends Generated::ImplTraitTypeRepr {
/** Gets the function for which this impl trait type occurs, if any. */ pragma[nomagic]
Function getFunction() { private TypeRepr getFunctionTypeRepr(Function f) {
this.getParentNode*() = [result.getRetType().getTypeRepr(), result.getAParam().getTypeRepr()] this.getParentNode*() = result and
result = [f.getRetType().getTypeRepr(), f.getAParam().getTypeRepr()]
} }
/** Gets the function for which this impl trait type occurs, if any. */
Function getFunction() { exists(this.getFunctionTypeRepr(result)) }
/** Holds if this impl trait type occurs in the return type of a function. */ /** Holds if this impl trait type occurs in the return type of a function. */
predicate isInReturnPos() { predicate isInReturnPos() {
this.getParentNode*() = this.getFunction().getRetType().getTypeRepr() exists(Function f | f.getRetType().getTypeRepr() = this.getFunctionTypeRepr(f))
} }
} }
} }