summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLibravatar Javier Spagnoletti <phansys@gmail.com>2020-10-07 03:38:18 +0000
committerLibravatar Junio C Hamano <gitster@pobox.com>2020-10-07 08:45:43 -0700
commitaff92827b54f4b7f9e339982a49bab4bdbd1fc55 (patch)
tree1a777dafd9e8822a4745b04547606569ef6226d8
parentGit 2.29-rc0 (diff)
downloadtgif-aff92827b54f4b7f9e339982a49bab4bdbd1fc55.tar.xz
userdiff: PHP: catch "abstract" and "final" functions
PHP permits functions to be defined like final public function foo() { } abstract protected function bar() { } but our hunk header pattern does not recognize these decorations. Add "final" and "abstract" to the list of function modifiers. Helped-by: Johannes Sixt <j6t@kdbg.org> Signed-off-by: Javier Spagnoletti <phansys@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r--t/t4018/php-abstract-method7
-rw-r--r--t/t4018/php-final-method7
-rw-r--r--userdiff.c2
3 files changed, 15 insertions, 1 deletions
diff --git a/t/t4018/php-abstract-method b/t/t4018/php-abstract-method
new file mode 100644
index 0000000000..ce215df75a
--- /dev/null
+++ b/t/t4018/php-abstract-method
@@ -0,0 +1,7 @@
+abstract class Klass
+{
+ abstract public function RIGHT(): ?string
+ {
+ return 'ChangeMe';
+ }
+}
diff --git a/t/t4018/php-final-method b/t/t4018/php-final-method
new file mode 100644
index 0000000000..537fb8ad9a
--- /dev/null
+++ b/t/t4018/php-final-method
@@ -0,0 +1,7 @@
+class Klass
+{
+ final public function RIGHT(): string
+ {
+ return 'ChangeMe';
+ }
+}
diff --git a/userdiff.c b/userdiff.c
index fde02f225b..4e2b55a5e0 100644
--- a/userdiff.c
+++ b/userdiff.c
@@ -147,7 +147,7 @@ PATTERNS("perl",
"|=~|!~"
"|<<|<>|<=>|>>"),
PATTERNS("php",
- "^[\t ]*(((public|protected|private|static)[\t ]+)*function.*)$\n"
+ "^[\t ]*(((public|protected|private|static|abstract|final)[\t ]+)*function.*)$\n"
"^[\t ]*((((final|abstract)[\t ]+)?class|interface|trait).*)$",
/* -- */
"[a-zA-Z_][a-zA-Z0-9_]*"