Skip to content

Commit d4f9c5f

Browse files
pshirshovneko-kai
andauthored
Functoid isolation (#2106)
* namings and packages: scala 2 macro universe isolated * wip * wip * wip * wip * wip * wip * wip * proxy initialization improvements * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * 2.12 fixes * wip * scala 3 fixed * wip * wip * wip * wip * scala 3 done (more or less) * i/r 2.3.10 * fundamentals-functoid * LifecycleTagMacro: add Try just in case * Make DIAnnotationMeta just a function * Return ProviderType.Singleton * package-private `Functoid#returnTypeTag` * Return DebugProperties for Functoid * remove asInstanceOfs, pass Functoid type in FunctoidMacroBase constructor parameter * Cleanup and remove unused code * Don't duplicate -Yretain-trees * fix PortableNamedArg non-exhaustive match * revert change to lambda tpes - switch to lambda arg key type (exchange key types, not other types) * fix merge error * Intellij highlighting and naming fix * fix 2.12 build --------- Co-authored-by: Kai <[email protected]>
1 parent 6c98c33 commit d4f9c5f

File tree

222 files changed

+3088
-1990
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

222 files changed

+3088
-1990
lines changed

build.sbt

+928-304
Large diffs are not rendered by default.

distage/distage-core-api/src/main/scala-2/izumi/distage/constructors/constructors.scala

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package izumi.distage.constructors
22

3-
import izumi.distage.constructors.macros.*
3+
import izumi.distage.reflection.macros.constructors.*
44
import izumi.distage.model.definition.dsl.ModuleDefDSL
55
import izumi.distage.model.exceptions.macros.{TraitInitializationFailedException, UnsupportedDefinitionException}
66
import izumi.distage.model.providers.Functoid
@@ -105,12 +105,12 @@ object ZEnvConstructor {
105105
implicit def materialize[T]: ZEnvConstructor[T] = macro ZEnvConstructorMacro.mkZEnvConstructor[T]
106106
}
107107

108-
private[constructors] sealed trait ClassConstructorOptionalMakeDSL[T] extends Any {
108+
private[distage] sealed trait ClassConstructorOptionalMakeDSL[T] extends Any {
109109
def provider: Functoid[T]
110110
}
111111

112112
object ClassConstructorOptionalMakeDSL {
113-
private[constructors] final class Impl[T](val provider: Functoid[T]) extends AnyVal with ClassConstructorOptionalMakeDSL[T]
113+
private[distage] final class Impl[T](val provider: Functoid[T]) extends AnyVal with ClassConstructorOptionalMakeDSL[T]
114114

115115
@inline def apply[T](functoid: Functoid[T]): ClassConstructorOptionalMakeDSL.Impl[T] = {
116116
new ClassConstructorOptionalMakeDSL.Impl[T](functoid)
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,8 @@
11
package izumi.distage.model.definition.dsl
22

3-
import izumi.distage.constructors.macros.MakeMacro
4-
3+
import izumi.distage.reflection.macros.constructors.MakeMacro
54
import scala.language.experimental.macros
65

76
trait AbstractBindingDefDSLMacro[BindDSL[_]] {
8-
final protected[this] def make[T]: BindDSL[T] = macro MakeMacro.make[BindDSL, T]
7+
final protected def make[T]: BindDSL[T] = macro MakeMacro.make[BindDSL, T]
98
}

distage/distage-core-api/src/main/scala-2/izumi/distage/model/definition/dsl/LifecycleTagMacro.scala

+2-1
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,12 @@ import izumi.distage.model.definition.Lifecycle
44
import izumi.reflect.TagMacro
55

66
import scala.reflect.macros.blackbox
7+
import scala.util.Try
78

89
object LifecycleTagMacro {
910
def fakeResourceTagMacroIntellijWorkaroundImpl[R <: Lifecycle[Any, Any]: c.WeakTypeTag](c: blackbox.Context): c.Expr[Nothing] = {
1011
val tagMacro = new TagMacro(c)
11-
tagMacro.makeTagImpl[R] // run the macro AGAIN, to get a fresh error message
12+
val _ = Try(tagMacro.makeWeakTag[R]) // run the macro AGAIN, to get a fresh error message
1213
val tagTrace = tagMacro.getImplicitError()
1314

1415
c.abort(c.enclosingPosition, s"could not find implicit ResourceTag for ${c.universe.weakTypeOf[R]}!\n$tagTrace")
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package izumi.distage.model.exceptions.reflection
22

33
import izumi.distage.model.exceptions.DIException
4-
import izumi.distage.model.reflection.universe.DIUniverse
4+
import izumi.distage.reflection.macros.universe.basicuniverse.MacroSafeType
55

6-
class UnsupportedWiringException(message: String, val tpe: DIUniverse#SafeType) extends DIException(message)
6+
class UnsupportedWiringException(message: String, val tpe: MacroSafeType) extends DIException(message)

distage/distage-core-api/src/main/scala-2/izumi/distage/model/reflection/macros/DIUniverseLiftables.scala

-66
This file was deleted.

distage/distage-core-api/src/main/scala-2/izumi/distage/model/reflection/universe/DIUniverse.scala

-3
This file was deleted.

distage/distage-core-api/src/main/scala-2/izumi/distage/model/reflection/universe/StaticDIUniverse.scala

-29
This file was deleted.

distage/distage-core-api/src/main/scala-2/izumi/distage/model/reflection/universe/WithDIKey.scala

-48
This file was deleted.

distage/distage-core-api/src/main/scala-2/izumi/distage/model/reflection/universe/WithDISafeType.scala

-34
This file was deleted.

distage/distage-core-api/src/main/scala-2/izumi/distage/model/reflection/universe/WithDISymbolInfo.scala

-114
This file was deleted.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
package izumi.distage.reflection.macros
2+
3+
import izumi.distage.model.providers.Functoid
4+
import izumi.distage.reflection.macros.universe.{DIAnnotationMeta, FunctoidMacroBase}
5+
6+
import scala.reflect.macros.blackbox
7+
8+
final class FunctoidMacro(ctx: blackbox.Context) extends FunctoidMacroBase[Functoid](ctx) {
9+
override def tpe[A: c.WeakTypeTag]: c.Type = c.weakTypeOf[Functoid[A]]
10+
override def idAnnotationFqn: String = DIAnnotationMeta.idAnnotationFqn(ctx.universe)
11+
}

distage/distage-core-api/src/main/scala-2/izumi/distage/model/providers/FunctoidMacroMethods.scala distage/distage-core-api/src/main/scala-2/izumi/distage/reflection/macros/FunctoidMacroMethods.scala

+3-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
1-
package izumi.distage.model.providers
1+
package izumi.distage.reflection.macros
2+
3+
import izumi.distage.model.providers.Functoid
24

3-
import izumi.distage.model.reflection.macros.FunctoidMacro
45
import scala.language.experimental.macros
56
import scala.language.implicitConversions
67

0 commit comments

Comments
 (0)