Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merge 2-0-448 to backup_sync #59

Open
wants to merge 50 commits into
base: backup_sync
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
50 commits
Select commit Hold shift + click to select a range
fe7b8b6
[c2cpg] Safe getType / getNodeType (#4706)
max-leuthaeuser Jul 1, 2024
5d58eb4
[c2cpg] Fixed match errors in astForCppCallExpression (#4711)
max-leuthaeuser Jul 1, 2024
9e5a6b2
[c2cpg] Fixed match errors in astForFunctionDeclarator (#4712)
max-leuthaeuser Jul 2, 2024
2fa5a03
[Ruby] Parser tests (#4704)
AndreiDreyer Jul 2, 2024
336c989
[jssrc2cpg] Update astgen version (#4714)
max-leuthaeuser Jul 2, 2024
5e3e9c9
[x2cpg] Rethrow any Throwable from createCpg (#4713)
max-leuthaeuser Jul 2, 2024
5afcd8f
[ruby] Arrow Lambda Tests & `self` Parameter Name Fix (#4716)
DavidBakerEffendi Jul 2, 2024
b76cdda
ignore case while matching excluded files (#4697)
Ferada Jul 2, 2024
fd2894c
use scala3-style `import foo.bar.*` rather than `._` (#4717)
mpollmeier Jul 2, 2024
b40cdca
[speculative] minor work on reachingDef (#4715)
bbrehm Jul 2, 2024
680be03
[jssrc2cpg] Update astgen to v3.16.0 (#4718)
max-leuthaeuser Jul 3, 2024
aad9fe3
[c2cpg] Safe .getOverload.getType access / safer AstCreator.createAst…
max-leuthaeuser Jul 3, 2024
b33a347
[c2cpg] Register call typefullnames correctly (#4722)
max-leuthaeuser Jul 3, 2024
16925e6
[ruby] Parser tests (#4720)
AndreiDreyer Jul 3, 2024
915b0ed
[ruby] Simplify `<` Base Classes (#4723)
DavidBakerEffendi Jul 3, 2024
ec6d03d
Removed joern-stats from install script (#4725)
max-leuthaeuser Jul 3, 2024
18f7fae
[ruby] Make `<body>` Call Static Dispatch (#4726)
DavidBakerEffendi Jul 3, 2024
dca780f
upgrade cpg and adapt (#4728)
mpollmeier Jul 3, 2024
ea45904
minify flatgraph diff: remove unnessecary (and misleading) typescheck…
mpollmeier Jul 3, 2024
dbdb02f
[gosrc2cpg] Multi module support (#4724)
pandurangpatil Jul 4, 2024
59b5ada
[c2cpg] Added typefullnames to all calls (#4731)
max-leuthaeuser Jul 4, 2024
cb2bb5c
[ruby] Singleton methods on objects (#4734)
AndreiDreyer Jul 4, 2024
d3b36e9
[c2cpg] Fixed more exceptions (#4736)
max-leuthaeuser Jul 4, 2024
ff80364
[javasrc2cpg] Fix always-crashing array initializer type resolution (…
johannescoetzee Jul 4, 2024
7abe33a
[c2cpg] Handle unknown in astForCppCallExpression (#4738)
max-leuthaeuser Jul 4, 2024
dd3fb0d
minify the flatgraph diff by bringing various things in before the bi…
mpollmeier Jul 5, 2024
0c49cb9
[TypeRecovery] Handle Member without AST Parent Safely (#4739)
DavidBakerEffendi Jul 5, 2024
cf8d139
[jssrc2cpg] Overhaul typedecl method bindings (#4727)
max-leuthaeuser Jul 5, 2024
3a98c4b
[ruby] Handle `super` Calls (#4740)
DavidBakerEffendi Jul 5, 2024
f446279
[c2cpg] Fixed MethodRef typeFullName (#4743)
max-leuthaeuser Jul 8, 2024
2bbece9
[ruby] `super` Argument `null` & Association Key Handling (#4746)
DavidBakerEffendi Jul 8, 2024
0acd0a2
[ruby] Bind nested method members to method type (#4747)
DavidBakerEffendi Jul 8, 2024
d9be183
pull out changes from michael/flatgraph to minify diff (#4749)
mpollmeier Jul 9, 2024
914aa46
[ruby] Fixed Persistence Issue of Captured Variable Info (#4750)
DavidBakerEffendi Jul 9, 2024
21d39c9
[c2cpg] More fullname fixes (#4751)
max-leuthaeuser Jul 9, 2024
18b6d88
[ruby] Emit TypeRef instead of MethodRef for Lambdas (#4753)
DavidBakerEffendi Jul 10, 2024
a547cd1
[ruby] Singleton Methods on Objects Follow-Up (#4754)
AndreiDreyer Jul 10, 2024
777c67a
[ruby] Method/Type Full Name Simplification (#4755)
DavidBakerEffendi Jul 10, 2024
d77252a
[c2cpg] Fix string repr for type of dependent expressions (#4756)
max-leuthaeuser Jul 11, 2024
19dd54e
[ruby] Handle Re-definitions (#4757)
DavidBakerEffendi Jul 11, 2024
4e43881
[ruby] Handle `NEXT` control structure (#4758)
AndreiDreyer Jul 11, 2024
243c29d
[c2cpg] Support for static modifier (#4759)
max-leuthaeuser Jul 11, 2024
9c13325
[ruby] Remodel `yield` Calls (#4763)
DavidBakerEffendi Jul 11, 2024
e6f5197
upgrade deps (#4761)
mpollmeier Jul 12, 2024
c67eeaf
[ruby] Consistently Model Getters/Setters (#4765)
DavidBakerEffendi Jul 12, 2024
57c2dfe
[php2cpg] Support array/list unpacking (#4764)
d1tto Jul 12, 2024
b2b2bc4
[c2cpg] Fix regression (incorrect end line numbers) (#4766)
fabsx00 Jul 12, 2024
8fac557
IF Cfg creation for if-statements with empty `then` block. (#4772)
ml86 Jul 15, 2024
5336780
[x2cpg] Improve Cfg creation. (#4773)
ml86 Jul 15, 2024
18d3ca9
Merge branch 'master' of https://github.com/joernio/joern into 2-0-448
Jul 16, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion build.sbt
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ name := "joern"
ThisBuild / organization := "io.joern"
ThisBuild / scalaVersion := "3.4.2"

val cpgVersion = "1.6.16"
val cpgVersion = "1.6.19"

lazy val joerncli = Projects.joerncli
lazy val querydb = Projects.querydb
Expand Down
2 changes: 1 addition & 1 deletion console/src/main/scala/io/joern/console/Commit.scala
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ package io.joern.console
import io.shiftleft.codepropertygraph.generated.Cpg
import io.shiftleft.passes.CpgPass
import io.shiftleft.semanticcpg.layers.{LayerCreator, LayerCreatorContext, LayerCreatorOptions}
import overflowdb.BatchedUpdate.DiffGraphBuilder
import io.shiftleft.codepropertygraph.generated.DiffGraphBuilder

object Commit {
val overlayName: String = "commit"
Expand Down
2 changes: 1 addition & 1 deletion console/src/main/scala/io/joern/console/Console.scala
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ import io.shiftleft.codepropertygraph.cpgloading.CpgLoader
import io.shiftleft.semanticcpg.language.*
import io.shiftleft.semanticcpg.language.dotextension.ImageViewer
import io.shiftleft.semanticcpg.layers.{LayerCreator, LayerCreatorContext}
import overflowdb.traversal.help.Doc
import io.shiftleft.codepropertygraph.generated.help.Doc
import overflowdb.traversal.help.Table.AvailableWidthProvider

import scala.sys.process.Process
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package io.joern.console

import better.files._
import better.files.*

import scala.annotation.tailrec
import scala.collection.mutable
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
package io.joern.console
import better.files.Dsl._
import better.files.Dsl.*
import better.files.File
import better.files.File.apply

Expand Down
4 changes: 2 additions & 2 deletions console/src/main/scala/io/joern/console/Run.scala
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import io.shiftleft.semanticcpg.layers.{LayerCreator, LayerCreatorContext}
import org.reflections8.Reflections
import org.reflections8.util.{ClasspathHelper, ConfigurationBuilder}

import scala.jdk.CollectionConverters._
import scala.jdk.CollectionConverters.*

object Run {

Expand Down Expand Up @@ -64,7 +64,7 @@ object Run {
|
|val opts = new OptsDynamic()
|
| import _root_.overflowdb.BatchedUpdate.DiffGraphBuilder
| import _root_.io.shiftleft.codepropertygraph.generated.DiffGraphBuilder
| implicit def _diffGraph: DiffGraphBuilder = opts.commit.diffGraphBuilder
| def diffGraph = _diffGraph
|""".stripMargin
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ package io.joern.console.cpgcreation
import better.files.File
import io.shiftleft.codepropertygraph.generated.Cpg

import scala.sys.process._
import scala.sys.process.*
import scala.util.Try

/** A CpgGenerator generates Code Property Graphs from code. Each supported language implements a Generator, e.g.,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package io.joern.console.cpgcreation

import better.files.Dsl._
import better.files.Dsl.*
import better.files.File
import io.shiftleft.codepropertygraph.cpgloading.{CpgLoader, CpgLoaderConfig}
import io.shiftleft.codepropertygraph.generated.Languages
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ package io.joern.console.cpgcreation
import io.joern.console.FrontendConfig

import java.nio.file.Path
import scala.sys.process._
import scala.sys.process.*
import scala.util.{Failure, Try}

/** Language frontend for Java archives (JAR files). Translates Java archives into code property graphs.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package io.joern.console.workspacehandling

import better.files.Dsl._
import better.files.Dsl.*
import better.files.File
import io.shiftleft.codepropertygraph.generated.Cpg
import io.shiftleft.semanticcpg.Overlays
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package io.joern.console.workspacehandling

import better.files.Dsl._
import better.files._
import better.files.Dsl.*
import better.files.*
import io.joern.console
import io.joern.console.defaultAvailableWidthProvider
import io.joern.console.Reporting
Expand Down Expand Up @@ -315,7 +315,7 @@ class WorkspaceManager[ProjectType <: Project](path: String, loader: WorkspaceLo
case Success(v) => Some(v)
case Failure(ex) =>
System.err.println("Error loading CPG")
System.err.println(ex)
ex.printStackTrace()
None
}
}
Expand Down
8 changes: 4 additions & 4 deletions console/src/test/scala/io/joern/console/ConsoleTests.scala
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
package io.joern.console

import better.files.Dsl._
import better.files._
import io.joern.console.testing._
import better.files.Dsl.*
import better.files.*
import io.joern.console.testing.*
import io.joern.x2cpg.X2Cpg.defaultOverlayCreators
import io.joern.x2cpg.layers.{Base, CallGraph, ControlFlow, TypeRelations}
import io.shiftleft.semanticcpg.language._
import io.shiftleft.semanticcpg.language.*
import io.shiftleft.semanticcpg.layers.{LayerCreator, LayerCreatorContext}
import org.scalatest.matchers.should.Matchers
import org.scalatest.wordspec.AnyWordSpec
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package io.joern.console

import better.files.Dsl._
import better.files._
import better.files.Dsl.*
import better.files.*
import io.shiftleft.codepropertygraph.generated.Languages
import io.joern.console.cpgcreation.{guessLanguage, LlvmCpgGenerator}
import org.scalatest.matchers.should.Matchers
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package io.joern.console

import better.files.Dsl._
import better.files._
import better.files.Dsl.*
import better.files.*
import io.shiftleft.utils.ProjectRoot
import org.scalatest.matchers.should.Matchers
import org.scalatest.wordspec.AnyWordSpec
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package io.joern.console.workspacehandling

import better.files._
import better.files.*
import io.shiftleft.codepropertygraph.generated.Cpg
import org.scalatest.matchers.should.Matchers
import org.scalatest.wordspec.AnyWordSpec
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package io.joern.console.workspacehandling

import better.files.Dsl._
import better.files.Dsl.*
import better.files.File
import io.joern.console.testing.availableWidthProvider
import io.shiftleft.semanticcpg.testing.MockCpg
Expand Down
Original file line number Diff line number Diff line change
@@ -1,15 +1,13 @@
package io.joern.dataflowengineoss.dotgenerator

import io.joern.dataflowengineoss.DefaultSemantics
import io.shiftleft.codepropertygraph.generated.nodes._
import io.shiftleft.codepropertygraph.generated.nodes.*
import io.shiftleft.codepropertygraph.generated.{EdgeTypes, Properties}
import io.joern.dataflowengineoss.language._
import io.joern.dataflowengineoss.language.*
import io.joern.dataflowengineoss.semanticsloader.Semantics
import io.shiftleft.semanticcpg.dotgenerator.DotSerializer.{Edge, Graph}
import io.shiftleft.semanticcpg.language._
import io.shiftleft.semanticcpg.language.*
import io.shiftleft.semanticcpg.utils.MemberAccess.isGenericMemberAccessName
import overflowdb.Node
import overflowdb.traversal.jIteratortoTraversal

import scala.collection.mutable

Expand Down Expand Up @@ -59,7 +57,7 @@ class DdgGenerator {
}
}

private def shouldBeDisplayed(v: Node): Boolean = !(
private def shouldBeDisplayed(v: StoredNode): Boolean = !(
v.isInstanceOf[ControlStructure] ||
v.isInstanceOf[JumpTarget]
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import io.shiftleft.codepropertygraph.generated.nodes.*
import io.shiftleft.semanticcpg.language.*
import io.joern.dataflowengineoss.language.dotextension.DdgNodeDot
import io.joern.dataflowengineoss.language.nodemethods.{ExpressionMethods, ExtendedCfgNodeMethods}
import overflowdb.traversal.help.Doc
import io.shiftleft.codepropertygraph.generated.help.Doc

import scala.language.implicitConversions

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@ package io.joern.dataflowengineoss.layers.dataflows

import better.files.File
import io.joern.dataflowengineoss.DefaultSemantics
import io.joern.dataflowengineoss.language._
import io.joern.dataflowengineoss.language.*
import io.joern.dataflowengineoss.semanticsloader.Semantics
import io.shiftleft.semanticcpg.language._
import io.shiftleft.semanticcpg.language.*
import io.shiftleft.semanticcpg.layers.{LayerCreator, LayerCreatorContext, LayerCreatorOptions}

case class Cpg14DumpOptions(var outDir: String) extends LayerCreatorOptions {}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@ package io.joern.dataflowengineoss.layers.dataflows

import better.files.File
import io.joern.dataflowengineoss.DefaultSemantics
import io.joern.dataflowengineoss.language._
import io.joern.dataflowengineoss.language.*
import io.joern.dataflowengineoss.semanticsloader.Semantics
import io.shiftleft.semanticcpg.language._
import io.shiftleft.semanticcpg.language.*
import io.shiftleft.semanticcpg.layers.{LayerCreator, LayerCreatorContext, LayerCreatorOptions}

case class DdgDumpOptions(var outDir: String) extends LayerCreatorOptions {}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@ package io.joern.dataflowengineoss.layers.dataflows

import better.files.File
import io.joern.dataflowengineoss.DefaultSemantics
import io.joern.dataflowengineoss.language._
import io.joern.dataflowengineoss.language.*
import io.joern.dataflowengineoss.semanticsloader.Semantics
import io.shiftleft.semanticcpg.language._
import io.shiftleft.semanticcpg.language.*
import io.shiftleft.semanticcpg.layers.{LayerCreator, LayerCreatorContext, LayerCreatorOptions}

case class PdgDumpOptions(var outDir: String) extends LayerCreatorOptions {}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import io.shiftleft.codepropertygraph.generated.nodes.*
import io.shiftleft.codepropertygraph.generated.{EdgeTypes, Operators, PropertyNames}
import io.shiftleft.semanticcpg.accesspath.MatchResult
import io.shiftleft.semanticcpg.language.*
import overflowdb.BatchedUpdate.DiffGraphBuilder
import io.shiftleft.codepropertygraph.generated.DiffGraphBuilder

import scala.collection.{Set, mutable}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@ package io.joern.dataflowengineoss.passes.reachingdef

import io.joern.dataflowengineoss.semanticsloader.Semantics
import io.shiftleft.codepropertygraph.generated.Cpg
import io.shiftleft.codepropertygraph.generated.nodes._
import io.shiftleft.codepropertygraph.generated.nodes.*
import io.shiftleft.passes.ForkJoinParallelCpgPass
import io.shiftleft.semanticcpg.language._
import io.shiftleft.semanticcpg.language.*
import org.slf4j.{Logger, LoggerFactory}

import scala.collection.mutable
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -167,7 +167,7 @@ class ReachingDefTransferFunction(flowGraph: ReachingDefFlowGraph)
val gen: Map[StoredNode, mutable.BitSet] =
initGen(method).withDefaultValue(mutable.BitSet())

val kill: Map[StoredNode, Set[Definition]] =
val kill: Map[StoredNode, mutable.BitSet] =
initKill(method, gen).withDefaultValue(mutable.BitSet())

/** For a given flow graph node `n` and set of definitions, apply the transfer function to obtain the updated set of
Expand Down Expand Up @@ -224,7 +224,7 @@ class ReachingDefTransferFunction(flowGraph: ReachingDefFlowGraph)
* All operations in our graph are represented by calls and non-operations such as identifiers or field-identifiers
* have empty gen and kill sets, meaning that they just pass on definitions unaltered.
*/
private def initKill(method: Method, gen: Map[StoredNode, Set[Definition]]): Map[StoredNode, Set[Definition]] = {
private def initKill(method: Method, gen: Map[StoredNode, mutable.BitSet]): Map[StoredNode, mutable.BitSet] = {

val allIdentifiers: Map[String, List[CfgNode]] = {
val results = mutable.Map.empty[String, List[CfgNode]]
Expand Down Expand Up @@ -259,42 +259,44 @@ class ReachingDefTransferFunction(flowGraph: ReachingDefFlowGraph)
* calculate kill(call) based on gen(call).
*/
private def killsForGens(
genOfCall: Set[Definition],
genOfCall: mutable.BitSet,
allIdentifiers: Map[String, List[CfgNode]],
allCalls: Map[String, List[Call]]
): Set[Definition] = {
): mutable.BitSet = {

def definitionsOfSameVariable(definition: Definition): Set[Definition] = {
def definitionsOfSameVariable(definition: Definition): Iterator[Definition] = {
val definedNodes = flowGraph.numberToNode(definition) match {
case param: MethodParameterIn =>
allIdentifiers(param.name)
allIdentifiers(param.name).iterator
.filter(x => x.id != param.id)
case identifier: Identifier =>
val sameIdentifiers = allIdentifiers(identifier.name)
val sameIdentifiers = allIdentifiers(identifier.name).iterator
.filter(x => x.id != identifier.id)

/** Killing an identifier should also kill field accesses on that identifier. For example, a reassignment `x =
* new Box()` should kill any previous calls to `x.value`, `x.length()`, etc.
*/
val sameObjects: Iterable[Call] = allCalls.values.flatten
val sameObjects: Iterator[Call] = allCalls.valuesIterator.flatten
.filter(_.name == Operators.fieldAccess)
.filter(_.ast.isIdentifier.nameExact(identifier.name).nonEmpty)

sameIdentifiers ++ sameObjects
case call: Call =>
allCalls(call.code)
allCalls(call.code).iterator
.filter(x => x.id != call.id)
case _ => Set()
case _ => Iterator.empty
}
definedNodes
// It can happen that the CFG is broken and contains isolated nodes,
// in which case they are not in `nodeToNumber`. Let's filter those.
.collect { case x if nodeToNumber.contains(x) => Definition.fromNode(x, nodeToNumber) }.toSet
.collect { case x if nodeToNumber.contains(x) => Definition.fromNode(x, nodeToNumber) }
}

genOfCall.flatMap { definition =>
definitionsOfSameVariable(definition)
val res = mutable.BitSet()
for (definition <- genOfCall) {
res.addAll(definitionsOfSameVariable(definition))
}
res
}

}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
package io.joern.dataflowengineoss.queryengine

import io.shiftleft.codepropertygraph.generated.nodes._
import io.shiftleft.semanticcpg.accesspath._
import io.shiftleft.semanticcpg.language.{AccessPathHandling, toCallMethods}
import io.shiftleft.codepropertygraph.generated.nodes.*
import io.shiftleft.semanticcpg.accesspath.*
import io.shiftleft.semanticcpg.language.*
import io.shiftleft.semanticcpg.utils.MemberAccess
import org.slf4j.LoggerFactory

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -254,7 +254,6 @@ object Engine {
private def ddgInE(node: CfgNode, path: Vector[PathElement], callSiteStack: List[Call] = List()): Vector[Edge] = {
node
.inE(EdgeTypes.REACHING_DEF)
.asScala
.filter { e =>
e.outNode() match {
case srcNode: CfgNode =>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package io.joern.dataflowengineoss.queryengine

import scala.collection.mutable
import scala.collection.parallel.CollectionConverters._
import scala.collection.parallel.CollectionConverters.*

/** Complete held tasks using the result table. The result table is modified in the process.
*
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ object SourcesToStartingPoints {
.map(src => {
// We need to get Cpg wrapper from graph. Hence we are taking head element from source iterator.
// This will also ensure if the source list is empty then these tasks are invoked.
val cpg = Cpg(src.graph())
val cpg = Cpg(src.graph)
val (startingPoints, methodTasks) = calculateStartingPoints(sources, executorService)
val startingPointFromUsageInOtherClasses =
calculateStatingPointsWithUsageInOtherClasses(methodTasks, cpg, executorService)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,7 @@ class TaskCreator(context: EngineContext) {
*/

private def paramToMethodRefCallReceivers(param: MethodParameterIn): List[Expression] =
new Cpg(param.graph()).methodRef.methodFullNameExact(param.method.fullName).inCall.argument(0).l
new Cpg(param.graph).methodRef.methodFullNameExact(param.method.fullName).inCall.argument(0).l

/** Create new tasks from all results that end in an output argument, including return arguments. In this case, we
* want to traverse to corresponding method output parameters and method return nodes respectively.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ package io.joern.dataflowengineoss.queryengine

import io.joern.dataflowengineoss.queryengine.QueryEngineStatistics.{PATH_CACHE_HITS, PATH_CACHE_MISSES}
import io.joern.dataflowengineoss.semanticsloader.Semantics
import io.shiftleft.codepropertygraph.generated.nodes._
import io.shiftleft.codepropertygraph.generated.nodes.*
import io.shiftleft.semanticcpg.language.{toCfgNodeMethods, toExpressionMethods, _}

import java.util.concurrent.Callable
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import org.antlr.v4.runtime.tree.ParseTreeWalker
import org.antlr.v4.runtime.{CharStream, CharStreams, CommonTokenStream}

import scala.collection.mutable
import scala.jdk.CollectionConverters._
import scala.jdk.CollectionConverters.*

object Semantics {

Expand Down
Loading