Skip to content

circe json string interpolator does not work when invoiced directly via a wrapper class #770

Open
@hoshikon

Description

This does not compile:

test("This does not compile") {
    import io.circe.Json
    import io.circe.literal.json
    case class Wrapper(json: Json)

    expect(Wrapper(json"{}").json == Json.obj())
}

error:

[error] 670 |    expect(Wrapper(json"{}").json == Json.obj())
[error]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[error]     |    Found:    (String, io.circe.Json)*
[error]     |    Required: (String, io.circe.Json)
[error]     |---------------------------------------------------------------------------
[error]     |Inline stack trace
[error]     |- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
[error]     |This location contains code that was inlined from JsonLiteralMacros.scala:91
[error]      ---------------------------------------------------------------------------
[error]     |
[error]     | longer explanation available when compiling with `-explain`

Whereas this does:

test("blah".only) {
    import io.circe.Json
    import io.circe.literal.json
    case class Wrapper(json: Json)

    val wrapper = Wrapper(json"{}")
    expect(wrapper.json == Json.obj())
}

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions