Skip to content

Commit ec60fd4

Browse files
authored
Merge pull request #951 from Kotlin/valueCounts
[Compiler plugin] Support valueCounts
2 parents 741854c + 24ddca2 commit ec60fd4

File tree

13 files changed

+93
-93
lines changed

13 files changed

+93
-93
lines changed

core/src/main/kotlin/org/jetbrains/kotlinx/dataframe/api/valueCounts.kt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@ import org.jetbrains.kotlinx.dataframe.ColumnsSelector
55
import org.jetbrains.kotlinx.dataframe.DataColumn
66
import org.jetbrains.kotlinx.dataframe.DataFrame
77
import org.jetbrains.kotlinx.dataframe.annotations.DataSchema
8+
import org.jetbrains.kotlinx.dataframe.annotations.Interpretable
9+
import org.jetbrains.kotlinx.dataframe.annotations.Refine
810
import org.jetbrains.kotlinx.dataframe.columns.toColumnSet
911
import org.jetbrains.kotlinx.dataframe.impl.nameGenerator
1012
import kotlin.reflect.KProperty
@@ -50,6 +52,8 @@ public fun <T> DataColumn<T>.valueCounts(
5052

5153
// region DataFrame
5254

55+
@Refine
56+
@Interpretable("ValueCounts")
5357
public fun <T> DataFrame<T>.valueCounts(
5458
sort: Boolean = true,
5559
ascending: Boolean = false,
Lines changed: 6 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,8 @@
11
package org.jetbrains.kotlinx.dataframe.plugin.impl
22

3-
import org.jetbrains.kotlinx.dataframe.plugin.impl.api.RenameClauseApproximation
43
import org.jetbrains.kotlinx.dataframe.plugin.impl.AbstractInterpreter.*
54
import org.jetbrains.kotlinx.dataframe.plugin.impl.api.TypeApproximation
6-
import org.jetbrains.kotlinx.dataframe.plugin.impl.data.ColumnAccessorApproximation
7-
import org.jetbrains.kotlinx.dataframe.plugin.impl.data.ColumnPathApproximation
8-
import org.jetbrains.kotlinx.dataframe.plugin.impl.data.ColumnWithPathApproximation
95
import org.jetbrains.kotlinx.dataframe.plugin.impl.data.DataFrameCallableId
10-
import org.jetbrains.kotlinx.dataframe.plugin.impl.data.InsertClauseApproximation
11-
import org.jetbrains.kotlinx.dataframe.plugin.impl.data.KPropertyApproximation
126
import kotlin.properties.PropertyDelegateProvider
137
import kotlin.properties.ReadOnlyProperty
148

@@ -18,63 +12,26 @@ fun <T> AbstractInterpreter<T>.dataFrame(
1812
name: ArgumentName? = null
1913
): ExpectedArgumentProvider<PluginDataFrameSchema> = arg(name, lens = Interpreter.Schema)
2014

21-
fun <T> AbstractInterpreter<T>.varargString(
22-
name: ArgumentName? = null,
23-
defaultValue: DefaultValue<List<String>> = Absent
24-
): ExpectedArgumentProvider<List<String>> = arg(name, lens = Interpreter.Value, defaultValue = defaultValue)
25-
26-
fun <T> AbstractInterpreter<T>.renameClause(
27-
name: ArgumentName? = null
28-
): ExpectedArgumentProvider<RenameClauseApproximation> = arg(name, lens = Interpreter.Value)
29-
30-
fun <T> AbstractInterpreter<T>.columnsSelector(
31-
name: ArgumentName? = null
32-
): ExpectedArgumentProvider<List<String>> = arg(name, lens = Interpreter.Value)
33-
3415
fun <T> AbstractInterpreter<T>.type(
3516
name: ArgumentName? = null
3617
): ExpectedArgumentProvider<TypeApproximation> = arg(name, lens = Interpreter.ReturnType)
3718

3819
fun <T, E : Enum<E>> AbstractInterpreter<T>.enum(
3920
name: ArgumentName? = null,
4021
defaultValue: DefaultValue<E> = Absent
41-
): ExpectedArgumentProvider<E> = argConvert(name = name, lens = Interpreter.Value, defaultValue = defaultValue) { it: DataFrameCallableId ->
22+
): ExpectedArgumentProvider<E> = argConvert(name = name, defaultValue = defaultValue) { it: DataFrameCallableId ->
4223
val forName: Class<*> = Class.forName("${it.packageName}.${it.className}")
4324
@Suppress("UNCHECKED_CAST")
4425
java.lang.Enum.valueOf(forName as Class<out Enum<*>>, it.callableName) as E
4526
}
4627

47-
fun <T> AbstractInterpreter<T>.columnAccessor(
48-
name: ArgumentName? = null
49-
): ExpectedArgumentProvider<ColumnAccessorApproximation> = arg(name, lens = Interpreter.Value)
50-
51-
fun <T> AbstractInterpreter<T>.dataColumn(
52-
name: ArgumentName? = null
53-
): ExpectedArgumentProvider<SimpleCol> = arg(name, lens = Interpreter.Value)
54-
55-
fun <T> AbstractInterpreter<T>.insertClause(
56-
name: ArgumentName? = null
57-
): ExpectedArgumentProvider<InsertClauseApproximation> = arg(name, lens = Interpreter.Value)
58-
59-
internal fun <T> AbstractInterpreter<T>.columnPath(
60-
name: ArgumentName? = null
61-
): ExpectedArgumentProvider<ColumnPathApproximation> = arg(name, lens = Interpreter.Value)
62-
63-
internal fun <T> AbstractInterpreter<T>.columnWithPath(
64-
name: ArgumentName? = null
65-
): ExpectedArgumentProvider<ColumnWithPathApproximation> = arg(name, lens = Interpreter.Value)
66-
67-
fun <T> AbstractInterpreter<T>.kproperty(
68-
name: ArgumentName? = null
69-
): ExpectedArgumentProvider<KPropertyApproximation> = arg(name, lens = Interpreter.Value)
70-
71-
internal fun <T> AbstractInterpreter<T>.string(
72-
name: ArgumentName? = null
73-
): ExpectedArgumentProvider<String> =
74-
arg(name, lens = Interpreter.Value)
75-
7628
internal fun <T> AbstractInterpreter<T>.dsl(
7729
name: ArgumentName? = null
7830
): ExpectedArgumentProvider<(Any, Map<String, Interpreter.Success<Any?>>) -> Unit> =
7931
arg(name, lens = Interpreter.Dsl, defaultValue = Present(value = {_, _ -> }))
8032

33+
internal fun <T> AbstractInterpreter<T>.ignore(
34+
name: ArgumentName? = null
35+
): ExpectedArgumentProvider<Nothing?> =
36+
arg(name, lens = Interpreter.Id, defaultValue = Present(null))
37+

plugins/kotlin-dataframe/src/org/jetbrains/kotlinx/dataframe/plugin/impl/api/add.kt

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4,21 +4,19 @@ import org.jetbrains.kotlinx.dataframe.plugin.extensions.Marker
44
import org.jetbrains.kotlinx.dataframe.plugin.impl.AbstractInterpreter
55
import org.jetbrains.kotlinx.dataframe.plugin.impl.AbstractSchemaModificationInterpreter
66
import org.jetbrains.kotlinx.dataframe.plugin.impl.Arguments
7-
import org.jetbrains.kotlinx.dataframe.plugin.impl.Interpreter
87
import org.jetbrains.kotlinx.dataframe.plugin.impl.PluginDataFrameSchema
98
import org.jetbrains.kotlinx.dataframe.plugin.impl.SimpleCol
109
import org.jetbrains.kotlinx.dataframe.plugin.impl.SimpleColumnGroup
1110
import org.jetbrains.kotlinx.dataframe.plugin.impl.dataFrame
1211
import org.jetbrains.kotlinx.dataframe.plugin.impl.simpleColumnOf
1312
import org.jetbrains.kotlinx.dataframe.plugin.impl.dsl
14-
import org.jetbrains.kotlinx.dataframe.plugin.impl.string
1513
import org.jetbrains.kotlinx.dataframe.plugin.impl.type
1614

1715
typealias TypeApproximation = Marker
1816

1917
class Add : AbstractSchemaModificationInterpreter() {
2018
val Arguments.receiver: PluginDataFrameSchema by dataFrame()
21-
val Arguments.name: String by string()
19+
val Arguments.name: String by arg()
2220
val Arguments.type: TypeApproximation by type(name("expression"))
2321

2422
override fun Arguments.interpret(): PluginDataFrameSchema {
@@ -27,8 +25,8 @@ class Add : AbstractSchemaModificationInterpreter() {
2725
}
2826

2927
class From : AbstractInterpreter<Unit>() {
30-
val Arguments.dsl: AddDslApproximation by arg(lens = Interpreter.Value)
31-
val Arguments.receiver: String by string()
28+
val Arguments.dsl: AddDslApproximation by arg()
29+
val Arguments.receiver: String by arg()
3230
val Arguments.type: TypeApproximation by type(name("expression"))
3331

3432
override fun Arguments.interpret() {
@@ -37,9 +35,9 @@ class From : AbstractInterpreter<Unit>() {
3735
}
3836

3937
class Into : AbstractInterpreter<Unit>() {
40-
val Arguments.dsl: AddDslApproximation by arg(lens = Interpreter.Value)
38+
val Arguments.dsl: AddDslApproximation by arg()
4139
val Arguments.receiver: TypeApproximation by type()
42-
val Arguments.name: String by string()
40+
val Arguments.name: String by arg()
4341

4442
override fun Arguments.interpret() {
4543
dsl.columns += simpleColumnOf(name, receiver.type)
@@ -60,8 +58,8 @@ class AddWithDsl : AbstractSchemaModificationInterpreter() {
6058
}
6159

6260
class AddDslStringInvoke : AbstractInterpreter<Unit>() {
63-
val Arguments.dsl: AddDslApproximation by arg(lens = Interpreter.Value)
64-
val Arguments.receiver: String by string()
61+
val Arguments.dsl: AddDslApproximation by arg()
62+
val Arguments.receiver: String by arg()
6563
val Arguments.body by dsl()
6664

6765
override fun Arguments.interpret() {

plugins/kotlin-dataframe/src/org/jetbrains/kotlinx/dataframe/plugin/impl/api/convert.kt

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package org.jetbrains.kotlinx.dataframe.plugin.impl.api
22

33
import org.jetbrains.kotlinx.dataframe.api.Infer
44
import org.jetbrains.kotlinx.dataframe.plugin.extensions.KotlinTypeFacade
5+
import org.jetbrains.kotlinx.dataframe.plugin.impl.Absent
56
import org.jetbrains.kotlinx.dataframe.plugin.impl.AbstractInterpreter
67
import org.jetbrains.kotlinx.dataframe.plugin.impl.AbstractSchemaModificationInterpreter
78
import org.jetbrains.kotlinx.dataframe.plugin.impl.Arguments
@@ -11,13 +12,10 @@ import org.jetbrains.kotlinx.dataframe.plugin.impl.SimpleCol
1112
import org.jetbrains.kotlinx.dataframe.plugin.impl.SimpleColumnGroup
1213
import org.jetbrains.kotlinx.dataframe.plugin.impl.SimpleDataColumn
1314
import org.jetbrains.kotlinx.dataframe.plugin.impl.SimpleFrameColumn
14-
import org.jetbrains.kotlinx.dataframe.plugin.impl.data.ColumnWithPathApproximation
1515
import org.jetbrains.kotlinx.dataframe.plugin.impl.dataFrame
1616
import org.jetbrains.kotlinx.dataframe.plugin.impl.enum
1717
import org.jetbrains.kotlinx.dataframe.plugin.impl.simpleColumnOf
18-
import org.jetbrains.kotlinx.dataframe.plugin.impl.string
1918
import org.jetbrains.kotlinx.dataframe.plugin.impl.type
20-
import org.jetbrains.kotlinx.dataframe.plugin.impl.varargString
2119

2220
internal class Convert0 : AbstractInterpreter<ConvertApproximation>() {
2321
val Arguments.columns: ColumnsResolver by arg()
@@ -31,7 +29,7 @@ internal class Convert0 : AbstractInterpreter<ConvertApproximation>() {
3129

3230
class Convert2 : AbstractInterpreter<ConvertApproximation>() {
3331
val Arguments.receiver: PluginDataFrameSchema by dataFrame()
34-
val Arguments.columns: List<String> by varargString()
32+
val Arguments.columns: List<String> by arg(defaultValue = Absent)
3533

3634
override fun Arguments.interpret(): ConvertApproximation {
3735
return ConvertApproximation(receiver, columns.map { listOf(it) })
@@ -41,8 +39,8 @@ class Convert2 : AbstractInterpreter<ConvertApproximation>() {
4139
class ConvertApproximation(val schema: PluginDataFrameSchema, val columns: List<List<String>>)
4240

4341
internal class Convert6 : AbstractInterpreter<PluginDataFrameSchema>() {
44-
val Arguments.firstCol: String by string()
45-
val Arguments.cols: List<String> by varargString(defaultValue = Present(emptyList()))
42+
val Arguments.firstCol: String by arg()
43+
val Arguments.cols: List<String> by arg(defaultValue = Present(emptyList()))
4644
val Arguments.infer: Infer by enum(defaultValue = Present(Infer.Nulls))
4745
val Arguments.expression: TypeApproximation by type()
4846
val Arguments.receiver: PluginDataFrameSchema by dataFrame()

plugins/kotlin-dataframe/src/org/jetbrains/kotlinx/dataframe/plugin/impl/api/dataFrameOf.kt

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,10 @@ import org.jetbrains.kotlinx.dataframe.plugin.impl.Arguments
1414
import org.jetbrains.kotlinx.dataframe.plugin.impl.Interpreter
1515
import org.jetbrains.kotlinx.dataframe.plugin.impl.PluginDataFrameSchema
1616
import org.jetbrains.kotlinx.dataframe.plugin.impl.simpleColumnOf
17-
import org.jetbrains.kotlinx.dataframe.plugin.impl.varargString
1817
import org.jetbrains.kotlinx.dataframe.impl.api.withValuesImpl
1918

2019
class DataFrameOf0 : AbstractInterpreter<DataFrameBuilderApproximation>() {
21-
val Arguments.header: List<String> by varargString()
20+
val Arguments.header: List<String> by arg()
2221

2322
override fun Arguments.interpret(): DataFrameBuilderApproximation {
2423
return DataFrameBuilderApproximation(header)

plugins/kotlin-dataframe/src/org/jetbrains/kotlinx/dataframe/plugin/impl/api/insert.kt

Lines changed: 13 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -14,27 +14,21 @@ import org.jetbrains.kotlinx.dataframe.plugin.impl.Present
1414
import org.jetbrains.kotlinx.dataframe.plugin.impl.SimpleCol
1515
import org.jetbrains.kotlinx.dataframe.plugin.impl.asDataColumn
1616
import org.jetbrains.kotlinx.dataframe.plugin.impl.asDataFrame
17-
import org.jetbrains.kotlinx.dataframe.plugin.impl.columnAccessor
18-
import org.jetbrains.kotlinx.dataframe.plugin.impl.columnPath
1917
import org.jetbrains.kotlinx.dataframe.plugin.impl.data.ColumnAccessorApproximation
2018
import org.jetbrains.kotlinx.dataframe.plugin.impl.data.ColumnPathApproximation
2119
import org.jetbrains.kotlinx.dataframe.plugin.impl.data.InsertClauseApproximation
2220
import org.jetbrains.kotlinx.dataframe.plugin.impl.data.KPropertyApproximation
23-
import org.jetbrains.kotlinx.dataframe.plugin.impl.dataColumn
2421
import org.jetbrains.kotlinx.dataframe.plugin.impl.dataFrame
2522
import org.jetbrains.kotlinx.dataframe.plugin.impl.enum
26-
import org.jetbrains.kotlinx.dataframe.plugin.impl.insertClause
27-
import org.jetbrains.kotlinx.dataframe.plugin.impl.kproperty
2823
import org.jetbrains.kotlinx.dataframe.plugin.impl.simpleColumnOf
29-
import org.jetbrains.kotlinx.dataframe.plugin.impl.string
3024
import org.jetbrains.kotlinx.dataframe.plugin.impl.toPluginDataFrameSchema
3125
import org.jetbrains.kotlinx.dataframe.plugin.impl.type
3226

3327
/**
3428
* @see DataFrame.insert
3529
*/
3630
internal class Insert0 : AbstractInterpreter<InsertClauseApproximation>() {
37-
val Arguments.column: SimpleCol by dataColumn()
31+
val Arguments.column: SimpleCol by arg()
3832
val Arguments.receiver: PluginDataFrameSchema by dataFrame()
3933

4034
override fun Arguments.interpret(): InsertClauseApproximation {
@@ -43,7 +37,7 @@ internal class Insert0 : AbstractInterpreter<InsertClauseApproximation>() {
4337
}
4438

4539
internal class Insert1 : AbstractInterpreter<InsertClauseApproximation>() {
46-
val Arguments.name: String by string()
40+
val Arguments.name: String by arg()
4741
val Arguments.infer: Infer by enum(defaultValue = Present(Infer.Nulls))
4842
val Arguments.expression: TypeApproximation by type()
4943
val Arguments.receiver: PluginDataFrameSchema by dataFrame()
@@ -54,7 +48,7 @@ internal class Insert1 : AbstractInterpreter<InsertClauseApproximation>() {
5448
}
5549

5650
internal class Insert2 : AbstractInterpreter<InsertClauseApproximation>() {
57-
val Arguments.column: ColumnAccessorApproximation by columnAccessor()
51+
val Arguments.column: ColumnAccessorApproximation by arg()
5852
val Arguments.infer: Infer by enum(defaultValue = Present(Infer.Nulls))
5953
val Arguments.expression: TypeApproximation by type()
6054
val Arguments.receiver: PluginDataFrameSchema by dataFrame()
@@ -65,7 +59,7 @@ internal class Insert2 : AbstractInterpreter<InsertClauseApproximation>() {
6559
}
6660

6761
internal class Insert3 : AbstractInterpreter<InsertClauseApproximation>() {
68-
val Arguments.column: KPropertyApproximation by kproperty()
62+
val Arguments.column: KPropertyApproximation by arg()
6963
val Arguments.infer: Infer by enum(defaultValue = Present(Infer.Nulls))
7064
val Arguments.expression: TypeApproximation by type()
7165
val Arguments.receiver: PluginDataFrameSchema by dataFrame()
@@ -77,7 +71,7 @@ internal class Insert3 : AbstractInterpreter<InsertClauseApproximation>() {
7771

7872
internal class Under0 : AbstractInterpreter<PluginDataFrameSchema>() {
7973
val Arguments.column: SingleColumnApproximation by arg()
80-
val Arguments.receiver: InsertClauseApproximation by insertClause()
74+
val Arguments.receiver: InsertClauseApproximation by arg()
8175

8276
override fun Arguments.interpret(): PluginDataFrameSchema {
8377
val path = column.resolve(receiver.df).single().path
@@ -88,8 +82,8 @@ internal class Under0 : AbstractInterpreter<PluginDataFrameSchema>() {
8882
}
8983

9084
internal class Under1 : AbstractInterpreter<PluginDataFrameSchema>() {
91-
val Arguments.columnPath: ColumnPathApproximation by columnPath()
92-
val Arguments.receiver: InsertClauseApproximation by insertClause()
85+
val Arguments.columnPath: ColumnPathApproximation by arg()
86+
val Arguments.receiver: InsertClauseApproximation by arg()
9387

9488
override fun Arguments.interpret(): PluginDataFrameSchema {
9589
return receiver.df.asDataFrame()
@@ -99,8 +93,8 @@ internal class Under1 : AbstractInterpreter<PluginDataFrameSchema>() {
9993
}
10094

10195
internal class Under2 : AbstractInterpreter<PluginDataFrameSchema>() {
102-
val Arguments.column: ColumnAccessorApproximation by columnAccessor()
103-
val Arguments.receiver: InsertClauseApproximation by insertClause()
96+
val Arguments.column: ColumnAccessorApproximation by arg()
97+
val Arguments.receiver: InsertClauseApproximation by arg()
10498

10599
override fun Arguments.interpret(): PluginDataFrameSchema {
106100
return receiver.df.asDataFrame()
@@ -110,8 +104,8 @@ internal class Under2 : AbstractInterpreter<PluginDataFrameSchema>() {
110104
}
111105

112106
internal class Under3 : AbstractInterpreter<PluginDataFrameSchema>() {
113-
val Arguments.column: KPropertyApproximation by kproperty()
114-
val Arguments.receiver: InsertClauseApproximation by insertClause()
107+
val Arguments.column: KPropertyApproximation by arg()
108+
val Arguments.receiver: InsertClauseApproximation by arg()
115109

116110
override fun Arguments.interpret(): PluginDataFrameSchema {
117111
return receiver.df.asDataFrame()
@@ -121,8 +115,8 @@ internal class Under3 : AbstractInterpreter<PluginDataFrameSchema>() {
121115
}
122116

123117
internal class Under4 : AbstractInterpreter<PluginDataFrameSchema>() {
124-
val Arguments.column: String by string()
125-
val Arguments.receiver: InsertClauseApproximation by insertClause()
118+
val Arguments.column: String by arg()
119+
val Arguments.receiver: InsertClauseApproximation by arg()
126120

127121
override fun Arguments.interpret(): PluginDataFrameSchema {
128122
return receiver.df.asDataFrame()

plugins/kotlin-dataframe/src/org/jetbrains/kotlinx/dataframe/plugin/impl/api/read.kt

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,12 +21,11 @@ import org.jetbrains.kotlinx.dataframe.plugin.impl.AbstractSchemaModificationInt
2121
import org.jetbrains.kotlinx.dataframe.plugin.impl.PluginDataFrameSchema
2222
import org.jetbrains.kotlinx.dataframe.plugin.impl.data.IoSchema
2323
import org.jetbrains.kotlinx.dataframe.plugin.impl.data.deserializeToPluginDataFrameSchema
24-
import org.jetbrains.kotlinx.dataframe.plugin.impl.string
2524
import org.jetbrains.kotlinx.dataframe.plugin.impl.data.toPluginDataFrameSchema
2625
import java.io.File
2726

2827
internal class Read0 : AbstractInterpreter<PluginDataFrameSchema>() {
29-
val Arguments.path by string()
28+
val Arguments.path: String by arg()
3029
val Arguments.header: List<String> by arg(defaultValue = Present(listOf()))
3130

3231
override fun Arguments.interpret(): PluginDataFrameSchema {

plugins/kotlin-dataframe/src/org/jetbrains/kotlinx/dataframe/plugin/impl/api/rename.kt

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,7 @@ import org.jetbrains.kotlinx.dataframe.plugin.impl.SimpleCol
88
import org.jetbrains.kotlinx.dataframe.plugin.impl.SimpleDataColumn
99
import org.jetbrains.kotlinx.dataframe.plugin.impl.SimpleColumnGroup
1010
import org.jetbrains.kotlinx.dataframe.plugin.impl.SimpleFrameColumn
11-
import org.jetbrains.kotlinx.dataframe.plugin.impl.data.ColumnWithPathApproximation
1211
import org.jetbrains.kotlinx.dataframe.plugin.impl.dataFrame
13-
import org.jetbrains.kotlinx.dataframe.plugin.impl.varargString
1412

1513
class Rename : AbstractInterpreter<RenameClauseApproximation>() {
1614
private val Arguments.receiver by dataFrame()
@@ -24,7 +22,7 @@ class RenameClauseApproximation(val schema: PluginDataFrameSchema, val columns:
2422

2523
class RenameInto : AbstractSchemaModificationInterpreter() {
2624
val Arguments.receiver: RenameClauseApproximation by arg()
27-
val Arguments.newNames: List<String> by varargString()
25+
val Arguments.newNames: List<String> by arg()
2826

2927
override fun Arguments.interpret(): PluginDataFrameSchema {
3028
val columns = receiver.columns.resolve(receiver.schema)

plugins/kotlin-dataframe/src/org/jetbrains/kotlinx/dataframe/plugin/impl/api/stdlib.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,16 +22,16 @@ class PairConstructor : AbstractInterpreter<Pair<*, *>>() {
2222
}
2323

2424
class TrimMargin : AbstractInterpreter<String>() {
25-
val Arguments.receiver: String by arg(lens = Interpreter.Value)
26-
val Arguments.marginPrefix: String by arg(lens = Interpreter.Value, defaultValue = Present("|"))
25+
val Arguments.receiver: String by arg()
26+
val Arguments.marginPrefix: String by arg(defaultValue = Present("|"))
2727

2828
override fun Arguments.interpret(): String {
2929
return receiver.trimMargin(marginPrefix)
3030
}
3131
}
3232

3333
class TrimIndent : AbstractInterpreter<String>() {
34-
val Arguments.receiver: String by arg(lens = Interpreter.Value)
34+
val Arguments.receiver: String by arg()
3535

3636
override fun Arguments.interpret(): String {
3737
return receiver.trimIndent()

0 commit comments

Comments
 (0)