Как подавить intellij ошибку IDEA в редакторе при использовании макросовой аннотации Binding.scala?

Несмотря на это компилируется и запускается в консоли sbt. Intellij жалуется, что у меня должен быть Binding[Node] вместо Elem в редакторе.

@dom def renderDiv: Binding[Div] = <div>...</div>

С точки зрения intellij IDEA, этот метод возвращает Elem который является подтипом scala.xml.Node, но при рендеринге:

dom.render(document.getElementById("root"),renderDiv)

это требует org.scalajs.dom.raw.Node,

Есть ли обходной путь к этому?

1 ответ

Решение

Могло бы поместить неявное преобразование def в область видимости:

package object xxx {
  implicit def makeIntellijHappy[T<:org.scalajs.dom.raw.Node](x: scala.xml.Node): Binding[T] =
    throw new AssertionError("This should never execute.")
}

Определите метод выше в объекте пакета, таким образом, он охватывает весь пакет. Этот метод никогда не будет выполнен, на самом деле.

Другие вопросы по тегам