Это может быть только от import sbt._
или от DefaultProject
.Поскольку sbt
не является объектом пакета, он должен поступать из DefaultProject
.
Это связано с тем, что имплициты должны быть определены или импортированы в область действия, и вы можете импортировать их только изобъекты (либо object
объекты, либо экземпляры классов).Исключение составляет implicits, определенное на компаньон объекты источника или назначение (при известном) типа, ни один из которых применяются, как вы уже проверили.
1011 * Это немного спорный вопрос, хотя.Причина, по которой был создан новый Scaladoc, заключается именно в том, чтобы решить такие проблемы.
Возьмем, к примеру, анализатор Scala:
import scala.util.parsing.combinator.JavaTokenParsers
object T extends JavaTokenParsers {
def myparser = "\\w+".r ~ "\\d+".r
}
Метод ~
не определен в Regex
, поэтому мы ищем это.Проверьте последнюю версию scaladoc здесь , чтобы попробовать приведенное ниже объяснение.
Самый простой способ: нажмите #
в верхнем левом углу, чтобы получить список методов, начинающихся с символа.Прокрутите вниз до ~
и посмотрите: парсеры BigInt OnceParser.С этого момента используйте метод проб, ошибок и интуиции.
Методическим путем: введите JavaTokenParsers
в поле поиска, чтобы быстро найти класс, а затем выберите его.В списке методов найдите implicit
из Regex
в другом месте.Есть только один, который принимает до Parser
.Нажмите Parser
для подтверждения.
Вы можете нажать implicit def regex
, метод, выполняющий преобразование, чтобы увидеть, где он определен: RegexParsers
.Документы к JavaTokenParsers
показывают определение этого метода, даже если оно не определено или переопределено в этом классе.
Это имеет особое значение, поскольку при проверке Документация SBT API на DefaultProject
, вы наткнетесь на тот факт, что он сам не определяет методы и предоставляет только имя методов для своих 40 (если я это правильно счел) черт и предков предков.Может потребоваться некоторое время, пока вы не нажмете ManagedProject
, чтобы обнаружить, что оно имеет неявные преобразования из String
в GroupID
и RepositoryName
, причем первый определяет %
и %%
, а последний определяет at
.