From 0e3048ff93068a32ae523dc2c9fa14540d7d66c3 Mon Sep 17 00:00:00 2001 From: Michael Pollmeier Date: Wed, 30 Jul 2025 16:14:38 +0200 Subject: [PATCH 1/5] call: staticCall In|Out accessor names --- .../generated/neighboraccessors/Call.scala | 12 +++++++++++- .../generated/neighboraccessors/Method.scala | 12 +++++++++++- .../codepropertygraph/schema/CallGraph.scala | 2 +- 3 files changed, 23 insertions(+), 3 deletions(-) diff --git a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/neighboraccessors/Call.scala b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/neighboraccessors/Call.scala index 33e10e97a..9b0a9a108 100644 --- a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/neighboraccessors/Call.scala +++ b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/neighboraccessors/Call.scala @@ -330,7 +330,12 @@ final class AccessNeighborsForCall(val node: nodes.Call) extends AnyVal { /** Traverse to METHOD via CALL OUT edge. */ - def _methodViaCallOut: Iterator[nodes.Method] = callOut.collectAll[nodes.Method] + @deprecated("please use staticCallOut instead") + def _methodViaCallOut: Iterator[nodes.Method] = staticCallOut + + /** Traverse to METHOD via CALL OUT edge. + */ + def staticCallOut: Iterator[nodes.Method] = callOut.collectAll[nodes.Method] /** Traverse to METHOD via CONTAINS IN edge. */ @@ -932,6 +937,11 @@ final class AccessNeighborsForCallTraversal(val traversal: Iterator[nodes.Call]) /** Traverse to METHOD via CALL OUT edge. */ + def staticCallOut: Iterator[nodes.Method] = traversal.flatMap(_.staticCallOut) + + /** Traverse to METHOD via CALL OUT edge. + */ + @deprecated("please use staticCallOut instead") def _methodViaCallOut: Iterator[nodes.Method] = traversal.flatMap(_._methodViaCallOut) /** Traverse to METHOD via CONTAINS IN edge. diff --git a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/neighboraccessors/Method.scala b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/neighboraccessors/Method.scala index e76fc91e5..d5597ea9a 100644 --- a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/neighboraccessors/Method.scala +++ b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/neighboraccessors/Method.scala @@ -27,7 +27,12 @@ final class AccessNeighborsForMethod(val node: nodes.Method) extends AnyVal { /** Traverse to CALL via CALL IN edge. */ - def _callViaCallIn: Iterator[nodes.Call] = callIn.collectAll[nodes.Call] + @deprecated("please use staticCallIn instead") + def _callViaCallIn: Iterator[nodes.Call] = staticCallIn + + /** Traverse to CALL via CALL IN edge. + */ + def staticCallIn: Iterator[nodes.Call] = callIn.collectAll[nodes.Call] /** Traverse to CALL via CONTAINS OUT edge. */ @@ -351,6 +356,11 @@ final class AccessNeighborsForMethodTraversal(val traversal: Iterator[nodes.Meth /** Traverse to CALL via CALL IN edge. */ + def staticCallIn: Iterator[nodes.Call] = traversal.flatMap(_.staticCallIn) + + /** Traverse to CALL via CALL IN edge. + */ + @deprecated("please use staticCallIn instead") def _callViaCallIn: Iterator[nodes.Call] = traversal.flatMap(_._callViaCallIn) /** Traverse to CALL via CONTAINS OUT edge. diff --git a/schema/src/main/scala/io/shiftleft/codepropertygraph/schema/CallGraph.scala b/schema/src/main/scala/io/shiftleft/codepropertygraph/schema/CallGraph.scala index 7aaaf1929..29e1a532f 100644 --- a/schema/src/main/scala/io/shiftleft/codepropertygraph/schema/CallGraph.scala +++ b/schema/src/main/scala/io/shiftleft/codepropertygraph/schema/CallGraph.scala @@ -194,7 +194,7 @@ object CallGraph extends SchemaBase { .addProperties(dispatchType, staticReceiver) callNode - .addOutEdge(edge = call, inNode = method) + .addOutEdge(edge = call, inNode = method, stepNameIn = "staticCallIn", stepNameOut = "staticCallOut") callNode .addProperty(methodFullName) From 965671dd0528dfc89b75f8c1efd2886b0f0984b9 Mon Sep 17 00:00:00 2001 From: Michael Pollmeier Date: Thu, 31 Jul 2025 10:02:22 +0200 Subject: [PATCH 2/5] latest fg: set the default edge accessor name --- build.sbt | 2 +- .../generated/neighboraccessors/Call.scala | 10 +++++----- .../generated/neighboraccessors/Method.scala | 10 +++++----- .../shiftleft/codepropertygraph/schema/CallGraph.scala | 1 + 4 files changed, 12 insertions(+), 11 deletions(-) diff --git a/build.sbt b/build.sbt index 20dcf876e..cc8bdebce 100644 --- a/build.sbt +++ b/build.sbt @@ -1,7 +1,7 @@ name := "codepropertygraph" // parsed by project/Versions.scala, updated by updateDependencies.sh -val flatgraphVersion = "0.1.24" +val flatgraphVersion = "0.1.24+3-441a43e7" inThisBuild( List( diff --git a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/neighboraccessors/Call.scala b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/neighboraccessors/Call.scala index 9b0a9a108..06207edd1 100644 --- a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/neighboraccessors/Call.scala +++ b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/neighboraccessors/Call.scala @@ -335,7 +335,7 @@ final class AccessNeighborsForCall(val node: nodes.Call) extends AnyVal { /** Traverse to METHOD via CALL OUT edge. */ - def staticCallOut: Iterator[nodes.Method] = callOut.collectAll[nodes.Method] + def staticCallOut: Iterator[nodes.Method] = staticCallOut.collectAll[nodes.Method] /** Traverse to METHOD via CONTAINS IN edge. */ @@ -573,8 +573,6 @@ final class AccessNeighborsForCall(val node: nodes.Call) extends AnyVal { def astOut: Iterator[nodes.Expression] = node._astOut.cast[nodes.Expression] - def callOut: Iterator[nodes.Method] = node._callOut.cast[nodes.Method] - def cdgIn: Iterator[nodes.CfgNode] = node._cdgIn.cast[nodes.CfgNode] def cdgOut: Iterator[nodes.CfgNode] = node._cdgOut.cast[nodes.CfgNode] @@ -609,6 +607,8 @@ final class AccessNeighborsForCall(val node: nodes.Call) extends AnyVal { def refOut: Iterator[nodes.Member] = node._refOut.cast[nodes.Member] + def staticCallOut: Iterator[nodes.Method] = node._callOut.cast[nodes.Method] + def taggedByOut: Iterator[nodes.Tag] = node._taggedByOut.cast[nodes.Tag] } @@ -1180,8 +1180,6 @@ final class AccessNeighborsForCallTraversal(val traversal: Iterator[nodes.Call]) def astOut: Iterator[nodes.Expression] = traversal.flatMap(_.astOut) - def callOut: Iterator[nodes.Method] = traversal.flatMap(_.callOut) - def cdgIn: Iterator[nodes.CfgNode] = traversal.flatMap(_.cdgIn) def cdgOut: Iterator[nodes.CfgNode] = traversal.flatMap(_.cdgOut) @@ -1216,5 +1214,7 @@ final class AccessNeighborsForCallTraversal(val traversal: Iterator[nodes.Call]) def refOut: Iterator[nodes.Member] = traversal.flatMap(_.refOut) + def staticCallOut: Iterator[nodes.Method] = traversal.flatMap(_.staticCallOut) + def taggedByOut: Iterator[nodes.Tag] = traversal.flatMap(_.taggedByOut) } diff --git a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/neighboraccessors/Method.scala b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/neighboraccessors/Method.scala index d5597ea9a..a71fb9fdf 100644 --- a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/neighboraccessors/Method.scala +++ b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/neighboraccessors/Method.scala @@ -32,7 +32,7 @@ final class AccessNeighborsForMethod(val node: nodes.Method) extends AnyVal { /** Traverse to CALL via CALL IN edge. */ - def staticCallIn: Iterator[nodes.Call] = callIn.collectAll[nodes.Call] + def staticCallIn: Iterator[nodes.Call] = staticCallIn.collectAll[nodes.Call] /** Traverse to CALL via CONTAINS OUT edge. */ @@ -311,8 +311,6 @@ final class AccessNeighborsForMethod(val node: nodes.Method) extends AnyVal { def astOut: Iterator[nodes.AstNode] = node._astOut.cast[nodes.AstNode] - def callIn: Iterator[nodes.Call] = node._callIn.cast[nodes.Call] - def cfgOut: Iterator[nodes.AstNode] = node._cfgOut.cast[nodes.AstNode] def containsIn: Iterator[nodes.AstNode] = node._containsIn.cast[nodes.AstNode] @@ -329,6 +327,8 @@ final class AccessNeighborsForMethod(val node: nodes.Method) extends AnyVal { def sourceFileOut: Iterator[nodes.File] = node._sourceFileOut.cast[nodes.File] + def staticCallIn: Iterator[nodes.Call] = node._callIn.cast[nodes.Call] + def taggedByOut: Iterator[nodes.Tag] = node._taggedByOut.cast[nodes.Tag] } @@ -624,8 +624,6 @@ final class AccessNeighborsForMethodTraversal(val traversal: Iterator[nodes.Meth def astOut: Iterator[nodes.AstNode] = traversal.flatMap(_.astOut) - def callIn: Iterator[nodes.Call] = traversal.flatMap(_.callIn) - def cfgOut: Iterator[nodes.AstNode] = traversal.flatMap(_.cfgOut) def containsIn: Iterator[nodes.AstNode] = traversal.flatMap(_.containsIn) @@ -642,5 +640,7 @@ final class AccessNeighborsForMethodTraversal(val traversal: Iterator[nodes.Meth def sourceFileOut: Iterator[nodes.File] = traversal.flatMap(_.sourceFileOut) + def staticCallIn: Iterator[nodes.Call] = traversal.flatMap(_.staticCallIn) + def taggedByOut: Iterator[nodes.Tag] = traversal.flatMap(_.taggedByOut) } diff --git a/schema/src/main/scala/io/shiftleft/codepropertygraph/schema/CallGraph.scala b/schema/src/main/scala/io/shiftleft/codepropertygraph/schema/CallGraph.scala index 29e1a532f..0f6bad11d 100644 --- a/schema/src/main/scala/io/shiftleft/codepropertygraph/schema/CallGraph.scala +++ b/schema/src/main/scala/io/shiftleft/codepropertygraph/schema/CallGraph.scala @@ -131,6 +131,7 @@ object CallGraph extends SchemaBase { |automatically as the CPG is first loaded. |""".stripMargin ) + .withDefaultAccessorName("STATIC_CALL") .protoId(ProtoIds.CallEdge) val argument = builder From f924c61c5c637d42c29e18e5b65e5bfccfa48356 Mon Sep 17 00:00:00 2001 From: Michael Pollmeier Date: Thu, 31 Jul 2025 11:20:19 +0200 Subject: [PATCH 3/5] released fg version --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index cc8bdebce..e483beed7 100644 --- a/build.sbt +++ b/build.sbt @@ -1,7 +1,7 @@ name := "codepropertygraph" // parsed by project/Versions.scala, updated by updateDependencies.sh -val flatgraphVersion = "0.1.24+3-441a43e7" +val flatgraphVersion = "0.1.25" inThisBuild( List( From f58a9019b677e38c789217ae197d4d14ccdf2ca1 Mon Sep 17 00:00:00 2001 From: Michael Pollmeier Date: Thu, 31 Jul 2025 12:47:47 +0200 Subject: [PATCH 4/5] trigger ci From 18464a5b0e1bd05ced3675adc86832060bb31bb0 Mon Sep 17 00:00:00 2001 From: Michael Pollmeier Date: Thu, 31 Jul 2025 14:11:03 +0200 Subject: [PATCH 5/5] remove stepNameOut|In definition, apparently not needed --- .../generated/neighboraccessors/Call.scala | 12 +----------- .../generated/neighboraccessors/Method.scala | 12 +----------- .../codepropertygraph/schema/CallGraph.scala | 2 +- 3 files changed, 3 insertions(+), 23 deletions(-) diff --git a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/neighboraccessors/Call.scala b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/neighboraccessors/Call.scala index 06207edd1..63f084367 100644 --- a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/neighboraccessors/Call.scala +++ b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/neighboraccessors/Call.scala @@ -330,12 +330,7 @@ final class AccessNeighborsForCall(val node: nodes.Call) extends AnyVal { /** Traverse to METHOD via CALL OUT edge. */ - @deprecated("please use staticCallOut instead") - def _methodViaCallOut: Iterator[nodes.Method] = staticCallOut - - /** Traverse to METHOD via CALL OUT edge. - */ - def staticCallOut: Iterator[nodes.Method] = staticCallOut.collectAll[nodes.Method] + def _methodViaCallOut: Iterator[nodes.Method] = staticCallOut.collectAll[nodes.Method] /** Traverse to METHOD via CONTAINS IN edge. */ @@ -937,11 +932,6 @@ final class AccessNeighborsForCallTraversal(val traversal: Iterator[nodes.Call]) /** Traverse to METHOD via CALL OUT edge. */ - def staticCallOut: Iterator[nodes.Method] = traversal.flatMap(_.staticCallOut) - - /** Traverse to METHOD via CALL OUT edge. - */ - @deprecated("please use staticCallOut instead") def _methodViaCallOut: Iterator[nodes.Method] = traversal.flatMap(_._methodViaCallOut) /** Traverse to METHOD via CONTAINS IN edge. diff --git a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/neighboraccessors/Method.scala b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/neighboraccessors/Method.scala index a71fb9fdf..59c2b773d 100644 --- a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/neighboraccessors/Method.scala +++ b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/neighboraccessors/Method.scala @@ -27,12 +27,7 @@ final class AccessNeighborsForMethod(val node: nodes.Method) extends AnyVal { /** Traverse to CALL via CALL IN edge. */ - @deprecated("please use staticCallIn instead") - def _callViaCallIn: Iterator[nodes.Call] = staticCallIn - - /** Traverse to CALL via CALL IN edge. - */ - def staticCallIn: Iterator[nodes.Call] = staticCallIn.collectAll[nodes.Call] + def _callViaCallIn: Iterator[nodes.Call] = staticCallIn.collectAll[nodes.Call] /** Traverse to CALL via CONTAINS OUT edge. */ @@ -356,11 +351,6 @@ final class AccessNeighborsForMethodTraversal(val traversal: Iterator[nodes.Meth /** Traverse to CALL via CALL IN edge. */ - def staticCallIn: Iterator[nodes.Call] = traversal.flatMap(_.staticCallIn) - - /** Traverse to CALL via CALL IN edge. - */ - @deprecated("please use staticCallIn instead") def _callViaCallIn: Iterator[nodes.Call] = traversal.flatMap(_._callViaCallIn) /** Traverse to CALL via CONTAINS OUT edge. diff --git a/schema/src/main/scala/io/shiftleft/codepropertygraph/schema/CallGraph.scala b/schema/src/main/scala/io/shiftleft/codepropertygraph/schema/CallGraph.scala index 0f6bad11d..917a015c8 100644 --- a/schema/src/main/scala/io/shiftleft/codepropertygraph/schema/CallGraph.scala +++ b/schema/src/main/scala/io/shiftleft/codepropertygraph/schema/CallGraph.scala @@ -195,7 +195,7 @@ object CallGraph extends SchemaBase { .addProperties(dispatchType, staticReceiver) callNode - .addOutEdge(edge = call, inNode = method, stepNameIn = "staticCallIn", stepNameOut = "staticCallOut") + .addOutEdge(edge = call, inNode = method) callNode .addProperty(methodFullName)