more sane parentheses fix for delegates

not sure what I was thinking with the initial version
This commit is contained in:
WebFreak001 2023-07-12 13:52:54 +02:00 committed by Jan Jurzitza
parent 7601fe65f9
commit 5d67707744

View file

@ -49,8 +49,7 @@ final class LambdaReturnCheck : BaseAnalyzer
.concat(AutoFix.insertionAfter(fLit.tokens[0], ")")) .concat(AutoFix.insertionAfter(fLit.tokens[0], ")"))
.concat(AutoFix.replacement(arrow[0], "")); .concat(AutoFix.replacement(arrow[0], ""));
} }
autofixes ~= AutoFix.insertionBefore(*endIncl, "(", "Add parenthesis (return delegate)") autofixes ~= AutoFix.insertionBefore(*endIncl, "() ", "Add parenthesis (return delegate)");
.concat(AutoFix.insertionAfter(fe.specifiedFunctionBody.tokens[$ - 1], ")"));
addErrorMessage(tokens, KEY, "This lambda returns a lambda. Add parenthesis to clarify.", addErrorMessage(tokens, KEY, "This lambda returns a lambda. Add parenthesis to clarify.",
autofixes); autofixes);
} }
@ -101,11 +100,11 @@ unittest
{ {
int[] b; int[] b;
auto a = b.map!((a) { return a * a + 2; }).array(); // fix:0 auto a = b.map!((a) { return a * a + 2; }).array(); // fix:0
auto a = b.map!(a => ({ return a * a + 2; })).array(); // fix:1 auto a = b.map!(a => () { return a * a + 2; }).array(); // fix:1
pragma(msg, typeof((a) { return a; })); // fix:0 pragma(msg, typeof((a) { return a; })); // fix:0
pragma(msg, typeof(a => ({ return a; }))); // fix:1 pragma(msg, typeof(a => () { return a; })); // fix:1
pragma(msg, typeof((a) { return a; })); // fix:0 pragma(msg, typeof((a) { return a; })); // fix:0
pragma(msg, typeof((a) => ({ return a; }))); // fix:1 pragma(msg, typeof((a) => () { return a; })); // fix:1
} }
}c, sac); }c, sac);