@@ -218,15 +218,13 @@ def _compile_scala(ctx, label, output, scrooge_jar, deps_java_info,
218218 scalac_jvm_flags = [],
219219 scalac_provider = ctx .attr ._scalac [_ScalacProvider ])
220220
221- return java_common .create_provider (
222- use_ijar = False ,
223- source_jars = [scrooge_jar ],
224- compile_time_jars = depset (
225- [output ], transitive = [merged_deps .compile_jars ]),
226- transitive_compile_time_jars = depset (
227- [output ], transitive = [merged_deps .transitive_compile_time_jars ]),
228- transitive_runtime_jars = depset (
229- [output ], transitive = [merged_deps .transitive_runtime_jars ]))
221+ return JavaInfo (
222+ source_jar = scrooge_jar ,
223+ deps = deps_java_info + implicit_deps ,
224+ runtime_deps = deps_java_info + implicit_deps ,
225+ exports = deps_java_info + implicit_deps ,
226+ output_jar = output ,
227+ compile_jar = output )
230228
231229def _empty_java_info (deps_java_info , implicit_deps ):
232230 merged_deps = java_common .merge (deps_java_info + implicit_deps )
@@ -334,10 +332,16 @@ def _scrooge_scala_library_impl(ctx):
334332 all_java = java_common .merge (exports + [aspect_info .java_info ])
335333 else :
336334 all_java = aspect_info .java_info
337- return [
338- DefaultInfo (files = aspect_info .output_files ),
339- ScroogeInfo (aspect_info = aspect_info ), all_java
340- ]
335+
336+ # TODO: Remove `scala` field once JavaInfo supports multiple
337+ # output jars. https://github.com/bazelbuild/rules_scala/issues/564
338+ return struct (
339+ scala = _create_scala_struct (ctx ), # For IntelliJ support
340+ providers = [
341+ all_java ,
342+ ScroogeInfo (aspect_info = aspect_info ),
343+ DefaultInfo (files = aspect_info .output_files )
344+ ])
341345
342346scrooge_scala_library = rule (
343347 implementation = _scrooge_scala_library_impl ,
@@ -348,6 +352,21 @@ scrooge_scala_library = rule(
348352 provides = [DefaultInfo , ScroogeInfo , JavaInfo ],
349353)
350354
355+ def _create_scala_struct (ctx ):
356+ """Create a scala provider in the shape expected by the IntelliJ bazel plugin."""
357+ output_jars = []
358+
359+ for dep in ctx .attr .deps :
360+ for j in dep [ScroogeAspectInfo ].java_info .outputs .jars :
361+ output_jars .append (
362+ struct (
363+ class_jar = j .class_jar ,
364+ ijar = None ,
365+ source_jar = None ,
366+ source_jars = []))
367+
368+ return struct (outputs = struct (jars = output_jars ))
369+
351370def _scrooge_scala_import_impl (ctx ):
352371 scala_jars = depset (ctx .files .scala_jars )
353372 jars_ji = java_common .create_provider (
0 commit comments