@@ -17,21 +17,6 @@ final case class R[K <: String, V](v: V)
17
17
18
18
trait Selector [L <: HList , K , V ]
19
19
20
- object Selector {
21
- implicit def caseFound [T <: HList , K <: String , V ]
22
- : Selector [R [K , V ] :: T , K , V ] = {
23
- println(" Selector.caseFound" )
24
- null
25
- }
26
-
27
- implicit def caseRecur [H , T <: HList , K <: String , V ]
28
- (implicit i : Selector [T , K , V ])
29
- : Selector [H :: T , K , V ] = {
30
- println(" Selector.caseRecur" )
31
- null
32
- }
33
- }
34
-
35
20
// Subset of Frameless
36
21
// ----------------------------------------------------------------------------
37
22
@@ -83,34 +68,46 @@ case class Column[T, A](label: String)
83
68
@ implicitNotFound(msg = " No column ${K} in type ${T}" )
84
69
trait Exists [T , K , V ]
85
70
86
- object Exists {
87
- implicit def derive [T , H <: HList , K , V ]
88
- (implicit
89
- g : LabelledGeneric [T ] { type Repr = H },
90
- s : Selector [H , K , V ]
91
- ): Exists [T , K , V ] = {
71
+ object UsedExists {
72
+ implicit def derive [T , H <: HList , K , V ](implicit g : LabelledGeneric [T ] { type Repr = H }, s : Selector [H , K , V ]): Exists [T , K , V ] = {
92
73
println(" Exists.derive" )
93
74
null
94
75
}
76
+
77
+ implicit def caseFound [T <: HList , K <: String , V ]: Selector [R [K , V ] :: T , K , V ] = {
78
+ println(" Selector.caseFound" )
79
+ null
80
+ }
81
+
82
+ implicit def caseRecur [H , T <: HList , K <: String , V ](implicit i : Selector [T , K , V ]): Selector [H :: T , K , V ] = {
83
+ println(" Selector.caseRecur" )
84
+ null
85
+ }
95
86
}
96
87
97
88
object UnusedExists {
98
- implicit unused def derive [T , H <: HList , K , V ]
99
- (implicit
100
- g : LabelledGeneric [T ] { type Repr = H },
101
- s : Selector [H , K , V ]
102
- ): Exists [T , K , V ] = {
89
+ implicit unused def derive [T , H <: HList , K , V ](implicit unused g : LabelledGeneric [T ] { type Repr = H }, s : Selector [H , K , V ] ): Exists [T , K , V ] = {
103
90
println(" UnusedExists.derive" )
104
91
null
105
92
}
93
+
94
+ unused implicit def caseFound [T <: HList , K <: String , V ]: Selector [R [K , V ] :: T , K , V ] = {
95
+ println(" Selector.caseFound" )
96
+ null
97
+ }
98
+
99
+ unused implicit def caseRecur [H , T <: HList , K <: String , V ](implicit i : Selector [T , K , V ]): Selector [H :: T , K , V ] = {
100
+ println(" Selector.caseRecur" )
101
+ null
102
+ }
106
103
}
107
104
108
105
// X4 Example
109
106
// ----------------------------------------------------------------------------
110
107
111
108
case class X4 [A , B , C , D ](a : A , b : B , c : C , d : D )
112
109
113
- object X4 {
110
+ object UsedX4 {
114
111
// Macro generated
115
112
implicit def x4Repr [A , B , C , D ]: LabelledGeneric [X4 [A , B , C , D ]] {
116
113
type Repr = R [" a" , A ] :: R [" b" , B ] :: R [" c" , C ] :: R [" d" , D ] :: HNil
@@ -120,6 +117,16 @@ object X4 {
120
117
}
121
118
}
122
119
120
+ object UnusedX4 {
121
+ // Macro generated
122
+ implicit unused def x4Repr [A , B , C , D ]: LabelledGeneric [X4 [A , B , C , D ]] {
123
+ type Repr = R [" a" , A ] :: R [" b" , B ] :: R [" c" , C ] :: R [" d" , D ] :: HNil
124
+ } = {
125
+ println(" X4.x4Repr" )
126
+ null
127
+ }
128
+ }
129
+
123
130
object Test {
124
131
def main (args : Array [String ]): Unit = {
125
132
val source : Vector [X4 [Int , String , Double , Boolean ]] =
@@ -131,16 +138,21 @@ object Test {
131
138
132
139
{
133
140
import UnusedExists ._
141
+ import UnusedX4 ._
134
142
println(" unused" )
135
143
val unusedD = ds.col(" d" )
136
144
val outSpark1 : Vector [Boolean ] = ds.select(unusedD).collect()
137
145
assert(outSpark1 == outColl)
138
146
}
139
147
140
- println(" used" )
141
- val usedD = ds.col(" d" )
142
- val outSpark2 : Vector [Boolean ] = ds.select(usedD).collect()
143
- assert(outSpark2 == outColl)
148
+ {
149
+ import UsedExists ._
150
+ import UsedX4 ._
151
+ println(" used" )
152
+ val usedD = ds.col(" d" )
153
+ val outSpark2 : Vector [Boolean ] = ds.select(usedD).collect()
154
+ assert(outSpark2 == outColl)
155
+ }
144
156
145
157
println(" end" )
146
158
}
0 commit comments