@@ -8,11 +8,11 @@ import fr.hammons.slinc.modules.{
88 ArrayReader ,
99 readWriteModule
1010}
11- import scala .annotation .nowarn
1211import scala .reflect .ClassTag
1312import scala .quoted .*
1413import fr .hammons .slinc .modules .TransitionModule
1514import fr .hammons .slinc .modules .{ArgumentTransition , ReturnTransition }
15+ import scala .NonEmptyTuple
1616
1717/** Describes types used by C interop
1818 */
@@ -106,31 +106,23 @@ case object LongDescriptor extends BasicDescriptor:
106106
107107case object FloatDescriptor extends BasicDescriptor :
108108 type Inner = Float
109- @ nowarn(" msg=unused implicit parameter" )
110109 val reader = readWriteModule.floatReader
111- @ nowarn(" msg=unused implicit parameter" )
112110 val writer = readWriteModule.floatWriter
113111
114112case object DoubleDescriptor extends BasicDescriptor :
115113 type Inner = Double
116- @ nowarn(" msg=unused implicit parameter" )
117114 val reader = readWriteModule.doubleReader
118- @ nowarn(" msg=unused implicit parameter" )
119115 val writer = readWriteModule.doubleWriter
120116
121117case object PtrDescriptor extends TypeDescriptor :
122118 type Inner = Ptr [? ]
123- @ nowarn(" msg=unused implicit parameter" )
124119 override val reader = (mem, offset) =>
125120 Ptr (readWriteModule.memReader(mem, offset), Bytes (0 ))
126- @ nowarn(" msg=unused implicit parameter" )
127121 override val writer = (mem, offset, a) =>
128122 readWriteModule.memWriter(mem, offset, a.mem)
129123
130- @ nowarn(" msg=unused implicit parameter" )
131124 override val argumentTransition = _.mem.asAddress
132125
133- @ nowarn(" msg=unused implicit parameter" )
134126 override val returnTransition = o =>
135127 Ptr [Any ](summon[TransitionModule ].addressReturn(o), Bytes (0 ))
136128
@@ -174,11 +166,9 @@ case class AliasDescriptor[A](val real: TypeDescriptor) extends TypeDescriptor:
174166 val writer : (ReadWriteModule , DescriptorModule ) ?=> Writer [Inner ] =
175167 (rwm, _) ?=> (mem, bytes, a) => rwm.write(mem, bytes, real, a)
176168
177- @ nowarn(" msg=unused implicit parameter" )
178169 override val argumentTransition =
179170 summon[TransitionModule ].methodArgument(real, _, summon[Allocator ])
180171
181- @ nowarn(" msg=unused implicit parameter" )
182172 override val returnTransition = summon[TransitionModule ].methodReturn(real, _)
183173 override def size (using dm : DescriptorModule ): Bytes = dm.sizeOf(real)
184174 override def alignment (using dm : DescriptorModule ): Bytes =
@@ -189,22 +179,36 @@ case class AliasDescriptor[A](val real: TypeDescriptor) extends TypeDescriptor:
189179case object VaListDescriptor extends TypeDescriptor :
190180 type Inner = VarArgs
191181
192- @ nowarn(TypeDescriptor .unusedImplicit)
193182 override val reader : (ReadWriteModule , DescriptorModule ) ?=> Reader [Inner ] =
194183 (mem, offset) => summon[ReadWriteModule ].memReader(mem, offset).asVarArgs
195184
196- @ nowarn(TypeDescriptor .unusedImplicit)
197185 override val argumentTransition
198186 : (TransitionModule , ReadWriteModule , Allocator ) ?=> ArgumentTransition [
199187 Inner
200188 ] = _.mem.asAddress
201189
202- @ nowarn(TypeDescriptor .unusedImplicit)
203190 override val writer : (ReadWriteModule , DescriptorModule ) ?=> Writer [Inner ] =
204191 (mem, offset, value) =>
205192 summon[ReadWriteModule ].memWriter(mem, offset, value.mem)
206193
207- @ nowarn(TypeDescriptor .unusedImplicit)
208194 override val returnTransition
209195 : (TransitionModule , ReadWriteModule ) ?=> ReturnTransition [Inner ] = o =>
210196 summon[TransitionModule ].addressReturn(o).asVarArgs
197+
198+ case class CUnionDescriptor (possibleTypes : Set [TypeDescriptor ])
199+ extends TypeDescriptor :
200+ type Inner = CUnion [? <: NonEmptyTuple ]
201+
202+ override val reader : (ReadWriteModule , DescriptorModule ) ?=> Reader [Inner ] =
203+ ???
204+
205+ override val returnTransition
206+ : (TransitionModule , ReadWriteModule ) ?=> ReturnTransition [Inner ] = ???
207+
208+ override val argumentTransition
209+ : (TransitionModule , ReadWriteModule , Allocator ) ?=> ArgumentTransition [
210+ Inner
211+ ] = ???
212+
213+ override val writer : (ReadWriteModule , DescriptorModule ) ?=> Writer [Inner ] =
214+ ???
0 commit comments