emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[nongnu] elpa/swift-mode 773219a 142/496: Treat default clause for case


From: ELPA Syncer
Subject: [nongnu] elpa/swift-mode 773219a 142/496: Treat default clause for case statement as a whole with colon in bnf
Date: Sun, 29 Aug 2021 11:33:24 -0400 (EDT)

branch: elpa/swift-mode
commit 773219a11063af8bb2b9af2ac7c2406247bdddbd
Author: ap4y <lod@pisem.net>
Commit: ap4y <lod@pisem.net>

    Treat default clause for case statement as a whole with colon in bnf
    grammar
    
    This commit removes ambiguity from case statement grammars, it seems default
    lexer parses this statement as a whole. Also improved tests for case
    statements to actually catch related bug.
    
    fixes #48
---
 swift-mode.el             |  4 ++--
 test/indentation-tests.el | 16 ++++++++++++----
 2 files changed, 14 insertions(+), 6 deletions(-)

diff --git a/swift-mode.el b/swift-mode.el
index f16fbe9..dbcc0ca 100644
--- a/swift-mode.el
+++ b/swift-mode.el
@@ -140,7 +140,7 @@
        (case-exps (guard-exp))
        (cases (case-exps ":" insts)
               (cases "case" cases))
-       (switch-body (cases) (cases "default" insts))
+       (switch-body (cases) (cases "default:" insts))
 
        (for-head (in-exp) (op-exp) (for-head ";" for-head))
 
@@ -269,7 +269,7 @@
      (if (smie-rule-parent-p "switch")
          (smie-rule-parent swift-indent-switch-case-offset)))
     (`(:before . ";")
-     (if (smie-rule-parent-p "case" "default")
+     (if (smie-rule-parent-p "case" "default:")
          (smie-rule-parent swift-indent-offset)))
 
     ;; Apply swift-indent-multiline-statement-offset only if
diff --git a/test/indentation-tests.el b/test/indentation-tests.el
index f958732..bb5286b 100644
--- a/test/indentation-tests.el
+++ b/test/indentation-tests.el
@@ -354,13 +354,17 @@ case y:
   "
 {
     switch true {
-|default
+    case y:
+        x
+|default:
     }
 }
 " "
 {
     switch true {
-    |default
+    case y:
+        x
+    |default:
     }
 }
 ")
@@ -369,13 +373,17 @@ case y:
   "
 {
     switch true {
-              |default
+    case y:
+        x
+              |default:
     }
 }
 " "
 {
     switch true {
-    |default
+    case y:
+        x
+    |default:
     }
 }
 ")



reply via email to

[Prev in Thread] Current Thread [Next in Thread]