Scala 2.13.1 Невозможно использовать макросы - PullRequest
0 голосов
/ 14 февраля 2020

Я не могу использовать макросы в scala 2.13.1.

Я получаю следующую ошибку:

object blackbox is not a member of package scala.reflect.macros

Это явно не правда, потому что scala 2.13.1 на самом деле имеет эти черные ящики. Что я не правильно делаю?

Привет. scala

package example.core

import example.macros.MacroLibrary

object Hello extends App {
  MacroLibrary.hello()
}

MacroLibrary. scala

package example.macros

// This line throws errors
import scala.reflect.macros.blackbox.Context
import scala.reflect.macros.blackbox

object MacroLibrary {
  def hello_impl(c: blackbox.Context)(): c.Expr[Unit] = {
    import c.universe._
    c.Expr(q"""println("Hello World")""")
  }

  def hello(): Unit = macro hello_impl
}

build.sbt

scalaVersion := "2.13.1"

Ошибка

object blackbox is not a member of package scala.reflect.macros

1 Ответ

2 голосов
/ 14 февраля 2020

Они находятся не в стандартной библиотеке, а в отдельной scala-reflect, которую необходимо добавить как зависимость в build.sbt:

libraryDependencies += "org.scala-lang" % "scala-reflect" % scalaVersion.value

Вы можете видеть это из Context документация с "Scala Reflection Library" в левом верхнем углу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...