about summary refs log tree commit diff
path: root/third_party/git/t/t4018
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/git/t/t4018')
-rw-r--r--third_party/git/t/t4018/README18
-rw-r--r--third_party/git/t/t4018/cpp-c++-function4
-rw-r--r--third_party/git/t/t4018/cpp-class-constructor4
-rw-r--r--third_party/git/t/t4018/cpp-class-constructor-mem-init5
-rw-r--r--third_party/git/t/t4018/cpp-class-definition4
-rw-r--r--third_party/git/t/t4018/cpp-class-definition-derived5
-rw-r--r--third_party/git/t/t4018/cpp-class-destructor4
-rw-r--r--third_party/git/t/t4018/cpp-function-returning-global-type4
-rw-r--r--third_party/git/t/t4018/cpp-function-returning-nested5
-rw-r--r--third_party/git/t/t4018/cpp-function-returning-pointer4
-rw-r--r--third_party/git/t/t4018/cpp-function-returning-reference4
-rw-r--r--third_party/git/t/t4018/cpp-gnu-style-function5
-rw-r--r--third_party/git/t/t4018/cpp-namespace-definition4
-rw-r--r--third_party/git/t/t4018/cpp-operator-definition4
-rw-r--r--third_party/git/t/t4018/cpp-skip-access-specifiers8
-rw-r--r--third_party/git/t/t4018/cpp-skip-comment-block9
-rw-r--r--third_party/git/t/t4018/cpp-skip-labels8
-rw-r--r--third_party/git/t/t4018/cpp-struct-definition9
-rw-r--r--third_party/git/t/t4018/cpp-struct-single-line7
-rw-r--r--third_party/git/t/t4018/cpp-template-function-definition4
-rw-r--r--third_party/git/t/t4018/cpp-union-definition4
-rw-r--r--third_party/git/t/t4018/cpp-void-c-function4
-rw-r--r--third_party/git/t/t4018/css-brace-in-col-15
-rw-r--r--third_party/git/t/t4018/css-colon-eol4
-rw-r--r--third_party/git/t/t4018/css-colon-selector5
-rw-r--r--third_party/git/t/t4018/css-common4
-rw-r--r--third_party/git/t/t4018/css-long-selector-list6
-rw-r--r--third_party/git/t/t4018/css-prop-sans-indent5
-rw-r--r--third_party/git/t/t4018/css-short-selector-list4
-rw-r--r--third_party/git/t/t4018/css-trailing-space5
-rw-r--r--third_party/git/t/t4018/custom1-pattern17
-rw-r--r--third_party/git/t/t4018/custom2-match-to-end-of-line8
-rw-r--r--third_party/git/t/t4018/custom3-alternation-in-pattern17
-rw-r--r--third_party/git/t/t4018/dts-labels9
-rw-r--r--third_party/git/t/t4018/dts-node-unitless8
-rw-r--r--third_party/git/t/t4018/dts-nodes8
-rw-r--r--third_party/git/t/t4018/dts-nodes-boolean-prop9
-rw-r--r--third_party/git/t/t4018/dts-nodes-comment18
-rw-r--r--third_party/git/t/t4018/dts-nodes-comment28
-rw-r--r--third_party/git/t/t4018/dts-nodes-multiline-prop13
-rw-r--r--third_party/git/t/t4018/dts-reference9
-rw-r--r--third_party/git/t/t4018/dts-root5
-rw-r--r--third_party/git/t/t4018/dts-root-comment8
-rw-r--r--third_party/git/t/t4018/elixir-do-not-pick-end5
-rw-r--r--third_party/git/t/t4018/elixir-ex-unit-test6
-rw-r--r--third_party/git/t/t4018/elixir-function5
-rw-r--r--third_party/git/t/t4018/elixir-macro5
-rw-r--r--third_party/git/t/t4018/elixir-module9
-rw-r--r--third_party/git/t/t4018/elixir-module-func8
-rw-r--r--third_party/git/t/t4018/elixir-nested-module9
-rw-r--r--third_party/git/t/t4018/elixir-private-function5
-rw-r--r--third_party/git/t/t4018/elixir-protocol6
-rw-r--r--third_party/git/t/t4018/elixir-protocol-implementation5
-rw-r--r--third_party/git/t/t4018/fountain-scene4
-rw-r--r--third_party/git/t/t4018/golang-complex-function8
-rw-r--r--third_party/git/t/t4018/golang-func4
-rw-r--r--third_party/git/t/t4018/golang-interface4
-rw-r--r--third_party/git/t/t4018/golang-long-func5
-rw-r--r--third_party/git/t/t4018/golang-struct4
-rw-r--r--third_party/git/t/t4018/java-class-member-function8
-rw-r--r--third_party/git/t/t4018/matlab-class-definition5
-rw-r--r--third_party/git/t/t4018/matlab-function4
-rw-r--r--third_party/git/t/t4018/matlab-octave-section-13
-rw-r--r--third_party/git/t/t4018/matlab-octave-section-23
-rw-r--r--third_party/git/t/t4018/matlab-section3
-rw-r--r--third_party/git/t/t4018/perl-skip-end-of-heredoc8
-rw-r--r--third_party/git/t/t4018/perl-skip-forward-decl10
-rw-r--r--third_party/git/t/t4018/perl-skip-sub-in-pod18
-rw-r--r--third_party/git/t/t4018/perl-sub-definition4
-rw-r--r--third_party/git/t/t4018/perl-sub-definition-kr-brace4
-rw-r--r--third_party/git/t/t4018/php-abstract-class4
-rw-r--r--third_party/git/t/t4018/php-class4
-rw-r--r--third_party/git/t/t4018/php-final-class4
-rw-r--r--third_party/git/t/t4018/php-function4
-rw-r--r--third_party/git/t/t4018/php-interface4
-rw-r--r--third_party/git/t/t4018/php-method7
-rw-r--r--third_party/git/t/t4018/php-trait7
-rw-r--r--third_party/git/t/t4018/python-async-def4
-rw-r--r--third_party/git/t/t4018/python-class4
-rw-r--r--third_party/git/t/t4018/python-def4
-rw-r--r--third_party/git/t/t4018/python-indented-async-def7
-rw-r--r--third_party/git/t/t4018/python-indented-class5
-rw-r--r--third_party/git/t/t4018/python-indented-def7
-rw-r--r--third_party/git/t/t4018/rust-fn5
-rw-r--r--third_party/git/t/t4018/rust-impl5
-rw-r--r--third_party/git/t/t4018/rust-struct5
-rw-r--r--third_party/git/t/t4018/rust-trait5
87 files changed, 539 insertions, 0 deletions
diff --git a/third_party/git/t/t4018/README b/third_party/git/t/t4018/README
new file mode 100644
index 000000000000..283e01cca1ac
--- /dev/null
+++ b/third_party/git/t/t4018/README
@@ -0,0 +1,18 @@
+How to write RIGHT test cases
+=============================
+
+Insert the word "ChangeMe" (exactly this form) at a distance of
+at least two lines from the line that must appear in the hunk header.
+
+The text that must appear in the hunk header must contain the word
+"right", but in all upper-case, like in the title above.
+
+To mark a test case that highlights a malfunction, insert the word
+BROKEN in all lower-case somewhere in the file.
+
+This text is a bit twisted and out of order, but it is itself a
+test case for the default hunk header pattern. Know what you are doing
+if you change it.
+
+BTW, this tests that the head line goes to the hunk header, not the line
+of equal signs.
diff --git a/third_party/git/t/t4018/cpp-c++-function b/third_party/git/t/t4018/cpp-c++-function
new file mode 100644
index 000000000000..9ee6bbef5573
--- /dev/null
+++ b/third_party/git/t/t4018/cpp-c++-function
@@ -0,0 +1,4 @@
+Item RIGHT::DoSomething( Args with_spaces )
+{
+	ChangeMe;
+}
diff --git a/third_party/git/t/t4018/cpp-class-constructor b/third_party/git/t/t4018/cpp-class-constructor
new file mode 100644
index 000000000000..ec4f115c250f
--- /dev/null
+++ b/third_party/git/t/t4018/cpp-class-constructor
@@ -0,0 +1,4 @@
+Item::Item(int RIGHT)
+{
+	ChangeMe;
+}
diff --git a/third_party/git/t/t4018/cpp-class-constructor-mem-init b/third_party/git/t/t4018/cpp-class-constructor-mem-init
new file mode 100644
index 000000000000..49a69f37e161
--- /dev/null
+++ b/third_party/git/t/t4018/cpp-class-constructor-mem-init
@@ -0,0 +1,5 @@
+Item::Item(int RIGHT) :
+	member(0)
+{
+	ChangeMe;
+}
diff --git a/third_party/git/t/t4018/cpp-class-definition b/third_party/git/t/t4018/cpp-class-definition
new file mode 100644
index 000000000000..11b61da3b75a
--- /dev/null
+++ b/third_party/git/t/t4018/cpp-class-definition
@@ -0,0 +1,4 @@
+class RIGHT
+{
+	int ChangeMe;
+};
diff --git a/third_party/git/t/t4018/cpp-class-definition-derived b/third_party/git/t/t4018/cpp-class-definition-derived
new file mode 100644
index 000000000000..3b98cd09ab5d
--- /dev/null
+++ b/third_party/git/t/t4018/cpp-class-definition-derived
@@ -0,0 +1,5 @@
+class RIGHT :
+	public Baseclass
+{
+	int ChangeMe;
+};
diff --git a/third_party/git/t/t4018/cpp-class-destructor b/third_party/git/t/t4018/cpp-class-destructor
new file mode 100644
index 000000000000..548766509651
--- /dev/null
+++ b/third_party/git/t/t4018/cpp-class-destructor
@@ -0,0 +1,4 @@
+RIGHT::~RIGHT()
+{
+	ChangeMe;
+}
diff --git a/third_party/git/t/t4018/cpp-function-returning-global-type b/third_party/git/t/t4018/cpp-function-returning-global-type
new file mode 100644
index 000000000000..1084d5990efa
--- /dev/null
+++ b/third_party/git/t/t4018/cpp-function-returning-global-type
@@ -0,0 +1,4 @@
+::Item get::it::RIGHT()
+{
+	ChangeMe;
+}
diff --git a/third_party/git/t/t4018/cpp-function-returning-nested b/third_party/git/t/t4018/cpp-function-returning-nested
new file mode 100644
index 000000000000..d9750aa61a50
--- /dev/null
+++ b/third_party/git/t/t4018/cpp-function-returning-nested
@@ -0,0 +1,5 @@
+get::Item get::it::RIGHT()
+{
+	ChangeMe;
+}
+
diff --git a/third_party/git/t/t4018/cpp-function-returning-pointer b/third_party/git/t/t4018/cpp-function-returning-pointer
new file mode 100644
index 000000000000..ef15657ea8fe
--- /dev/null
+++ b/third_party/git/t/t4018/cpp-function-returning-pointer
@@ -0,0 +1,4 @@
+const char *get_it_RIGHT(char *ptr)
+{
+	ChangeMe;
+}
diff --git a/third_party/git/t/t4018/cpp-function-returning-reference b/third_party/git/t/t4018/cpp-function-returning-reference
new file mode 100644
index 000000000000..01b051df7015
--- /dev/null
+++ b/third_party/git/t/t4018/cpp-function-returning-reference
@@ -0,0 +1,4 @@
+string& get::it::RIGHT(char *ptr)
+{
+	ChangeMe;
+}
diff --git a/third_party/git/t/t4018/cpp-gnu-style-function b/third_party/git/t/t4018/cpp-gnu-style-function
new file mode 100644
index 000000000000..08c7c7565ae2
--- /dev/null
+++ b/third_party/git/t/t4018/cpp-gnu-style-function
@@ -0,0 +1,5 @@
+const char *
+RIGHT(int arg)
+{
+	ChangeMe;
+}
diff --git a/third_party/git/t/t4018/cpp-namespace-definition b/third_party/git/t/t4018/cpp-namespace-definition
new file mode 100644
index 000000000000..6749980241cc
--- /dev/null
+++ b/third_party/git/t/t4018/cpp-namespace-definition
@@ -0,0 +1,4 @@
+namespace RIGHT
+{
+	ChangeMe;
+}
diff --git a/third_party/git/t/t4018/cpp-operator-definition b/third_party/git/t/t4018/cpp-operator-definition
new file mode 100644
index 000000000000..1acd82715921
--- /dev/null
+++ b/third_party/git/t/t4018/cpp-operator-definition
@@ -0,0 +1,4 @@
+Value operator+(Value LEFT, Value RIGHT)
+{
+	ChangeMe;
+}
diff --git a/third_party/git/t/t4018/cpp-skip-access-specifiers b/third_party/git/t/t4018/cpp-skip-access-specifiers
new file mode 100644
index 000000000000..4d4a9dbb9db5
--- /dev/null
+++ b/third_party/git/t/t4018/cpp-skip-access-specifiers
@@ -0,0 +1,8 @@
+class RIGHT : public Baseclass
+{
+public:
+protected:
+private:
+	void DoSomething();
+	int ChangeMe;
+};
diff --git a/third_party/git/t/t4018/cpp-skip-comment-block b/third_party/git/t/t4018/cpp-skip-comment-block
new file mode 100644
index 000000000000..3800b9967a5c
--- /dev/null
+++ b/third_party/git/t/t4018/cpp-skip-comment-block
@@ -0,0 +1,9 @@
+struct item RIGHT(int i)
+// Do not
+// pick up
+/* these
+** comments.
+*/
+{
+	ChangeMe;
+}
diff --git a/third_party/git/t/t4018/cpp-skip-labels b/third_party/git/t/t4018/cpp-skip-labels
new file mode 100644
index 000000000000..b9c10aba225d
--- /dev/null
+++ b/third_party/git/t/t4018/cpp-skip-labels
@@ -0,0 +1,8 @@
+void RIGHT (void)
+{
+repeat:		// C++ comment
+next:		/* C comment */
+	do_something();
+
+	ChangeMe;
+}
diff --git a/third_party/git/t/t4018/cpp-struct-definition b/third_party/git/t/t4018/cpp-struct-definition
new file mode 100644
index 000000000000..521c59fd1513
--- /dev/null
+++ b/third_party/git/t/t4018/cpp-struct-definition
@@ -0,0 +1,9 @@
+struct RIGHT {
+	unsigned
+	/* this bit field looks like a label and should not be picked up */
+		decoy_bitfield: 2,
+		more : 1;
+	int filler;
+
+	int ChangeMe;
+};
diff --git a/third_party/git/t/t4018/cpp-struct-single-line b/third_party/git/t/t4018/cpp-struct-single-line
new file mode 100644
index 000000000000..a0de5fb800fe
--- /dev/null
+++ b/third_party/git/t/t4018/cpp-struct-single-line
@@ -0,0 +1,7 @@
+void wrong()
+{
+}
+
+struct RIGHT_iterator_tag {};
+
+int ChangeMe;
diff --git a/third_party/git/t/t4018/cpp-template-function-definition b/third_party/git/t/t4018/cpp-template-function-definition
new file mode 100644
index 000000000000..0cdf5ba5bd43
--- /dev/null
+++ b/third_party/git/t/t4018/cpp-template-function-definition
@@ -0,0 +1,4 @@
+template<class T> int RIGHT(T arg)
+{
+	ChangeMe;
+}
diff --git a/third_party/git/t/t4018/cpp-union-definition b/third_party/git/t/t4018/cpp-union-definition
new file mode 100644
index 000000000000..7ec94df69734
--- /dev/null
+++ b/third_party/git/t/t4018/cpp-union-definition
@@ -0,0 +1,4 @@
+union RIGHT {
+	double v;
+	int ChangeMe;
+};
diff --git a/third_party/git/t/t4018/cpp-void-c-function b/third_party/git/t/t4018/cpp-void-c-function
new file mode 100644
index 000000000000..153081e872c5
--- /dev/null
+++ b/third_party/git/t/t4018/cpp-void-c-function
@@ -0,0 +1,4 @@
+void RIGHT (void)
+{
+	ChangeMe;
+}
diff --git a/third_party/git/t/t4018/css-brace-in-col-1 b/third_party/git/t/t4018/css-brace-in-col-1
new file mode 100644
index 000000000000..7831577506a9
--- /dev/null
+++ b/third_party/git/t/t4018/css-brace-in-col-1
@@ -0,0 +1,5 @@
+RIGHT label.control-label
+{
+    margin-top: 10px!important;
+    border : 10px ChangeMe #C6C6C6;
+}
diff --git a/third_party/git/t/t4018/css-colon-eol b/third_party/git/t/t4018/css-colon-eol
new file mode 100644
index 000000000000..5a30553d2918
--- /dev/null
+++ b/third_party/git/t/t4018/css-colon-eol
@@ -0,0 +1,4 @@
+RIGHT h1 {
+color:
+ChangeMe;
+}
diff --git a/third_party/git/t/t4018/css-colon-selector b/third_party/git/t/t4018/css-colon-selector
new file mode 100644
index 000000000000..c6d71fb42de6
--- /dev/null
+++ b/third_party/git/t/t4018/css-colon-selector
@@ -0,0 +1,5 @@
+RIGHT a:hover {
+    margin-top:
+    10px!important;
+    border : 10px ChangeMe #C6C6C6;
+}
diff --git a/third_party/git/t/t4018/css-common b/third_party/git/t/t4018/css-common
new file mode 100644
index 000000000000..84ed754b33b6
--- /dev/null
+++ b/third_party/git/t/t4018/css-common
@@ -0,0 +1,4 @@
+RIGHT label.control-label {
+    margin-top: 10px!important;
+    border : 10px ChangeMe #C6C6C6;
+}
diff --git a/third_party/git/t/t4018/css-long-selector-list b/third_party/git/t/t4018/css-long-selector-list
new file mode 100644
index 000000000000..7ccd25d9ed62
--- /dev/null
+++ b/third_party/git/t/t4018/css-long-selector-list
@@ -0,0 +1,6 @@
+p.header,
+label.control-label,
+div ul#RIGHT {
+    margin-top: 10px!important;
+    border : 10px ChangeMe #C6C6C6;
+}
diff --git a/third_party/git/t/t4018/css-prop-sans-indent b/third_party/git/t/t4018/css-prop-sans-indent
new file mode 100644
index 000000000000..a9e3c86b3c96
--- /dev/null
+++ b/third_party/git/t/t4018/css-prop-sans-indent
@@ -0,0 +1,5 @@
+RIGHT, label.control-label {
+margin-top: 10px!important;
+padding: 0;
+border : 10px ChangeMe #C6C6C6;
+}
diff --git a/third_party/git/t/t4018/css-short-selector-list b/third_party/git/t/t4018/css-short-selector-list
new file mode 100644
index 000000000000..6a0bdee336b0
--- /dev/null
+++ b/third_party/git/t/t4018/css-short-selector-list
@@ -0,0 +1,4 @@
+label.control, div ul#RIGHT {
+    margin-top: 10px!important;
+    border : 10px ChangeMe #C6C6C6;
+}
diff --git a/third_party/git/t/t4018/css-trailing-space b/third_party/git/t/t4018/css-trailing-space
new file mode 100644
index 000000000000..32b5606c70f7
--- /dev/null
+++ b/third_party/git/t/t4018/css-trailing-space
@@ -0,0 +1,5 @@
+RIGHT label.control-label {
+    margin:10px;   
+    padding:10px;
+    border : 10px ChangeMe #C6C6C6;
+}
diff --git a/third_party/git/t/t4018/custom1-pattern b/third_party/git/t/t4018/custom1-pattern
new file mode 100644
index 000000000000..e8fd59f884d9
--- /dev/null
+++ b/third_party/git/t/t4018/custom1-pattern
@@ -0,0 +1,17 @@
+public class Beer
+{
+	int special, RIGHT;
+	public static void main(String args[])
+	{
+		String s=" ";
+		for(int x = 99; x > 0; x--)
+		{
+			System.out.print(x + " bottles of beer on the wall "
+				+ x + " bottles of beer\n" // ChangeMe
+				+ "Take one down, pass it around, " + (x - 1)
+				+ " bottles of beer on the wall.\n");
+		}
+		System.out.print("Go to the store, buy some more,\n"
+			+ "99 bottles of beer on the wall.\n");
+	}
+}
diff --git a/third_party/git/t/t4018/custom2-match-to-end-of-line b/third_party/git/t/t4018/custom2-match-to-end-of-line
new file mode 100644
index 000000000000..f88ac318b796
--- /dev/null
+++ b/third_party/git/t/t4018/custom2-match-to-end-of-line
@@ -0,0 +1,8 @@
+public class RIGHT_Beer
+{
+	int special;
+	public static void main(String args[])
+	{
+		System.out.print("ChangeMe");
+	}
+}
diff --git a/third_party/git/t/t4018/custom3-alternation-in-pattern b/third_party/git/t/t4018/custom3-alternation-in-pattern
new file mode 100644
index 000000000000..5f3769c64fc3
--- /dev/null
+++ b/third_party/git/t/t4018/custom3-alternation-in-pattern
@@ -0,0 +1,17 @@
+public class Beer
+{
+	int special;
+	public static void main(String RIGHT[])
+	{
+		String s=" ";
+		for(int x = 99; x > 0; x--)
+		{
+			System.out.print(x + " bottles of beer on the wall "
+				+ x + " bottles of beer\n" // ChangeMe
+				+ "Take one down, pass it around, " + (x - 1)
+				+ " bottles of beer on the wall.\n");
+		}
+		System.out.print("Go to the store, buy some more,\n"
+			+ "99 bottles of beer on the wall.\n");
+	}
+}
diff --git a/third_party/git/t/t4018/dts-labels b/third_party/git/t/t4018/dts-labels
new file mode 100644
index 000000000000..b21ef8737bb8
--- /dev/null
+++ b/third_party/git/t/t4018/dts-labels
@@ -0,0 +1,9 @@
+/ {
+	label_1: node1@ff00 {
+		label2: RIGHT {
+			vendor,some-property;
+
+			ChangeMe = <0x45-30>;
+		};
+	};
+};
diff --git a/third_party/git/t/t4018/dts-node-unitless b/third_party/git/t/t4018/dts-node-unitless
new file mode 100644
index 000000000000..c5287d91416e
--- /dev/null
+++ b/third_party/git/t/t4018/dts-node-unitless
@@ -0,0 +1,8 @@
+/ {
+	label_1: node1 {
+		RIGHT {
+			prop-array = <1>, <4>;
+			ChangeMe = <0xffeedd00>;
+		};
+	};
+};
diff --git a/third_party/git/t/t4018/dts-nodes b/third_party/git/t/t4018/dts-nodes
new file mode 100644
index 000000000000..5a4334bb1645
--- /dev/null
+++ b/third_party/git/t/t4018/dts-nodes
@@ -0,0 +1,8 @@
+/ {
+	label_1: node1@ff00 {
+		RIGHT@deadf00,4000 {
+			#size-cells = <1>;
+			ChangeMe = <0xffeedd00>;
+		};
+	};
+};
diff --git a/third_party/git/t/t4018/dts-nodes-boolean-prop b/third_party/git/t/t4018/dts-nodes-boolean-prop
new file mode 100644
index 000000000000..afc6b5b404e4
--- /dev/null
+++ b/third_party/git/t/t4018/dts-nodes-boolean-prop
@@ -0,0 +1,9 @@
+/ {
+	label_1: node1@ff00 {
+		RIGHT@deadf00,4000 {
+			boolean-prop1;
+
+			ChangeMe;
+		};
+	};
+};
diff --git a/third_party/git/t/t4018/dts-nodes-comment1 b/third_party/git/t/t4018/dts-nodes-comment1
new file mode 100644
index 000000000000..559dfce9b308
--- /dev/null
+++ b/third_party/git/t/t4018/dts-nodes-comment1
@@ -0,0 +1,8 @@
+/ {
+	label_1: node1@ff00 {
+		RIGHT@deadf00,4000 /* &a comment */ {
+			#size-cells = <1>;
+			ChangeMe = <0xffeedd00>;
+		};
+	};
+};
diff --git a/third_party/git/t/t4018/dts-nodes-comment2 b/third_party/git/t/t4018/dts-nodes-comment2
new file mode 100644
index 000000000000..27e9718b31cf
--- /dev/null
+++ b/third_party/git/t/t4018/dts-nodes-comment2
@@ -0,0 +1,8 @@
+/ {
+	label_1: node1@ff00 {
+		RIGHT@deadf00,4000 { /* a trailing comment */ 
+			#size-cells = <1>;
+			ChangeMe = <0xffeedd00>;
+		};
+	};
+};
diff --git a/third_party/git/t/t4018/dts-nodes-multiline-prop b/third_party/git/t/t4018/dts-nodes-multiline-prop
new file mode 100644
index 000000000000..072d58b69dc2
--- /dev/null
+++ b/third_party/git/t/t4018/dts-nodes-multiline-prop
@@ -0,0 +1,13 @@
+/ {
+	label_1: node1@ff00 {
+		RIGHT@deadf00,4000 {
+			multilineprop = <3>,
+					<4>,
+					<5>,
+					<6>,
+					<7>;
+
+			ChangeMe = <0xffeedd00>;
+		};
+	};
+};
diff --git a/third_party/git/t/t4018/dts-reference b/third_party/git/t/t4018/dts-reference
new file mode 100644
index 000000000000..8f0c87d8637f
--- /dev/null
+++ b/third_party/git/t/t4018/dts-reference
@@ -0,0 +1,9 @@
+&label_1 {
+	TEST = <455>;
+};
+
+&RIGHT {
+	vendor,some-property;
+
+	ChangeMe = <0x45-30>;
+};
diff --git a/third_party/git/t/t4018/dts-root b/third_party/git/t/t4018/dts-root
new file mode 100644
index 000000000000..4353b8220c91
--- /dev/null
+++ b/third_party/git/t/t4018/dts-root
@@ -0,0 +1,5 @@
+/ { RIGHT /* Technically just supposed to be a slash and brace */
+	#size-cells = <1>;
+
+	ChangeMe = <0xffeedd00>;
+};
diff --git a/third_party/git/t/t4018/dts-root-comment b/third_party/git/t/t4018/dts-root-comment
new file mode 100644
index 000000000000..333a625c7007
--- /dev/null
+++ b/third_party/git/t/t4018/dts-root-comment
@@ -0,0 +1,8 @@
+/ { RIGHT /* Technically just supposed to be a slash and brace */
+	#size-cells = <1>;
+
+	/* This comment should be ignored */
+
+	some-property = <40+2>;
+	ChangeMe = <0xffeedd00>;
+};
diff --git a/third_party/git/t/t4018/elixir-do-not-pick-end b/third_party/git/t/t4018/elixir-do-not-pick-end
new file mode 100644
index 000000000000..fae08ba7e8cb
--- /dev/null
+++ b/third_party/git/t/t4018/elixir-do-not-pick-end
@@ -0,0 +1,5 @@
+defmodule RIGHT do
+end
+#
+#
+# ChangeMe; do not pick up 'end' line
diff --git a/third_party/git/t/t4018/elixir-ex-unit-test b/third_party/git/t/t4018/elixir-ex-unit-test
new file mode 100644
index 000000000000..0560a2b69718
--- /dev/null
+++ b/third_party/git/t/t4018/elixir-ex-unit-test
@@ -0,0 +1,6 @@
+defmodule Test do
+  test "RIGHT" do
+    assert true == true
+    assert ChangeMe
+  end
+end
diff --git a/third_party/git/t/t4018/elixir-function b/third_party/git/t/t4018/elixir-function
new file mode 100644
index 000000000000..d452f495a7e0
--- /dev/null
+++ b/third_party/git/t/t4018/elixir-function
@@ -0,0 +1,5 @@
+def function(RIGHT, arg) do
+  # comment
+  # comment
+  ChangeMe
+end
diff --git a/third_party/git/t/t4018/elixir-macro b/third_party/git/t/t4018/elixir-macro
new file mode 100644
index 000000000000..4f925e9ad463
--- /dev/null
+++ b/third_party/git/t/t4018/elixir-macro
@@ -0,0 +1,5 @@
+defmacro foo(RIGHT) do
+  # Code
+  # Code
+  ChangeMe
+end
diff --git a/third_party/git/t/t4018/elixir-module b/third_party/git/t/t4018/elixir-module
new file mode 100644
index 000000000000..91a4e7aa2000
--- /dev/null
+++ b/third_party/git/t/t4018/elixir-module
@@ -0,0 +1,9 @@
+defmodule RIGHT do
+  @moduledoc """
+  Foo bar
+  """
+
+  def ChangeMe(a) where is_map(a) do
+    a
+  end
+end
diff --git a/third_party/git/t/t4018/elixir-module-func b/third_party/git/t/t4018/elixir-module-func
new file mode 100644
index 000000000000..c9910d067513
--- /dev/null
+++ b/third_party/git/t/t4018/elixir-module-func
@@ -0,0 +1,8 @@
+defmodule Foo do
+  def fun(RIGHT) do
+     # Code
+     # Code
+     # Code
+     ChangeMe
+  end
+end
diff --git a/third_party/git/t/t4018/elixir-nested-module b/third_party/git/t/t4018/elixir-nested-module
new file mode 100644
index 000000000000..771ebc5c42a9
--- /dev/null
+++ b/third_party/git/t/t4018/elixir-nested-module
@@ -0,0 +1,9 @@
+defmodule MyApp.RIGHT do
+  @moduledoc """
+  Foo bar
+  """
+
+  def ChangeMe(a) where is_map(a) do
+    a
+  end
+end
diff --git a/third_party/git/t/t4018/elixir-private-function b/third_party/git/t/t4018/elixir-private-function
new file mode 100644
index 000000000000..1aabe33b7a9a
--- /dev/null
+++ b/third_party/git/t/t4018/elixir-private-function
@@ -0,0 +1,5 @@
+defp function(RIGHT, arg) do
+  # comment
+  # comment
+  ChangeMe
+end
diff --git a/third_party/git/t/t4018/elixir-protocol b/third_party/git/t/t4018/elixir-protocol
new file mode 100644
index 000000000000..7d9173691e32
--- /dev/null
+++ b/third_party/git/t/t4018/elixir-protocol
@@ -0,0 +1,6 @@
+defprotocol RIGHT do
+  @doc """
+  Calculates the size (and not the length!) of a data structure
+  """
+  def size(data, ChangeMe)
+end
diff --git a/third_party/git/t/t4018/elixir-protocol-implementation b/third_party/git/t/t4018/elixir-protocol-implementation
new file mode 100644
index 000000000000..f9234bbfc489
--- /dev/null
+++ b/third_party/git/t/t4018/elixir-protocol-implementation
@@ -0,0 +1,5 @@
+defimpl RIGHT do
+  # Docs
+  # Docs
+  def foo(ChangeMe), do: :ok
+end
diff --git a/third_party/git/t/t4018/fountain-scene b/third_party/git/t/t4018/fountain-scene
new file mode 100644
index 000000000000..6b3257d68038
--- /dev/null
+++ b/third_party/git/t/t4018/fountain-scene
@@ -0,0 +1,4 @@
+EXT. STREET RIGHT OUTSIDE - DAY
+
+CHARACTER
+You didn't say the magic phrase, "ChangeMe".
diff --git a/third_party/git/t/t4018/golang-complex-function b/third_party/git/t/t4018/golang-complex-function
new file mode 100644
index 000000000000..e057dcefed6a
--- /dev/null
+++ b/third_party/git/t/t4018/golang-complex-function
@@ -0,0 +1,8 @@
+type Test struct {
+	a Type
+}
+
+func (t *Test) RIGHT(a Type) (Type, error) {
+	t.a = a
+	return ChangeMe, nil
+}
diff --git a/third_party/git/t/t4018/golang-func b/third_party/git/t/t4018/golang-func
new file mode 100644
index 000000000000..8e9c9ac7c3fd
--- /dev/null
+++ b/third_party/git/t/t4018/golang-func
@@ -0,0 +1,4 @@
+func RIGHT() {
+	a := 5
+	b := ChangeMe
+}
diff --git a/third_party/git/t/t4018/golang-interface b/third_party/git/t/t4018/golang-interface
new file mode 100644
index 000000000000..553bedec9628
--- /dev/null
+++ b/third_party/git/t/t4018/golang-interface
@@ -0,0 +1,4 @@
+type RIGHT interface {
+	a() Type
+	b() ChangeMe
+}
diff --git a/third_party/git/t/t4018/golang-long-func b/third_party/git/t/t4018/golang-long-func
new file mode 100644
index 000000000000..ac3a77b5c41f
--- /dev/null
+++ b/third_party/git/t/t4018/golang-long-func
@@ -0,0 +1,5 @@
+func RIGHT(aVeryVeryVeryLongVariableName AVeryVeryVeryLongType,
+	anotherLongVariableName AnotherLongType) {
+	a := 5
+	b := ChangeMe
+}
diff --git a/third_party/git/t/t4018/golang-struct b/third_party/git/t/t4018/golang-struct
new file mode 100644
index 000000000000..5deda77feec7
--- /dev/null
+++ b/third_party/git/t/t4018/golang-struct
@@ -0,0 +1,4 @@
+type RIGHT struct {
+	a Type
+	b ChangeMe
+}
diff --git a/third_party/git/t/t4018/java-class-member-function b/third_party/git/t/t4018/java-class-member-function
new file mode 100644
index 000000000000..298bc7a71b29
--- /dev/null
+++ b/third_party/git/t/t4018/java-class-member-function
@@ -0,0 +1,8 @@
+public class Beer
+{
+	int special;
+	public static void main(String RIGHT[])
+	{
+		System.out.print("ChangeMe");
+	}
+}
diff --git a/third_party/git/t/t4018/matlab-class-definition b/third_party/git/t/t4018/matlab-class-definition
new file mode 100644
index 000000000000..84daedfb4e5e
--- /dev/null
+++ b/third_party/git/t/t4018/matlab-class-definition
@@ -0,0 +1,5 @@
+classdef RIGHT
+    properties
+        ChangeMe
+    end
+end
diff --git a/third_party/git/t/t4018/matlab-function b/third_party/git/t/t4018/matlab-function
new file mode 100644
index 000000000000..897a9b13ff41
--- /dev/null
+++ b/third_party/git/t/t4018/matlab-function
@@ -0,0 +1,4 @@
+function y = RIGHT()
+x = 5;
+y = ChangeMe + x;
+end
diff --git a/third_party/git/t/t4018/matlab-octave-section-1 b/third_party/git/t/t4018/matlab-octave-section-1
new file mode 100644
index 000000000000..3bb6c4670e26
--- /dev/null
+++ b/third_party/git/t/t4018/matlab-octave-section-1
@@ -0,0 +1,3 @@
+%%% RIGHT section
+# this is octave script
+ChangeMe = 1;
diff --git a/third_party/git/t/t4018/matlab-octave-section-2 b/third_party/git/t/t4018/matlab-octave-section-2
new file mode 100644
index 000000000000..ab2980f7f29f
--- /dev/null
+++ b/third_party/git/t/t4018/matlab-octave-section-2
@@ -0,0 +1,3 @@
+## RIGHT section
+# this is octave script
+ChangeMe = 1;
diff --git a/third_party/git/t/t4018/matlab-section b/third_party/git/t/t4018/matlab-section
new file mode 100644
index 000000000000..5ea59a5de009
--- /dev/null
+++ b/third_party/git/t/t4018/matlab-section
@@ -0,0 +1,3 @@
+%% RIGHT section
+% this is understood by both matlab and octave
+ChangeMe = 1;
diff --git a/third_party/git/t/t4018/perl-skip-end-of-heredoc b/third_party/git/t/t4018/perl-skip-end-of-heredoc
new file mode 100644
index 000000000000..c22d39b25670
--- /dev/null
+++ b/third_party/git/t/t4018/perl-skip-end-of-heredoc
@@ -0,0 +1,8 @@
+sub RIGHTwithheredocument {
+	print <<"EOF"
+decoy here-doc
+EOF
+	# some lines of context
+	# to pad it out
+	print "ChangeMe\n";
+}
diff --git a/third_party/git/t/t4018/perl-skip-forward-decl b/third_party/git/t/t4018/perl-skip-forward-decl
new file mode 100644
index 000000000000..a98cb8bdad0b
--- /dev/null
+++ b/third_party/git/t/t4018/perl-skip-forward-decl
@@ -0,0 +1,10 @@
+package RIGHT;
+
+use strict;
+use warnings;
+use parent qw(Exporter);
+our @EXPORT_OK = qw(round finalround);
+
+sub other; # forward declaration
+
+# ChangeMe
diff --git a/third_party/git/t/t4018/perl-skip-sub-in-pod b/third_party/git/t/t4018/perl-skip-sub-in-pod
new file mode 100644
index 000000000000..e39f02462e27
--- /dev/null
+++ b/third_party/git/t/t4018/perl-skip-sub-in-pod
@@ -0,0 +1,18 @@
+=head1 NAME
+
+Beer - subroutine to output fragment of a drinking song
+
+=head1 SYNOPSIS_RIGHT
+
+	use Beer qw(round finalround);
+
+	sub song {
+		for (my $i = 99; $i > 0; $i--) {
+			round $i;
+		}
+		finalround;
+	}
+
+	ChangeMe;
+
+=cut
diff --git a/third_party/git/t/t4018/perl-sub-definition b/third_party/git/t/t4018/perl-sub-definition
new file mode 100644
index 000000000000..a507d1f64525
--- /dev/null
+++ b/third_party/git/t/t4018/perl-sub-definition
@@ -0,0 +1,4 @@
+sub RIGHT {
+	my ($n) = @_;
+	print "ChangeMe";
+}
diff --git a/third_party/git/t/t4018/perl-sub-definition-kr-brace b/third_party/git/t/t4018/perl-sub-definition-kr-brace
new file mode 100644
index 000000000000..330b3df1142a
--- /dev/null
+++ b/third_party/git/t/t4018/perl-sub-definition-kr-brace
@@ -0,0 +1,4 @@
+sub RIGHT
+{
+	print "ChangeMe\n";
+}
diff --git a/third_party/git/t/t4018/php-abstract-class b/third_party/git/t/t4018/php-abstract-class
new file mode 100644
index 000000000000..5213e1249465
--- /dev/null
+++ b/third_party/git/t/t4018/php-abstract-class
@@ -0,0 +1,4 @@
+abstract class RIGHT
+{
+    const FOO = 'ChangeMe';
+}
diff --git a/third_party/git/t/t4018/php-class b/third_party/git/t/t4018/php-class
new file mode 100644
index 000000000000..7785b6303c7c
--- /dev/null
+++ b/third_party/git/t/t4018/php-class
@@ -0,0 +1,4 @@
+class RIGHT
+{
+    const FOO = 'ChangeMe';
+}
diff --git a/third_party/git/t/t4018/php-final-class b/third_party/git/t/t4018/php-final-class
new file mode 100644
index 000000000000..69f571055291
--- /dev/null
+++ b/third_party/git/t/t4018/php-final-class
@@ -0,0 +1,4 @@
+final class RIGHT
+{
+    const FOO = 'ChangeMe';
+}
diff --git a/third_party/git/t/t4018/php-function b/third_party/git/t/t4018/php-function
new file mode 100644
index 000000000000..35717c51c3b9
--- /dev/null
+++ b/third_party/git/t/t4018/php-function
@@ -0,0 +1,4 @@
+function RIGHT()
+{
+    return 'ChangeMe';
+}
diff --git a/third_party/git/t/t4018/php-interface b/third_party/git/t/t4018/php-interface
new file mode 100644
index 000000000000..86b49ad5d9e3
--- /dev/null
+++ b/third_party/git/t/t4018/php-interface
@@ -0,0 +1,4 @@
+interface RIGHT
+{
+    public function foo($ChangeMe);
+}
diff --git a/third_party/git/t/t4018/php-method b/third_party/git/t/t4018/php-method
new file mode 100644
index 000000000000..03af1a6d9d7e
--- /dev/null
+++ b/third_party/git/t/t4018/php-method
@@ -0,0 +1,7 @@
+class Klass
+{
+    public static function RIGHT()
+    {
+        return 'ChangeMe';
+    }
+}
diff --git a/third_party/git/t/t4018/php-trait b/third_party/git/t/t4018/php-trait
new file mode 100644
index 000000000000..65b8c82a6163
--- /dev/null
+++ b/third_party/git/t/t4018/php-trait
@@ -0,0 +1,7 @@
+trait RIGHT
+{
+    public function foo($ChangeMe)
+    {
+        return 'foo';
+    }
+}
diff --git a/third_party/git/t/t4018/python-async-def b/third_party/git/t/t4018/python-async-def
new file mode 100644
index 000000000000..87640e03d213
--- /dev/null
+++ b/third_party/git/t/t4018/python-async-def
@@ -0,0 +1,4 @@
+async def RIGHT(pi: int = 3.14):
+    while True:
+        break
+    return ChangeMe()
diff --git a/third_party/git/t/t4018/python-class b/third_party/git/t/t4018/python-class
new file mode 100644
index 000000000000..ba9e741430f2
--- /dev/null
+++ b/third_party/git/t/t4018/python-class
@@ -0,0 +1,4 @@
+class RIGHT(int, str):
+    # comment
+    # another comment
+    # ChangeMe
diff --git a/third_party/git/t/t4018/python-def b/third_party/git/t/t4018/python-def
new file mode 100644
index 000000000000..e50b31b0ad5e
--- /dev/null
+++ b/third_party/git/t/t4018/python-def
@@ -0,0 +1,4 @@
+def RIGHT(pi: int = 3.14):
+    while True:
+        break
+    return ChangeMe()
diff --git a/third_party/git/t/t4018/python-indented-async-def b/third_party/git/t/t4018/python-indented-async-def
new file mode 100644
index 000000000000..f5d03258af4d
--- /dev/null
+++ b/third_party/git/t/t4018/python-indented-async-def
@@ -0,0 +1,7 @@
+class Foo:
+    async def RIGHT(self, x: int):
+        return [
+            1,
+            2,
+            ChangeMe,
+        ]
diff --git a/third_party/git/t/t4018/python-indented-class b/third_party/git/t/t4018/python-indented-class
new file mode 100644
index 000000000000..19b4f35c4ca1
--- /dev/null
+++ b/third_party/git/t/t4018/python-indented-class
@@ -0,0 +1,5 @@
+if TYPE_CHECKING:
+    class RIGHT:
+        # comment
+        # another comment
+        # ChangeMe
diff --git a/third_party/git/t/t4018/python-indented-def b/third_party/git/t/t4018/python-indented-def
new file mode 100644
index 000000000000..208fbadd2be6
--- /dev/null
+++ b/third_party/git/t/t4018/python-indented-def
@@ -0,0 +1,7 @@
+class Foo:
+    def RIGHT(self, x: int):
+        return [
+            1,
+            2,
+            ChangeMe,
+        ]
diff --git a/third_party/git/t/t4018/rust-fn b/third_party/git/t/t4018/rust-fn
new file mode 100644
index 000000000000..cbe02155f113
--- /dev/null
+++ b/third_party/git/t/t4018/rust-fn
@@ -0,0 +1,5 @@
+pub(self) fn RIGHT<T>(x: &[T]) where T: Debug {
+    let _ = x;
+    // a comment
+    let a = ChangeMe;
+}
diff --git a/third_party/git/t/t4018/rust-impl b/third_party/git/t/t4018/rust-impl
new file mode 100644
index 000000000000..09df3cd93b21
--- /dev/null
+++ b/third_party/git/t/t4018/rust-impl
@@ -0,0 +1,5 @@
+impl<'a, T: AsRef<[u8]>>  std::RIGHT for Git<'a> {
+
+    pub fn ChangeMe(&self) -> () {
+    }
+}
diff --git a/third_party/git/t/t4018/rust-struct b/third_party/git/t/t4018/rust-struct
new file mode 100644
index 000000000000..76aff1c0d8ef
--- /dev/null
+++ b/third_party/git/t/t4018/rust-struct
@@ -0,0 +1,5 @@
+#[derive(Debug)]
+pub(super) struct RIGHT<'a> {
+    name: &'a str,
+    age: ChangeMe,
+}
diff --git a/third_party/git/t/t4018/rust-trait b/third_party/git/t/t4018/rust-trait
new file mode 100644
index 000000000000..ea397f09ed16
--- /dev/null
+++ b/third_party/git/t/t4018/rust-trait
@@ -0,0 +1,5 @@
+unsafe trait RIGHT<T> {
+    fn len(&self) -> u32;
+    fn ChangeMe(&self, n: u32) -> T;
+    fn iter<F>(&self, f: F) where F: Fn(T);
+}