Simulacrum: реализация макроса не найдена - PullRequest
0 голосов
/ 26 апреля 2018

У меня есть простой код в Scala, чтобы попробовать simulacrum lib:

import simulacrum._
@typeclass trait Semigroup[A] {
  @op("|+|") def append(x: A, y: A): A
}

Но это не работает.Компилятор говорит

Ошибка: (3, 2) реализация макроса не найдена: macroTransform (наиболее распространенная причина этого заключается в том, что вы не можете использовать реализации макроса в том же прогоне компиляции, который их определяет) @typeclass traitПолугруппа [A] {

Что может вызвать эту ошибку?Я не создаю макрос, я просто повторно использую существующий.

Мой файл build.sbt прост:

name := "Macr"
version := "0.1"
scalaVersion := "2.12.5"
addCompilerPlugin("org.scalamacros" % "paradise" % "2.1.0" cross CrossVersion.full)
libraryDependencies += "com.github.mpilquist" %% "simulacrum" % "0.12.0"

1 Ответ

0 голосов
/ 18 августа 2018

Как отметил Олег Пыжцов в комментариях, макросы не работают со Scala 2.12.4 и 2.12.5 при компиляции на Java 9 или 10 .Однако это было исправлено в Scala 2.12.6 , поэтому обновление должно решить проблему.

...