@@ -673,73 +673,22 @@ TEST_F(test_parse_warning,
673
673
}
674
674
}
675
675
676
- TEST_F (test_parse_warning, warn_on_pointless_nullish_coalescing_operator ) {
676
+ TEST_F (test_parse_warning, warn_on_pointless_string_literal_comparison ) {
677
677
{
678
- test_parser p (u8" true ?? false" _sv, capture_diags);
679
- p.parse_and_visit_expression ();
680
-
681
- EXPECT_THAT (p.errors ,
682
- ElementsAreArray ({
683
- DIAG_TYPE_OFFSETS (
684
- p.code , diag_pointless_nullish_coalescing_operator,
685
- question_question, strlen (u8" true " ), u8" ??" _sv),
686
- }));
687
- }
688
- {
689
- test_parser p (u8" (a < b) ?? false" _sv, capture_diags);
690
- p.parse_and_visit_expression ();
691
-
692
- EXPECT_THAT (p.errors ,
693
- ElementsAreArray ({
694
- DIAG_TYPE_OFFSETS (
695
- p.code , diag_pointless_nullish_coalescing_operator,
696
- question_question, strlen (u8" (a < b) " ), u8" ??" _sv),
697
- }));
698
- }
699
- {
700
- test_parser p (u8" !b ?? false" _sv, capture_diags);
701
- p.parse_and_visit_expression ();
702
- EXPECT_THAT (p.errors ,
703
- ElementsAreArray ({
704
- DIAG_TYPE_OFFSETS (
705
- p.code , diag_pointless_nullish_coalescing_operator,
706
- question_question, strlen (u8" !b " ), u8" ??" _sv),
707
- }));
708
- }
709
- {
710
- test_parser p (u8" 'hi' ?? true" _sv, capture_diags);
711
- p.parse_and_visit_expression ();
712
- EXPECT_THAT (p.errors ,
713
- ElementsAreArray ({
714
- DIAG_TYPE_OFFSETS (
715
- p.code , diag_pointless_nullish_coalescing_operator,
716
- question_question, strlen (u8" 'hi' " ), u8" ??" _sv),
717
- }));
718
- }
719
- for (string8_view code : {
720
- u8" s.toLowerCase() ?? false" _sv,
721
- u8" s ?? false" _sv,
722
- u8" null ?? false" _sv,
723
- u8" (foo) ?? false" _sv,
724
- u8" {}.missingProp ?? false" _sv,
725
- u8" {}['missingProp'] ?? false" _sv,
726
- u8" await foo ?? false" _sv,
727
- u8" void 42 ?? false" _sv,
728
- u8" bar`hello` ?? false" _sv,
729
- u8" this ?? false" _sv,
730
- u8" (2+2 && null) ?? false" _sv,
731
- u8" (2+2 || null) ?? false" _sv,
732
- u8" (2+2 , null) ?? false" _sv,
733
- u8" (2+2 ?? null) ?? false" _sv,
734
- }) {
735
- SCOPED_TRACE (out_string8 (code));
736
- test_parser p (code);
678
+ test_parser p (u8" if('x' || 'y')" _sv, capture_diags);
737
679
p.parse_and_visit_expression ();
680
+ EXPECT_THAT (
681
+ p.errors ,
682
+ ElementsAreArray ({
683
+ DIAG_TYPE_OFFSETS (p.code , diag_pointless_comp_against_string_expression_literal,
684
+ or_operator, strlen (u8" 'x' " ), u8" ||" _sv),
685
+ }));
738
686
}
739
687
}
740
688
}
741
689
}
742
690
691
+
743
692
// quick-lint-js finds bugs in JavaScript programs.
744
693
// Copyright (C) 2020 Matthew "strager" Glazar
745
694
//
0 commit comments