File tree 6 files changed +20
-1
lines changed
main/kotlin/org/jacodb/ets
kotlin/org/jacodb/ets/test
resources/samples/source/lang
6 files changed +20
-1
lines changed Original file line number Diff line number Diff line change 64
64
DEST_DIR="arkanalyzer"
65
65
MAX_RETRIES=10
66
66
RETRY_DELAY=3 # Delay between retries in seconds
67
- BRANCH="neo/2025-02-24 "
67
+ BRANCH="neo/2025-03-20 "
68
68
69
69
for ((i=1; i<=MAX_RETRIES; i++)); do
70
70
git clone --depth=1 --branch $BRANCH $REPO_URL $DEST_DIR && break
Original file line number Diff line number Diff line change @@ -695,6 +695,7 @@ fun MethodSignatureDto.toEtsMethodSignature(): EtsMethodSignature {
695
695
name = param.name,
696
696
type = param.type.toEtsType(),
697
697
isOptional = param.isOptional,
698
+ isRest = param.isRest,
698
699
)
699
700
},
700
701
returnType = returnType.toEtsType(),
Original file line number Diff line number Diff line change @@ -59,6 +59,7 @@ data class MethodParameterDto(
59
59
val name : String ,
60
60
val type : TypeDto ,
61
61
val isOptional : Boolean = false ,
62
+ val isRest : Boolean = false ,
62
63
)
63
64
64
65
@Serializable
Original file line number Diff line number Diff line change @@ -120,6 +120,7 @@ data class EtsMethodParameter(
120
120
val name : String ,
121
121
override val type : EtsType ,
122
122
val isOptional : Boolean = false ,
123
+ val isRest : Boolean = false ,
123
124
) : CommonMethodParameter {
124
125
override fun toString (): String {
125
126
return " $name${if (isOptional) " ?" else " " } : $type "
Original file line number Diff line number Diff line change @@ -472,4 +472,14 @@ class EtsFromJsonTest {
472
472
assertEquals(" DummyStmt" , stmtDto.kind)
473
473
assertEquals(42 , stmtDto.extra.getValue(" value" ).jsonPrimitive.content.toInt())
474
474
}
475
+
476
+ @Test
477
+ fun testVararg () {
478
+ val path = " /samples/etsir/ast/lang/vararg.ts.json"
479
+ val file = loadEtsFileFromResource(path)
480
+ val method = file.classes.flatMap { it.methods }.first { it.name == " f" }
481
+ assertEquals(method.parameters.size, 2 )
482
+ assertEquals(method.parameters[0 ].isRest, false )
483
+ assertEquals(method.parameters[1 ].isRest, true )
484
+ }
475
485
}
Original file line number Diff line number Diff line change
1
+ function f ( x , ...args ) {
2
+ console . log ( x ) ;
3
+ console . log ( ...args ) ;
4
+ }
5
+
6
+ f ( 42 , "hello" , "world" ) ;
You can’t perform that action at this time.
0 commit comments