Skip to content

Commit ab5aeb7

Browse files
committed
Optimized propagation of "fixes" keyword parameter
1 parent 1adb128 commit ab5aeb7

1 file changed

Lines changed: 15 additions & 9 deletions

File tree

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
module analysis::typepal::FailMessage
22

33
/*
4-
FailMessages provide a convenient variation on Rascal's standard Message datatype.
4+
FailMessages provide a convenient variation on Rascal's standard Message datatype.
55
In the end, FailMessages are reduced to standard Messages.
66
*/
77
import Message;
@@ -13,13 +13,19 @@ data FailMessage(list[CodeAction] fixes = [])
1313
| fm_warning(value src, str msg, list[value] args)
1414
| fm_info(value src, str msg, list[value] args)
1515
;
16-
17-
FailMessage error(value src, str msg, value args..., list[CodeAction] fixes=[]) = fm_error(src, msg, args, fixes=fixes);
18-
FailMessage warning(value src, str msg, value args..., list[CodeAction] fixes=[]) = fm_warning(src, msg, args, fixes=fixes);
19-
FailMessage info(value src, str msg, value args..., list[CodeAction] fixes=[]) = fm_info(src, msg, args, fixes=fixes);
16+
17+
FailMessage error(value src, str msg, value args..., list[CodeAction] fixes=[])
18+
= fixes? ? fm_error(src, msg, args, fixes=fixes): fm_error(src, msg, args);
19+
FailMessage warning(value src, str msg, value args..., list[CodeAction] fixes=[])
20+
= fixes? ? fm_warning(src, msg, args, fixes=fixes) : fm_warning(src, msg, args);
21+
FailMessage info(value src, str msg, value args..., list[CodeAction] fixes=[])
22+
= fixes? ? fm_info(src, msg, args, fixes=fixes) : fm_info(src, msg, args);
2023

2124
str escapePercent(str s) = replaceAll(s, "%", "%%");
22-
23-
FailMessage convert(error(str msg, loc at, fixes=list[CodeAction] fixes)) = fm_error(at, escapePercent(msg), [], fixes=fixes);
24-
FailMessage convert(warning(str msg, loc at, fixes=list[CodeAction] fixes)) = fm_warning(at, escapePercent(msg), [], fixes=fixes);
25-
FailMessage convert(info(str msg, loc at, fixes=list[CodeAction] fixes)) = fm_info(at, escapePercent(msg), [], fixes=fixes);
25+
26+
FailMessage convert(error(str msg, loc at, fixes=list[CodeAction] fixes))
27+
= fixes? ? fm_error(at, escapePercent(msg), [], fixes=fixes) : fm_error(src, msg, args);
28+
FailMessage convert(warning(str msg, loc at, fixes=list[CodeAction] fixes))
29+
= fixes? ? fm_warning(at, escapePercent(msg), [], fixes=fixes) : fm_warning(src, msg, args);
30+
FailMessage convert(info(str msg, loc at, fixes=list[CodeAction] fixes))
31+
= fixes? ? fm_info(at, escapePercent(msg), [], fixes=fixes) : fm_info(at, escapePercent(msg), []);

0 commit comments

Comments
 (0)