Java: Add dataflow node encapsulating instance accesses.

This commit is contained in:
Anders Schack-Mulligen
2022-01-20 14:12:33 +01:00
parent cb098df4ea
commit 43da5aabbe

View File

@@ -280,6 +280,21 @@ module Public {
explicitInstanceArgument(call, result.asExpr()) or
implicitInstanceArgument(call, result.(ImplicitInstanceAccess).getInstanceAccess())
}
/** A node representing an `InstanceAccessExt`. */
class InstanceAccessNode extends Node {
InstanceAccessNode() {
this instanceof ImplicitInstanceAccess or this.asExpr() instanceof InstanceAccess
}
/** Gets the instance access corresponding to this node. */
InstanceAccessExt getInstanceAccess() {
result = this.(ImplicitInstanceAccess).getInstanceAccess() or result.isExplicit(this.asExpr())
}
/** Holds if this is an access to an object's own instance. */
predicate isOwnInstanceAccess() { this.getInstanceAccess().isOwnInstanceAccess() }
}
}
private import Public