From e5ebc9710df36d99f53f63380d6dcfed74f52887 Mon Sep 17 00:00:00 2001
From: George Marques <george@gmarqu.es>
Date: Tue, 21 Sep 2021 14:13:23 -0300
Subject: GDScript: Allow classes declaration to be done in single line

Incidentally, allow multiple statements in single line functions when
using semicolon as a terminator.
---
 .../parser/features/semicolon_as_terminator.gd     | 22 ++++++++++++++++++++++
 .../parser/features/semicolon_as_terminator.out    | 10 ++++++++++
 .../parser/features/single_line_declaration.gd     | 11 +++++++++++
 .../parser/features/single_line_declaration.out    |  3 +++
 4 files changed, 46 insertions(+)
 create mode 100644 modules/gdscript/tests/scripts/parser/features/semicolon_as_terminator.gd
 create mode 100644 modules/gdscript/tests/scripts/parser/features/semicolon_as_terminator.out
 create mode 100644 modules/gdscript/tests/scripts/parser/features/single_line_declaration.gd
 create mode 100644 modules/gdscript/tests/scripts/parser/features/single_line_declaration.out

(limited to 'modules/gdscript/tests/scripts/parser/features')

diff --git a/modules/gdscript/tests/scripts/parser/features/semicolon_as_terminator.gd b/modules/gdscript/tests/scripts/parser/features/semicolon_as_terminator.gd
new file mode 100644
index 0000000000..0f4aebb459
--- /dev/null
+++ b/modules/gdscript/tests/scripts/parser/features/semicolon_as_terminator.gd
@@ -0,0 +1,22 @@
+#GDTEST_OK
+
+func test():
+	a();
+	b();
+	c();
+	d();
+	e();
+
+func a(): print("a");
+
+func b(): print("b1"); print("b2")
+
+func c(): print("c1"); print("c2");
+
+func d():
+	print("d1");
+	print("d2")
+
+func e():
+	print("e1");
+	print("e2");
diff --git a/modules/gdscript/tests/scripts/parser/features/semicolon_as_terminator.out b/modules/gdscript/tests/scripts/parser/features/semicolon_as_terminator.out
new file mode 100644
index 0000000000..387cbd8fc2
--- /dev/null
+++ b/modules/gdscript/tests/scripts/parser/features/semicolon_as_terminator.out
@@ -0,0 +1,10 @@
+GDTEST_OK
+a
+b1
+b2
+c1
+c2
+d1
+d2
+e1
+e2
diff --git a/modules/gdscript/tests/scripts/parser/features/single_line_declaration.gd b/modules/gdscript/tests/scripts/parser/features/single_line_declaration.gd
new file mode 100644
index 0000000000..650500663b
--- /dev/null
+++ b/modules/gdscript/tests/scripts/parser/features/single_line_declaration.gd
@@ -0,0 +1,11 @@
+#GDTEST_OK
+
+func test(): C.new().test("Ok"); test2()
+
+func test2(): print("Ok 2")
+
+class A: pass
+
+class B extends RefCounted: pass
+
+class C extends RefCounted: func test(x): print(x)
diff --git a/modules/gdscript/tests/scripts/parser/features/single_line_declaration.out b/modules/gdscript/tests/scripts/parser/features/single_line_declaration.out
new file mode 100644
index 0000000000..e021923dc2
--- /dev/null
+++ b/modules/gdscript/tests/scripts/parser/features/single_line_declaration.out
@@ -0,0 +1,3 @@
+GDTEST_OK
+Ok
+Ok 2
-- 
cgit v1.2.3