Skip to content

Commit 42c8958

Browse files
author
Jaden Peterson
committed
Wrote a TASTy parser
1 parent 3d18e86 commit 42c8958

22 files changed

+3833
-4
lines changed

scala/private/macros/scala_repositories.bzl

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ _COMPILER_SOURCES_ENTRY_TEMPLATE = """
3737
"@io_bazel_rules_scala_config//:scala_version{scala_version_suffix}":
3838
"@scala_compiler_source{scala_version_suffix}//:src","""
3939

40+
_IZUMI_REFLECT_DEPS = ["dev_zio_izumi_reflect_thirdparty_boopickle_shaded"]
4041
_JUNIT_DEPS = ["io_bazel_rules_scala_org_hamcrest_hamcrest_core"]
4142
_SPECS2_DEPS = [
4243
"org_portable_scala_portable_scala_reflect",
@@ -150,6 +151,7 @@ def rules_scala_setup(scala_compiler_srcjar = None):
150151

151152
def _artifact_ids(scala_version):
152153
result = [
154+
"commons_io_commons_io",
153155
"io_bazel_rules_scala_junit_junit",
154156
"io_bazel_rules_scala_org_specs2_specs2_common",
155157
"io_bazel_rules_scala_org_specs2_specs2_core",
@@ -179,6 +181,8 @@ def _artifact_ids(scala_version):
179181

180182
if scala_version.startswith("3."):
181183
result.extend([
184+
"com_softwaremill_common_tagging",
185+
"dev_zio_izumi_reflect",
182186
"io_bazel_rules_scala_scala_asm",
183187
"io_bazel_rules_scala_scala_compiler_2",
184188
"io_bazel_rules_scala_scala_interfaces",
@@ -193,6 +197,8 @@ def _artifact_ids(scala_version):
193197
"org_scala_sbt_util_interface",
194198
])
195199

200+
result.extend(_IZUMI_REFLECT_DEPS)
201+
196202
return result
197203

198204
def rules_scala_toolchain_deps_repositories(

scripts/create_repository.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,7 @@ def select_root_artifacts(scala_version, scala_major, is_scala_3) -> List[str]:
107107
f'com.thesamet.scalapb:protoc-bridge_{scala_2_major}:{protoc_bridge_version}',
108108
f'com.thesamet.scalapb:scalapb-runtime-grpc_{scala_2_major}:{scalapb_version}',
109109
f'com.thesamet.scalapb:scalapb-runtime_{scala_2_major}:{scalapb_version}',
110+
'commons-io:commons-io:2.18.0',
110111
f'org.scala-lang.modules:scala-parser-combinators_{scala_2_major}:{PARSER_COMBINATORS_VERSION}',
111112
f'org.scala-lang:scala-compiler:{scala_2_version}',
112113
f'org.scala-lang:scala-library:{scala_2_version}',
@@ -128,6 +129,8 @@ def select_root_artifacts(scala_version, scala_major, is_scala_3) -> List[str]:
128129

129130
if is_scala_3:
130131
root_artifacts.extend([
132+
'com.softwaremill.common:tagging_3:2.3.5',
133+
'dev.zio:izumi-reflect_3:2.3.10',
131134
f'org.jline:jline-reader:{JLINE_VERSION}',
132135
f'org.jline:jline-terminal:{JLINE_VERSION}',
133136
f'org.jline:jline-terminal-jna:{JLINE_VERSION}',
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
load("//scala:scala.bzl", "scala_library_for_plugin_bootstrapping", "scala_specs2_junit_test")
2+
load("@bazel_skylib//rules:copy_file.bzl", "copy_file")
3+
4+
scala_library_for_plugin_bootstrapping(
5+
name = "tasty",
6+
srcs = glob(
7+
["*.scala"],
8+
exclude = ["*.spec.scala"],
9+
),
10+
scala_version = "3.6.2",
11+
visibility = ["//visibility:public"],
12+
deps = [
13+
"//src/scala/io/bazel/rules_scala/dottyijar/tasty/format",
14+
"@com_softwaremill_common_tagging_3_6_2",
15+
"@dev_zio_izumi_reflect_3_6_2",
16+
"@dev_zio_izumi_reflect_thirdparty_boopickle_shaded_3_6_2",
17+
"@io_bazel_rules_scala_scala_compiler_3_6_2",
18+
"@io_bazel_rules_scala_scala_tasty_core_3_6_2",
19+
],
20+
)
21+
22+
copy_file(
23+
name = "scala3-compiler-jar",
24+
src = "@io_bazel_rules_scala_scala_compiler_3_6_2//:scala3-compiler_3-3.6.2.jar",
25+
out = "scala3-compiler.jar",
26+
)
27+
28+
scala_specs2_junit_test(
29+
name = "specs",
30+
srcs = glob(["*.spec.scala"]),
31+
jvm_flags = ["-DDEBUG_TASTYFORMAT=true"],
32+
resource_strip_prefix = package_name(),
33+
resources = [":scala3-compiler-jar"],
34+
scala_version = "3.6.2",
35+
suffixes = ["Spec"],
36+
deps = [
37+
":tasty",
38+
"//src/scala/io/bazel/rules_scala/dottyijar/tasty/format",
39+
"@commons_io_commons_io_3_6_2",
40+
"@io_bazel_rules_scala_org_specs2_specs2_common_3_6_2",
41+
"@io_bazel_rules_scala_org_specs2_specs2_core_3_6_2",
42+
"@io_bazel_rules_scala_org_specs2_specs2_junit",
43+
"@io_bazel_rules_scala_org_specs2_specs2_matcher_3_6_2",
44+
"@io_bazel_rules_scala_scala_compiler_3_6_2",
45+
],
46+
)

0 commit comments

Comments
 (0)