blob: 3e474a7660ef8189a3143c1c8f66aa4709a42c6d (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
def no_format_trailing_comma(root_dir, excludes = [])
crates_dir = root_dir.join('crates')
raw = `grep -rn --include='*.rs' -e ',)' #{crates_dir}`
errors = []
raw.each_line do |line|
line = line.chomp
path, lineno, content = line.split(':', 3)
next if content.nil?
relative = Pathname.new(path).relative_path_from(root_dir).to_s
next if excludes.include?(relative)
# `(,)` is a macro repetition fragment (e.g. `$(,)?`).
next if content.match?(/\(,\)/)
errors << "#{relative}:#{lineno}: trailing `,)` before a closing paren"
end
return true if errors.empty?
puts 'Found `,)` introduced by formatting. Remove it.'
errors.each do |err|
puts " #{err}"
end
false
end
|