@@ -68,40 +68,10 @@ object AppContextProviders {
6868 }
6969 retval
7070 }
71-
72-
71+
7372 inline def checkAllAreNeeded [Xs <: NonEmptyTuple ](using p : AppContextProviders [Xs ]): Boolean =
7473 $ { TupleMacroses .checkAllAreNeeded[[X ]=>> AppContextProvider [X ],[X <: NonEmptyTuple ]=>> AppContextProviders [X ],Xs ](' p ) }
75- // ${ checkAllAreNeededImpl[Xs]('p) }
76-
77- // not used,
78- private def checkAllAreNeededImpl [T <: NonEmptyTuple : Type ](p : Expr [AppContextProviders [T ]])(using Quotes ): Expr [Boolean ] = {
79- import quotes .reflect .*
80- val tupleType = TypeRepr .of[T ]
81- val tupleTypes = TupleMacroses .extractTupleTypes(tupleType)
82- val fromProvidersSymbol = Symbol .requiredMethod(" com.github.rssh.appcontext.AppContextProvider.fromProviders" )
83- var retval = true
84- for { t <- tupleTypes } {
85- val tProvider = TypeRepr .of[AppContextProvider ].appliedTo(t)
86- Implicits .search(tProvider) match
87- case failure : ImplicitSearchFailure =>
88- // impossible, it will be success.
89- report.error(s " Cannot find ${tProvider.show}: ${failure.explanation}" )
90- case success : ImplicitSearchSuccess =>
91- // if this is 'this ?
92- success.tree match
93- case Apply (TypeApply (fun, targs), args@ List (p1,ti)) if (fun.symbol == fromProvidersSymbol) =>
94- if ! (p1.tpe =:= p.asTerm.tpe) then
95- report.error(s " Provider for ${t.show} in ${p.show} is not necessory: ${success.tree.show} provider will be used " )
96- retval = false
97- case _ =>
98- report.error(s " Provider for ${t.show} is not needed in ${p.show}, it will be resolved as: ${success.tree.show}" )
99- retval = false
100- }
101- Expr (retval)
102- }
103-
104-
74+
10575
10676}
10777
0 commit comments