瀏覽代碼

[parser] treat final like var when resuming

closes #10412
Simon Krajewski 4 年之前
父節點
當前提交
296c05dc73
共有 2 個文件被更改,包括 15 次插入1 次删除
  1. 1 1
      src/syntax/grammar.mly
  2. 14 0
      tests/display/src/cases/Issue10412.hx

+ 1 - 1
src/syntax/grammar.mly

@@ -475,7 +475,7 @@ and resume tdecl fdecl s =
 		| Kwd New :: Kwd Function :: _ when fdecl ->
 		| Kwd New :: Kwd Function :: _ when fdecl ->
 			junk_tokens (k - 2);
 			junk_tokens (k - 2);
 			true
 			true
-		| Kwd Macro :: _ | Kwd Public :: _ | Kwd Static :: _ | Kwd Var :: _ | Kwd Override :: _ | Kwd Dynamic :: _ | Kwd Inline :: _ | Kwd Overload :: _ when fdecl ->
+		| Kwd Macro :: _ | Kwd Public :: _ | Kwd Static :: _ | Kwd Var :: _ | Kwd Final :: _ | Kwd Override :: _ | Kwd Dynamic :: _ | Kwd Inline :: _ | Kwd Overload :: _ when fdecl ->
 			junk_tokens (k - 1);
 			junk_tokens (k - 1);
 			true
 			true
 		| BrClose :: _ when tdecl ->
 		| BrClose :: _ when tdecl ->

+ 14 - 0
tests/display/src/cases/Issue10412.hx

@@ -61,4 +61,18 @@ class Issue10412 extends DisplayTestCase {
 		var fields = fields(pos(1));
 		var fields = fields(pos(1));
 		eq(true, hasField(fields, "length", "Int"));
 		eq(true, hasField(fields, "length", "Int"));
 	}
 	}
+
+	/**
+		class Test {
+		var a:Int;
+		function test() {
+			this.{-1-}.resume;
+
+		final x:String;
+		}
+	**/
+	function testFinalResume() {
+		var fields = fields(pos(1));
+		eq(true, hasField(fields, "x", "String"));
+	}
 }
 }