Message ID | 20240904091451.3328272-2-lihongbo22@huawei.com (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | coccinelle: Add some rules for string_chioces helpers. | expand |
On Wed, 4 Sep 2024, Hongbo Li wrote: > After str_true_false() has been introduced in the tree, > we can add rules for finding places where str_true_false() > can be used. A simple test can find over 10 locations. > > Signed-off-by: Hongbo Li <lihongbo22@huawei.com> > --- > scripts/coccinelle/api/string_choices.cocci | 23 +++++++++++++++++++++ > 1 file changed, 23 insertions(+) > > diff --git a/scripts/coccinelle/api/string_choices.cocci b/scripts/coccinelle/api/string_choices.cocci > index 5e729f187f22..50329c4c8acd 100644 > --- a/scripts/coccinelle/api/string_choices.cocci > +++ b/scripts/coccinelle/api/string_choices.cocci > @@ -85,3 +85,26 @@ e << str_down_up_r.E; > @@ > > coccilib.report.print_report(p[0], "opportunity for str_down_up(%s)" % e) > + > +@str_true_false depends on patch@ > +expression E; > +@@ > +( There is no need for the above. That is only needed if there is a disjunction, ie a set of possible changes. Likewise no need for the ), and the same in the next rule. julia > +- ((E) ? "true" : "false") > ++ str_true_false(E) > +) > + > +@str_true_false_r depends on !patch exists@ > +expression E; > +position P; > +@@ > +( > +* ((E@P) ? "true" : "false") > +) > + > +@script:python depends on report@ > +p << str_true_false_r.P; > +e << str_true_false_r.E; > +@@ > + > +coccilib.report.print_report(p[0], "opportunity for str_true_false(%s)" % e) > -- > 2.34.1 > >
On 2024/9/10 0:00, Julia Lawall wrote: > > > On Wed, 4 Sep 2024, Hongbo Li wrote: > >> After str_true_false() has been introduced in the tree, >> we can add rules for finding places where str_true_false() >> can be used. A simple test can find over 10 locations. >> >> Signed-off-by: Hongbo Li <lihongbo22@huawei.com> >> --- >> scripts/coccinelle/api/string_choices.cocci | 23 +++++++++++++++++++++ >> 1 file changed, 23 insertions(+) >> >> diff --git a/scripts/coccinelle/api/string_choices.cocci b/scripts/coccinelle/api/string_choices.cocci >> index 5e729f187f22..50329c4c8acd 100644 >> --- a/scripts/coccinelle/api/string_choices.cocci >> +++ b/scripts/coccinelle/api/string_choices.cocci >> @@ -85,3 +85,26 @@ e << str_down_up_r.E; >> @@ >> >> coccilib.report.print_report(p[0], "opportunity for str_down_up(%s)" % e) >> + >> +@str_true_false depends on patch@ >> +expression E; >> +@@ >> +( > > There is no need for the above. That is only needed if there is a > disjunction, ie a set of possible changes. Likewise no need for the ), > and the same in the next rule. Do you mean str_true_false_r is enough, not need for str_true_false? I noticed it was written this way before, so I've kept consistent with the previous writing style. Thanks, Hongbo > > julia > >> +- ((E) ? "true" : "false") >> ++ str_true_false(E) >> +) >> + >> +@str_true_false_r depends on !patch exists@ >> +expression E; >> +position P; >> +@@ >> +( >> +* ((E@P) ? "true" : "false") >> +) >> + >> +@script:python depends on report@ >> +p << str_true_false_r.P; >> +e << str_true_false_r.E; >> +@@ >> + >> +coccilib.report.print_report(p[0], "opportunity for str_true_false(%s)" % e) >> -- >> 2.34.1 >> >>
On 2024/9/10 10:23, Hongbo Li wrote: > > > On 2024/9/10 0:00, Julia Lawall wrote: >> >> >> On Wed, 4 Sep 2024, Hongbo Li wrote: >> >>> After str_true_false() has been introduced in the tree, >>> we can add rules for finding places where str_true_false() >>> can be used. A simple test can find over 10 locations. >>> >>> Signed-off-by: Hongbo Li <lihongbo22@huawei.com> >>> --- >>> scripts/coccinelle/api/string_choices.cocci | 23 +++++++++++++++++++++ >>> 1 file changed, 23 insertions(+) >>> >>> diff --git a/scripts/coccinelle/api/string_choices.cocci >>> b/scripts/coccinelle/api/string_choices.cocci >>> index 5e729f187f22..50329c4c8acd 100644 >>> --- a/scripts/coccinelle/api/string_choices.cocci >>> +++ b/scripts/coccinelle/api/string_choices.cocci >>> @@ -85,3 +85,26 @@ e << str_down_up_r.E; >>> @@ >>> >>> coccilib.report.print_report(p[0], "opportunity for >>> str_down_up(%s)" % e) >>> + >>> +@str_true_false depends on patch@ >>> +expression E; >>> +@@ >>> +( >> >> There is no need for the above. That is only needed if there is a >> disjunction, ie a set of possible changes. Likewise no need for the ), or, you mean the parentheses are unnecessary? Thanks, Hongbo >> and the same in the next rule. > > Do you mean str_true_false_r is enough, not need for str_true_false? I > noticed it was written this way before, so I've kept consistent with the > previous writing style. > > Thanks, > Hongbo > >> >> julia >> >>> +- ((E) ? "true" : "false") >>> ++ str_true_false(E) >>> +) >>> + >>> +@str_true_false_r depends on !patch exists@ >>> +expression E; >>> +position P; >>> +@@ >>> +( >>> +* ((E@P) ? "true" : "false") >>> +) >>> + >>> +@script:python depends on report@ >>> +p << str_true_false_r.P; >>> +e << str_true_false_r.E; >>> +@@ >>> + >>> +coccilib.report.print_report(p[0], "opportunity for >>> str_true_false(%s)" % e) >>> -- >>> 2.34.1 >>> >>>
diff --git a/scripts/coccinelle/api/string_choices.cocci b/scripts/coccinelle/api/string_choices.cocci index 5e729f187f22..50329c4c8acd 100644 --- a/scripts/coccinelle/api/string_choices.cocci +++ b/scripts/coccinelle/api/string_choices.cocci @@ -85,3 +85,26 @@ e << str_down_up_r.E; @@ coccilib.report.print_report(p[0], "opportunity for str_down_up(%s)" % e) + +@str_true_false depends on patch@ +expression E; +@@ +( +- ((E) ? "true" : "false") ++ str_true_false(E) +) + +@str_true_false_r depends on !patch exists@ +expression E; +position P; +@@ +( +* ((E@P) ? "true" : "false") +) + +@script:python depends on report@ +p << str_true_false_r.P; +e << str_true_false_r.E; +@@ + +coccilib.report.print_report(p[0], "opportunity for str_true_false(%s)" % e)
After str_true_false() has been introduced in the tree, we can add rules for finding places where str_true_false() can be used. A simple test can find over 10 locations. Signed-off-by: Hongbo Li <lihongbo22@huawei.com> --- scripts/coccinelle/api/string_choices.cocci | 23 +++++++++++++++++++++ 1 file changed, 23 insertions(+)