From e905b44a3353e351f48e19b92af2416629ef5b64 Mon Sep 17 00:00:00 2001 From: Guillaume Martres Date: Tue, 28 Aug 2018 01:14:24 +0900 Subject: [PATCH] Follow-up to the fields added in #173 It turns out that there is more boilerplate to fill that I missed. Also add deprecation notices. --- .../src/main/contraband/interface.contra.txt | 6 ++++++ .../internal/util/codec/PositionFormats.scala | 21 +++++++++++++++++++ .../main/scala/sbt/util/InterfaceUtil.scala | 2 +- .../src/main/scala/sbt/util/Logger.scala | 1 + 4 files changed, 29 insertions(+), 1 deletion(-) diff --git a/internal/util-logging/src/main/contraband/interface.contra.txt b/internal/util-logging/src/main/contraband/interface.contra.txt index 795e6a4c3..a42eb09cb 100644 --- a/internal/util-logging/src/main/contraband/interface.contra.txt +++ b/internal/util-logging/src/main/contraband/interface.contra.txt @@ -16,6 +16,12 @@ type Position { pointerSpace: String sourcePath: String sourceFile: java.io.File + startOffset: Int + endOffset: Int + startLine: Int + startColumn: Int + endLine: Int + endColumn: Int } type Problem { diff --git a/internal/util-logging/src/main/scala/sbt/internal/util/codec/PositionFormats.scala b/internal/util-logging/src/main/scala/sbt/internal/util/codec/PositionFormats.scala index e43ff03bf..7fe9fd6ce 100644 --- a/internal/util-logging/src/main/scala/sbt/internal/util/codec/PositionFormats.scala +++ b/internal/util-logging/src/main/scala/sbt/internal/util/codec/PositionFormats.scala @@ -19,6 +19,13 @@ trait PositionFormats { self: sjsonnew.BasicJsonProtocol => val pointerSpace0 = unbuilder.readField[Optional[String]]("pointerSpace") val sourcePath0 = unbuilder.readField[Optional[String]]("sourcePath") val sourceFile0 = unbuilder.readField[Optional[java.io.File]]("sourceFile") + val startOffset0 = unbuilder.readField[Optional[java.lang.Integer]]("startOffset") + val endOffset0 = unbuilder.readField[Optional[java.lang.Integer]]("endOffset") + val startLine0 = unbuilder.readField[Optional[java.lang.Integer]]("startLine") + val startColumn0 = unbuilder.readField[Optional[java.lang.Integer]]("startColumn") + val endLine0 = unbuilder.readField[Optional[java.lang.Integer]]("endLine") + val endColumn0 = unbuilder.readField[Optional[java.lang.Integer]]("endColumn") + unbuilder.endObject() new Position() { override val line = line0 @@ -28,6 +35,13 @@ trait PositionFormats { self: sjsonnew.BasicJsonProtocol => override val pointerSpace = pointerSpace0 override val sourcePath = sourcePath0 override val sourceFile = sourceFile0 + override val startOffset = startOffset0 + override val endOffset = endOffset0 + override val startLine = startLine0 + override val startColumn = startColumn0 + override val endLine = endLine0 + override val endColumn = endColumn0 + } case None => deserializationError("Expected JsObject but found None") @@ -42,6 +56,13 @@ trait PositionFormats { self: sjsonnew.BasicJsonProtocol => builder.addField("pointerSpace", obj.pointerSpace) builder.addField("sourcePath", obj.sourcePath) builder.addField("sourceFile", obj.sourceFile) + builder.addField("startOffset", obj.startOffset) + builder.addField("endOffset", obj.endOffset) + builder.addField("startLine", obj.startLine) + builder.addField("startColumn", obj.startColumn) + builder.addField("endLine", obj.endLine) + builder.addField("endColumn", obj.endColumn) + builder.endObject() } } diff --git a/internal/util-logging/src/main/scala/sbt/util/InterfaceUtil.scala b/internal/util-logging/src/main/scala/sbt/util/InterfaceUtil.scala index 5a85c9b67..a1ae332d8 100644 --- a/internal/util-logging/src/main/scala/sbt/util/InterfaceUtil.scala +++ b/internal/util-logging/src/main/scala/sbt/util/InterfaceUtil.scala @@ -36,7 +36,7 @@ object InterfaceUtil { case None => Optional.empty[A]() } - // Overload to preserve binary compatibility + @deprecated("Use the overload of this method with more arguments", "1.2.2") def position( line0: Option[Integer], content: String, diff --git a/internal/util-logging/src/main/scala/sbt/util/Logger.scala b/internal/util-logging/src/main/scala/sbt/util/Logger.scala index 75d7a439d..37a043cfa 100644 --- a/internal/util-logging/src/main/scala/sbt/util/Logger.scala +++ b/internal/util-logging/src/main/scala/sbt/util/Logger.scala @@ -97,6 +97,7 @@ object Logger { def jo2o[A](o: Optional[A]): Option[A] = InterfaceUtil.jo2o(o) def o2jo[A](o: Option[A]): Optional[A] = InterfaceUtil.o2jo(o) + @deprecated("Use InterfaceUtil.position", "1.2.2") def position( line0: Option[Integer], content: String,