@@ -8,30 +8,30 @@ private[pulp] class WiredImpl(wiredType: WiredImpl.Type)(val c: Context)(annotte
8
8
import c .universe ._
9
9
10
10
private def buildProviderMethod (classDef : ClassDef ): ValOrDefDef = classDef match {
11
- case q """ $_ class $name[.. ${params : Seq [TypeDef ]}] $_(.. ${ctorParams : Seq [ValDef ]})
11
+ case q """ $_ class $name[.. ${params : Seq [TypeDef ]}] $_(... ${ctorParams : Seq [Seq [ ValDef ] ]})
12
12
extends { .. $_ }
13
13
with .. $_ { $_ => .. $_ } """ =>
14
- val providerArgs = ctorParams.map(p => q " ${p.name}: io.scalaland.pulp.Provider[ ${p.tpt}] " )
14
+ val providerArgs = ctorParams.flatten. map(p => q " ${p.name}: io.scalaland.pulp.Provider[ ${p.tpt}] " )
15
15
val ctorArgs =
16
- if (wiredType != WiredImpl .Type .Singleton ) ctorParams.map(p => q " ${p.name}.get " )
17
- else ctorParams.map(p => q " io.scalaland.pulp.Provider.get[ ${p.tpt}] " )
16
+ if (wiredType != WiredImpl .Type .Singleton ) ctorParams.map(_.map( p => q " ${p.name}.get " ) )
17
+ else ctorParams.map(_.map( p => q " io.scalaland.pulp.Provider.get[ ${p.tpt}] " ) )
18
18
19
19
withTraceLog(" Provider implicit expanded" ) {
20
20
wiredType match {
21
21
case WiredImpl .Type .Default =>
22
22
q """ implicit def implicitProvider[.. $params](implicit .. $providerArgs)
23
23
: io.scalaland.pulp.Provider[ $name[.. ${params.map(_.name)}]] =
24
- io.scalaland.pulp.Provider.const(new $name[.. ${params.map(_.name)}](.. $ctorArgs)) """ : DefDef
24
+ io.scalaland.pulp.Provider.const(new $name[.. ${params.map(_.name)}](... $ctorArgs)) """ : DefDef
25
25
26
26
case WiredImpl .Type .Factory =>
27
27
q """ implicit def implicitProvider[.. $params](implicit .. $providerArgs)
28
28
: io.scalaland.pulp.Provider[ $name[.. ${params.map(_.name)}]] =
29
- io.scalaland.pulp.Provider.factory(new $name[.. ${params.map(_.name)}](.. $ctorArgs)) """ : DefDef
29
+ io.scalaland.pulp.Provider.factory(new $name[.. ${params.map(_.name)}](... $ctorArgs)) """ : DefDef
30
30
31
31
case WiredImpl .Type .Singleton if params.isEmpty =>
32
32
q """ implicit lazy val implicitProvider
33
33
: io.scalaland.pulp.Provider[ $name[.. ${params.map(_.name)}]] =
34
- io.scalaland.pulp.Provider.const(new $name[.. ${params.map(_.name)}](.. $ctorArgs)) """ : ValDef
34
+ io.scalaland.pulp.Provider.const(new $name[.. ${params.map(_.name)}](... $ctorArgs)) """ : ValDef
35
35
36
36
case WiredImpl .Type .Singleton if params.nonEmpty =>
37
37
c.abort(c.enclosingPosition, " @Singleton cannot be used on parametric types" )
0 commit comments