Skip to content

Commit 4af41de

Browse files
author
Jaden Peterson
committed
Don't use com.softwaremill.tagging
We'd like to minimize the number of required dependencies.
1 parent 8be9015 commit 4af41de

23 files changed

+92
-121
lines changed

scala/private/macros/scala_repositories.bzl

-1
Original file line numberDiff line numberDiff line change
@@ -181,7 +181,6 @@ def _artifact_ids(scala_version):
181181

182182
if scala_version.startswith("3."):
183183
result.extend([
184-
"com_softwaremill_common_tagging",
185184
"dev_zio_izumi_reflect",
186185
"io_bazel_rules_scala_scala_asm",
187186
"io_bazel_rules_scala_scala_compiler_2",

scripts/create_repository.py

-1
Original file line numberDiff line numberDiff line change
@@ -129,7 +129,6 @@ def select_root_artifacts(scala_version, scala_major, is_scala_3) -> List[str]:
129129

130130
if is_scala_3:
131131
root_artifacts.extend([
132-
'com.softwaremill.common:tagging_3:2.3.5',
133132
'dev.zio:izumi-reflect_3:2.3.10',
134133
f'org.jline:jline-reader:{JLINE_VERSION}',
135134
f'org.jline:jline-terminal:{JLINE_VERSION}',

src/scala/io/bazel/rules_scala/dottyijar/BUILD

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ scala_library_for_plugin_bootstrapping(
1212
deps = [
1313
"//src/scala/io/bazel/rules_scala/dottyijar/tasty",
1414
"//src/scala/io/bazel/rules_scala/dottyijar/tasty/format",
15-
"@com_softwaremill_common_tagging_3_6_2",
15+
"//src/scala/io/bazel/rules_scala/dottyijar/tasty/numeric",
1616
"@dev_zio_izumi_reflect_3_6_2",
1717
],
1818
)

src/scala/io/bazel/rules_scala/dottyijar/TastyUpdater.scala

+10-8
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
package io.bazel.rules_scala.dottyijar
22

3-
import com.softwaremill.tagging.*
43
import java.util.UUID
54
import io.bazel.rules_scala.dottyijar.tasty.*
6-
import io.bazel.rules_scala.dottyijar.tasty.format.{MarkerType, TastyFormat, TastyReader, TastyReference, TastyWriter, Unsigned}
5+
import io.bazel.rules_scala.dottyijar.tasty.format.{MarkerType, TastyFormat, TastyReader, TastyReference, TastyWriter}
6+
import io.bazel.rules_scala.dottyijar.tasty.numeric.UnsignedInt
77
import scala.collection.mutable
88

99
/**
@@ -18,17 +18,17 @@ private class ContextualTastyUpdater(oldTasty: Tasty) {
1818
private var nextNameIndex = oldTasty.nameTable.names.length
1919
private val addedNames = mutable.ArrayBuffer.empty[TastyName]
2020
private def getOrCreateNameReference(name: TastyName): TastyNameReference = oldTasty.nameTable.names.zipWithIndex
21-
.collectFirst { case (`name`, i) => TastyNameReference(i.taggedWith[Unsigned]) }
21+
.collectFirst { case (`name`, i) => TastyNameReference(UnsignedInt(i)) }
2222
.getOrElse(
2323
TastyNameReference(
24-
{
24+
UnsignedInt({
2525
val i = nextNameIndex
2626

2727
nextNameIndex += 1
2828
addedNames += name
2929

3030
i
31-
}.taggedWith[Unsigned],
31+
}),
3232
),
3333
)
3434

@@ -147,7 +147,9 @@ private object TastyUpdater {
147147
if (!result(i)) {
148148
result += i
149149

150-
TastyElement.collect(tasty.nameTable.names(i)) { case TastyNameReference(j, _) => stack += j }.foreach { _ => }
150+
TastyElement
151+
.collect(tasty.nameTable.names(i)) { case TastyNameReference(j, _) => stack += j.value }
152+
.foreach { _ => }
151153
}
152154
}
153155

@@ -157,7 +159,7 @@ private object TastyUpdater {
157159
private def getUsedNameIndicesInSection[A <: TastySectionPayload](
158160
section: TastySection[A],
159161
)(using TastyElement[TastySection[A]]): Iterable[Int] =
160-
TastyElement.collect(section) { case TastyNameReference(i, _) => i }
162+
TastyElement.collect(section) { case TastyNameReference(i, _) => i.value }
161163

162164
private def removeDanglingSharedValues[A: TastyElement](
163165
node: A,
@@ -228,7 +230,7 @@ private object TastyUpdater {
228230
child =>
229231
child match {
230232
case TastyNameReference(i, information) =>
231-
TastyNameReference(nameIndexUpdates(i).taggedWith[Unsigned], information).asInstanceOf[B]
233+
TastyNameReference(UnsignedInt(nameIndexUpdates(i.value)), information).asInstanceOf[B]
232234

233235
case _ => updateNameReferences(child)
234236
}

src/scala/io/bazel/rules_scala/dottyijar/tasty/BUILD

+2-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ scala_library_for_plugin_bootstrapping(
1414
visibility = ["//visibility:public"],
1515
deps = [
1616
"//src/scala/io/bazel/rules_scala/dottyijar/tasty/format",
17-
"@com_softwaremill_common_tagging_3_6_2",
17+
"//src/scala/io/bazel/rules_scala/dottyijar/tasty/numeric",
1818
"@dev_zio_izumi_reflect_3_6_2",
1919
"@dev_zio_izumi_reflect_thirdparty_boopickle_shaded_3_6_2",
2020
"@io_bazel_rules_scala_scala_compiler_3_6_2",
@@ -56,6 +56,7 @@ scala_specs2_junit_test(
5656
":tasty",
5757
":test",
5858
"//src/scala/io/bazel/rules_scala/dottyijar/tasty/format",
59+
"//src/scala/io/bazel/rules_scala/dottyijar/tasty/numeric",
5960
"@io_bazel_rules_scala_org_specs2_specs2_common_3_6_2",
6061
"@io_bazel_rules_scala_org_specs2_specs2_core_3_6_2",
6162
"@io_bazel_rules_scala_org_specs2_specs2_junit",

src/scala/io/bazel/rules_scala/dottyijar/tasty/Tasty.scala

+27-27
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
package io.bazel.rules_scala.dottyijar.tasty
22

3-
import com.softwaremill.tagging.*
43
import dotty.tools.dotc.util.Spans.Span
54
import dotty.tools.tasty.TastyFormat as DottyTastyFormat
65
import io.bazel.rules_scala.dottyijar.tasty.format.*
6+
import io.bazel.rules_scala.dottyijar.tasty.numeric.{SignedInt, SignedLong, UnsignedInt}
77
import java.util.UUID
88
import scala.annotation.nowarn
99
import scala.util.control.NonFatal
@@ -887,18 +887,18 @@ object TastyParameterSignature {
887887

888888
given TastyFormat[TastyParameterSignature] = TastyFormat(
889889
reader => {
890-
val value = reader.readSignedInt()
890+
val value = reader.readSignedInt().value
891891

892892
if (value < 0) {
893893
TypeParameterSectionLength(-value)
894894
} else {
895-
TermParameter(TastyNameReference(value.taggedWith[Unsigned]))
895+
TermParameter(TastyNameReference(UnsignedInt(value)))
896896
}
897897
},
898898
(writer, value) =>
899899
value match {
900-
case TypeParameterSectionLength(length, _) => writer.writeSignedInt((-length).taggedWith[Signed])
901-
case TermParameter(name, _) => writer.writeSignedInt(name.i.taggedWith[Signed])
900+
case TypeParameterSectionLength(length, _) => writer.writeSignedInt(SignedInt(-length))
901+
case TermParameter(name, _) => writer.writeSignedInt(SignedInt(name.i.value))
902902
},
903903
)
904904
}
@@ -1004,7 +1004,7 @@ case class TastyNameTable(names: Vector[TastyName]) {
10041004
|${names.zipWithIndex.map { case (name, i) => s" $i: $name" }.mkString("\n")}
10051005
|)""".stripMargin
10061006

1007-
def apply(reference: TastyNameReference): TastyName = names(reference.i)
1007+
def apply(reference: TastyNameReference): TastyName = names(reference.i.value)
10081008
}
10091009

10101010
object TastyNameTable {
@@ -1019,7 +1019,7 @@ object TastySection {
10191019
reader => {
10201020
val nameReference = summon[TastyFormat[TastyNameReference]].read(reader)
10211021
val name = nameTable(nameReference)
1022-
val payload = reader.readWithLength(reader.readUnsignedInt()) { reader =>
1022+
val payload = reader.readWithLength(reader.readUnsignedInt().value) { reader =>
10231023
name match {
10241024
case TastyName.Simple("ASTs", _) => summon[TastyFormat[TastySectionPayload.Asts]].read(reader)
10251025
case TastyName.Simple("Positions", _) => summon[TastyFormat[TastySectionPayload.Positions]].read(reader)
@@ -1076,12 +1076,12 @@ object TastySectionPayload {
10761076
object LineSizes {
10771077
given TastyFormat[LineSizes] = TastyFormat(
10781078
reader => {
1079-
val length = reader.readUnsignedInt()
1079+
val length = reader.readUnsignedInt().value
10801080

10811081
LineSizes(Range(0, length).map(_ => reader.readUnsignedInt()).toList)
10821082
},
10831083
(writer, lineSizes) => {
1084-
writer.writeUnsignedInt(lineSizes.sizes.length.taggedWith[Unsigned])
1084+
writer.writeUnsignedInt(UnsignedInt(lineSizes.sizes.length))
10851085

10861086
lineSizes.sizes.foreach(writer.writeUnsignedInt)
10871087
},
@@ -1093,7 +1093,7 @@ object TastySectionPayload {
10931093
object Delta {
10941094
given TastyFormat[Delta] = TastyFormat(
10951095
reader => {
1096-
val header = reader.readUnsignedInt()
1096+
val header = reader.readUnsignedInt().value
10971097
val addressDelta = header >> 3
10981098
val start = Option.when(((header >>> 2) & 0x1) == 1)(reader.readSignedInt())
10991099
val end = Option.when(((header >>> 1) & 0x1) == 1)(reader.readSignedInt())
@@ -1102,12 +1102,12 @@ object TastySectionPayload {
11021102
Delta(addressDelta, start, end, point)
11031103
},
11041104
(writer, delta) => {
1105-
val header = (
1105+
val header = UnsignedInt(
11061106
(delta.addressDelta << 3) |
11071107
((if (delta.start.isDefined) 1 else 0) << 2) |
11081108
((if (delta.end.isDefined) 1 else 0) << 1) |
11091109
(if (delta.point.isDefined) 1 else 0)
1110-
).taggedWith[Unsigned]
1110+
)
11111111

11121112
writer.writeUnsignedInt(header)
11131113

@@ -1126,7 +1126,7 @@ object TastySectionPayload {
11261126

11271127
private given TastyFormat[Delta | Source] = TastyFormat(
11281128
reader =>
1129-
if (reader.peek(_.readUnsignedInt()) == DottyTastyFormat.SOURCE) {
1129+
if (reader.peek(_.readUnsignedInt().value) == DottyTastyFormat.SOURCE) {
11301130
reader.readUnsignedInt()
11311131

11321132
summon[TastyFormat[Source]].read(reader)
@@ -1137,7 +1137,7 @@ object TastySectionPayload {
11371137
value match {
11381138
case delta: Delta => summon[TastyFormat[Delta]].write(writer, delta)
11391139
case source: Source =>
1140-
writer.writeUnsignedInt(DottyTastyFormat.SOURCE.taggedWith[Unsigned])
1140+
writer.writeUnsignedInt(UnsignedInt(DottyTastyFormat.SOURCE))
11411141

11421142
summon[TastyFormat[Source]].write(writer, source)
11431143
},
@@ -1377,7 +1377,7 @@ case class TastyTemplate(
13771377
object TastyTemplate {
13781378
private val underlyingTastyFormat = TastyFormat(
13791379
reader =>
1380-
reader.readWithLength(reader.readUnsignedInt()) { reader =>
1380+
reader.readWithLength(reader.readUnsignedInt().value) { reader =>
13811381
val typeParameters = reader.readWhile(
13821382
!reader.isAtEnd && summon[TastySumType[TastyTypeParameter]].peekIsVariant(reader),
13831383
)(summon[TastyFormat[TastyTypeParameter]].read(reader))
@@ -1600,7 +1600,7 @@ object TastyTerm {
16001600
object Inlined {
16011601
given TastyFormat[Inlined] = TastyFormat(
16021602
reader =>
1603-
reader.readWithLength(reader.readUnsignedInt()) { reader =>
1603+
reader.readWithLength(reader.readUnsignedInt().value) { reader =>
16041604
val expression = summon[TastyFormat[TastyTerm]].read(reader)
16051605
val call = Option.when(!reader.isAtEnd && summon[TastySumType[TastyTypeTree]].peekIsVariant(reader))(
16061606
summon[TastyFormat[TastyTypeTree]].read(reader),
@@ -1681,7 +1681,7 @@ object TastyTerm {
16811681
object Match {
16821682
given TastyFormat[Match] = TastyFormat(
16831683
reader =>
1684-
reader.readWithLength(reader.readUnsignedInt()) { reader =>
1684+
reader.readWithLength(reader.readUnsignedInt().value) { reader =>
16851685
val implicitTag = DottyTastyFormat.IMPLICIT.toByte
16861686
val inlineTag = DottyTastyFormat.INLINE.toByte
16871687
val (inline, scrutinee) = reader.peek(_.readByte()) match {
@@ -1788,7 +1788,7 @@ object TastyTerm {
17881788
object Unapply {
17891789
given TastyFormat[Unapply] = TastyFormat(
17901790
reader =>
1791-
reader.readWithLength(reader.readUnsignedInt()) { reader =>
1791+
reader.readWithLength(reader.readUnsignedInt().value) { reader =>
17921792
val function = summon[TastyFormat[TastyTerm]].read(reader)
17931793
val implicitArguments = reader.readWhile(
17941794
!reader.isAtEnd && summon[TastySumType[TastyImplicitArgument]].peekIsVariant(reader),
@@ -1864,7 +1864,7 @@ object TastyTerm {
18641864
object Try {
18651865
given TastyFormat[Try] = TastyFormat(
18661866
reader =>
1867-
reader.readWithLength(reader.readUnsignedInt()) { reader =>
1867+
reader.readWithLength(reader.readUnsignedInt().value) { reader =>
18681868
val expression = summon[TastyFormat[TastyTerm]].read(reader)
18691869
val cases = reader.readWhile(
18701870
!reader.isAtEnd && summon[TastySumType[TastyCaseDefinition]].peekIsVariant(reader),
@@ -1964,7 +1964,7 @@ object TastyTerm {
19641964
object SplicedPattern {
19651965
given TastyFormat[SplicedPattern] = TastyFormat(
19661966
reader =>
1967-
reader.readWithLength(reader.readUnsignedInt()) { reader =>
1967+
reader.readWithLength(reader.readUnsignedInt().value) { reader =>
19681968
val pattern = summon[TastyFormat[TastyTerm]].read(reader)
19691969
val patternType = summon[TastyFormat[TastyType]].read(reader)
19701970
val typeArguments = reader.readWhile(
@@ -2166,7 +2166,7 @@ object TastyType {
21662166
object TypeBounds {
21672167
given TastyFormat[TypeBounds] = TastyFormat(
21682168
reader =>
2169-
reader.readWithLength(reader.readUnsignedInt()) { reader =>
2169+
reader.readWithLength(reader.readUnsignedInt().value) { reader =>
21702170
val low = summon[TastyFormat[TastyType]].read(reader)
21712171
val high = Option.when(!reader.isAtEnd && summon[TastySumType[TastyType]].peekIsVariant(reader))(
21722172
summon[TastyFormat[TastyType]].read(reader),
@@ -2340,7 +2340,7 @@ object TastyType {
23402340
object Method {
23412341
given TastyFormat[Method] = TastyFormat(
23422342
reader =>
2343-
reader.readWithLength(reader.readUnsignedInt()) { reader =>
2343+
reader.readWithLength(reader.readUnsignedInt().value) { reader =>
23442344
val result = summon[TastyFormat[TastyType]].read(reader)
23452345
val parameters = reader.readWhile(
23462346
!reader.isAtEnd && !summon[TastySumType[TastyModifier]].peekIsVariant(reader),
@@ -2540,7 +2540,7 @@ object TastyTypeTree {
25402540
object Lambda {
25412541
given TastyFormat[Lambda] = TastyFormat(
25422542
reader =>
2543-
reader.readWithLength(reader.readUnsignedInt()) { reader =>
2543+
reader.readWithLength(reader.readUnsignedInt().value) { reader =>
25442544
val typeParameters = reader.readWhile(
25452545
!reader.isAtEnd && summon[TastySumType[TastyTypeParameter]].peekIsVariant(reader),
25462546
)(summon[TastyFormat[TastyTypeParameter]].read(reader))
@@ -2573,7 +2573,7 @@ object TastyTypeTree {
25732573
object TypeBounds {
25742574
given TastyFormat[TypeBounds] = TastyFormat(
25752575
reader =>
2576-
reader.readWithLength(reader.readUnsignedInt()) { reader =>
2576+
reader.readWithLength(reader.readUnsignedInt().value) { reader =>
25772577
val low = summon[TastyFormat[TastyTypeTree]].read(reader)
25782578
val high = Option.unless(reader.isAtEnd)(summon[TastyFormat[TastyTypeTree]].read(reader))
25792579
val alias = Option.unless(reader.isAtEnd)(summon[TastyFormat[TastyTypeTree]].read(reader))
@@ -2610,7 +2610,7 @@ object TastyTypeTree {
26102610
object Match {
26112611
given TastyFormat[Match] = TastyFormat(
26122612
reader =>
2613-
reader.readWithLength(reader.readUnsignedInt()) { reader =>
2613+
reader.readWithLength(reader.readUnsignedInt().value) { reader =>
26142614
val boundOrScrutinee = summon[TastyFormat[TastyTypeTree]].read(reader)
26152615
val (bound, scrutinee) = if (!reader.isAtEnd && summon[TastySumType[TastyTypeTree]].peekIsVariant(reader)) {
26162616
(Some(boundOrScrutinee), summon[TastyFormat[TastyTypeTree]].read(reader))
@@ -2689,7 +2689,7 @@ object TastyValOrDefDefinition {
26892689
object Val {
26902690
given TastyFormat[Val] = TastyFormat(
26912691
reader =>
2692-
reader.readWithLength(reader.readUnsignedInt()) { reader =>
2692+
reader.readWithLength(reader.readUnsignedInt().value) { reader =>
26932693
val name = summon[TastyFormat[TastyNameReference]].read(reader)
26942694
val `type` = summon[TastyFormat[TastyTypeTree]].read(reader)
26952695
val value = Option.when(!reader.isAtEnd && summon[TastySumType[TastyTerm]].peekIsVariant(reader))(
@@ -2723,7 +2723,7 @@ object TastyValOrDefDefinition {
27232723
object Def {
27242724
private val underlyingTastyFormat: TastyFormat[Def] = TastyFormat(
27252725
reader =>
2726-
reader.readWithLength(reader.readUnsignedInt()) { reader =>
2726+
reader.readWithLength(reader.readUnsignedInt().value) { reader =>
27272727
val name = summon[TastyFormat[TastyNameReference]].read(reader)
27282728
val parameters = reader.readWhile(summon[TastySumType[TastyParameter]].peekIsVariant(reader))(
27292729
summon[TastyFormat[TastyParameter]].read(reader),

src/scala/io/bazel/rules_scala/dottyijar/tasty/TastyElement.scala

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
package io.bazel.rules_scala.dottyijar.tasty
22

33
import dotty.tools.dotc.util.Spans.Span
4-
import io.bazel.rules_scala.dottyijar.tasty.format.{MarkerType, SignedInt, SignedLong, TastyReferencableInformation, TastyReference, UnsignedInt}
4+
import io.bazel.rules_scala.dottyijar.tasty.format.{MarkerType, TastyReferencableInformation, TastyReference}
5+
import io.bazel.rules_scala.dottyijar.tasty.numeric.{SignedInt, SignedLong, UnsignedInt}
56
import java.util.UUID
67
import scala.annotation.nowarn
78
import scala.collection.Factory

src/scala/io/bazel/rules_scala/dottyijar/tasty/format/BUILD

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ scala_library_for_plugin_bootstrapping(
66
scala_version = "3.6.2",
77
visibility = ["//visibility:public"],
88
deps = [
9-
"@com_softwaremill_common_tagging_3_6_2",
9+
"//src/scala/io/bazel/rules_scala/dottyijar/tasty/numeric",
1010
"@dev_zio_izumi_reflect_3_6_2",
1111
"@dev_zio_izumi_reflect_thirdparty_boopickle_shaded_3_6_2",
1212
"@io_bazel_rules_scala_scala_compiler_3_6_2",

0 commit comments

Comments
 (0)