Skip to content

Commit d2c9f78

Browse files
Upgraded scala 2 enums in php2cpg to scala 3 (#5749)
* Upgraded scala 2 enums in php2cpg to scala 3 * Change to use curly brace scala syntax * Change to use curly brace style for enum
1 parent 5da0a7f commit d2c9f78

File tree

3 files changed

+18
-20
lines changed

3 files changed

+18
-20
lines changed

joern-cli/frontends/php2cpg/src/main/scala/io/joern/php2cpg/parser/Domain.scala

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import io.joern.php2cpg.parser.Domain.PhpCast.CastTypeMap
1010
import io.joern.php2cpg.parser.Domain.PhpCast.isCastType
1111
import io.joern.php2cpg.parser.Domain.PhpUnaryOp.UnaryOpTypeMap
1212
import io.joern.php2cpg.parser.Domain.PhpUnaryOp.isUnaryOpType
13-
import io.joern.php2cpg.parser.Domain.PhpUseType.PhpUseType
13+
import io.joern.php2cpg.parser.Domain.PhpUseType
1414
import io.joern.php2cpg.parser.Domain.PhpUseType.getUseType
1515
import io.shiftleft.codepropertygraph.generated.ModifierTypes
1616
import io.shiftleft.codepropertygraph.generated.Operators
@@ -326,21 +326,18 @@ object Domain {
326326
attributes: PhpAttributes
327327
) extends PhpStmt
328328

329-
case object PhpUseType {
330-
sealed trait PhpUseType
331-
case object Unknown extends PhpUseType
332-
case object Normal extends PhpUseType
333-
case object Function extends PhpUseType
334-
case object Constant extends PhpUseType
329+
enum PhpUseType {
330+
case Unknown, Normal, Function, Constant
331+
}
335332

336-
def getUseType(typeNum: Int): PhpUseType = {
333+
object PhpUseType {
334+
def getUseType(typeNum: Int): PhpUseType =
337335
typeNum match {
338336
case 1 => Normal
339337
case 2 => Function
340338
case 3 => Constant
341339
case _ => Unknown
342340
}
343-
}
344341
}
345342

346343
final case class PhpForeachStmt(

joern-cli/frontends/php2cpg/src/main/scala/io/joern/php2cpg/passes/DependencyPass.scala

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@ import java.nio.file.{Files, Path, Paths}
1111
import scala.annotation.targetName
1212
import scala.util.{Failure, Success, Try, Using}
1313

14+
import PsrStringOrArray.*
15+
1416
/** Parses the `composer.json` file for all `require` dependencies.
1517
*/
1618
class DependencyPass(cpg: Cpg, composerPaths: List[String]) extends ForkJoinParallelCpgPass[Path](cpg) {
@@ -45,24 +47,21 @@ class DependencyPass(cpg: Cpg, composerPaths: List[String]) extends ForkJoinPara
4547

4648
}
4749

48-
sealed trait PsrStringOrArray {
49-
def obj: String | Array[String]
50+
enum PsrStringOrArray {
51+
case PsrString(obj: String)
52+
case PsrArray(obj: Array[String])
5053
}
5154

52-
case class PsrString(obj: String) extends PsrStringOrArray
53-
54-
case class PsrArray(obj: Array[String]) extends PsrStringOrArray
55-
56-
object PsrStringOrArray:
55+
object PsrStringOrArray {
5756
given ReadWriter[PsrStringOrArray] = {
5857
val logger = LoggerFactory.getLogger(getClass)
5958

6059
readwriter[ujson.Value]
6160
.bimap[PsrStringOrArray](
6261
x =>
63-
x.obj match {
64-
case o: String => ujson.Str(o)
65-
case o: Array[String] => ujson.Arr(o.map(ujson.Str.apply)*)
62+
x match {
63+
case PsrString(o) => ujson.Str(o)
64+
case PsrArray(o) => ujson.Arr(o.map(ujson.Str.apply)*)
6665
},
6766
{
6867
case json @ (j: ujson.Str) => PsrString(json.str)
@@ -73,6 +72,7 @@ object PsrStringOrArray:
7372
}
7473
)
7574
}
75+
}
7676

7777
case class Autoload(
7878
@targetName("psr0") `psr-0`: Map[String, PsrStringOrArray] = Map.empty,

joern-cli/frontends/php2cpg/src/main/scala/io/joern/php2cpg/utils/DependencyDownloader.scala

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,8 @@ package io.joern.php2cpg.utils
33
import com.github.sh4869.semver_parser.{Range, SemVer}
44
import io.joern.php2cpg.Config
55
import io.joern.php2cpg.parser.Domain.PhpOperators
6-
import io.joern.php2cpg.passes.{Composer, PsrArray, PsrString}
6+
import io.joern.php2cpg.passes.Composer
7+
import io.joern.php2cpg.passes.PsrStringOrArray.{PsrArray, PsrString}
78
import io.shiftleft.semanticcpg.utils.FileUtil.*
89
import io.shiftleft.codepropertygraph.generated.Cpg
910
import io.shiftleft.codepropertygraph.generated.nodes.Dependency

0 commit comments

Comments
 (0)