@@ -97,6 +97,22 @@ def _merge_runfiles(runfiles_list):
97
97
result = result .merge (runfiles )
98
98
return result
99
99
100
+ def _data_runfiles (ctx , rule , attr ):
101
+ """Generate runfiles for a data attribute.
102
+
103
+ Attrs:
104
+ ctx: The rule context.
105
+ rule: The rule object, `ctx` for a rule, `ctx.rule` for an aspect.
106
+ attr: The attribute name of the data attribute.
107
+
108
+ Returns:
109
+ A runfiles object capturing data files and data runfiles.
110
+ """
111
+ return _merge_runfiles (
112
+ [ctx .runfiles (files = getattr (rule .files , attr , []))] +
113
+ [data [DefaultInfo ].default_runfiles for data in getattr (rule .attr , attr , [])],
114
+ )
115
+
100
116
def _merge_HaskellReplLoadInfo (load_infos ):
101
117
source_files = depset ()
102
118
import_dirs = depset ()
@@ -173,10 +189,7 @@ def _create_HaskellReplCollectInfo(target, ctx):
173
189
]),
174
190
compiler_flags = hs_info .user_compile_flags ,
175
191
repl_ghci_args = hs_info .user_repl_flags ,
176
- data_runfiles = _merge_runfiles (
177
- [ctx .runfiles (files = getattr (ctx .rule .files , "data" , []))] +
178
- [data [DefaultInfo ].default_runfiles for data in getattr (ctx .rule .attr , "data" , [])],
179
- ),
192
+ data_runfiles = _data_runfiles (ctx , ctx .rule , "data" ),
180
193
)
181
194
if HaskellLibraryInfo in target :
182
195
lib_info = target [HaskellLibraryInfo ]
@@ -425,6 +438,7 @@ def _create_repl(hs, posix, ctx, repl_info, output):
425
438
if ctx .attr .collect_data :
426
439
runfiles .append (repl_info .load_info .data_runfiles )
427
440
runfiles .append (repl_info .dep_info .runfiles )
441
+ runfiles .append (_data_runfiles (ctx , ctx , "data" ))
428
442
429
443
return [DefaultInfo (
430
444
executable = output ,
0 commit comments