Skip to content

Commit

Permalink
Merge pull request #2255 from softwaremill/derived-enumeration-macro-…
Browse files Browse the repository at this point in the history
…missing-class-fqn

The derivedEnumeration macro should reference fully qualified class names
  • Loading branch information
adamw authored Jun 20, 2022
2 parents b499012 + 6193636 commit 7b84410
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ private[tapir] object CodecEnumerationMacro {

// this needs to be a macro so that we can call another macro - Validator.derivedEnumeration
c.Expr[CreateDerivedEnumerationCodec[L, T]](q"""
new sttp.tapir.macros.CreateDerivedEnumerationCodec(Validator.derivedEnumeration)
new sttp.tapir.macros.CreateDerivedEnumerationCodec(sttp.tapir.Validator.derivedEnumeration)
""")
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
package sttp.tapir.namespacing

import org.scalatest.flatspec.AnyFlatSpec
import org.scalatest.matchers.should.Matchers

class SchemaMacroNamespaceTest extends AnyFlatSpec with Matchers {

// #2254: the macro should reference fully qualified class names
it should "compile macro-generated code using derivedEnumeration in a package other than sttp.tapir" in {
sealed trait MyProduct
object MyProduct {
def fromString(m: String): Option[MyProduct] = ???
}
case object V1 extends MyProduct

import sttp.tapir.Codec
Codec.derivedEnumeration[String, MyProduct](MyProduct.fromString, _.toString)
}
}

0 comments on commit 7b84410

Please sign in to comment.