Browse Source
Currently, the git diff hunk headers show the wrong method signature if the method has a qualified return type, an array return type, or a generic return type because the regex doesn't allow dots (.), [], or < and > in the return type. Also, type parameter declarations couldn't be matched. Add several t4018 tests asserting the right hunk headers for different cases: - enum constant change - change in generic method with bounded type parameters - change in generic method with wildcard - field change in a nested class Signed-off-by: Tassilo Horn <tsdh@gnu.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>maint


6 changed files with 39 additions and 1 deletions
@ -0,0 +1,6 @@ |
|||||||
|
private enum RIGHT { |
||||||
|
ONE, |
||||||
|
TWO, |
||||||
|
THREE, |
||||||
|
ChangeMe |
||||||
|
} |
@ -0,0 +1,9 @@ |
|||||||
|
class MyExample { |
||||||
|
public <T extends Bar & Foo<T>, R> Map<T, R[]> foo(String[] RIGHT) { |
||||||
|
someMethodCall(); |
||||||
|
someOtherMethod() |
||||||
|
.doThat(); |
||||||
|
// Whatever... |
||||||
|
return (List<T>) Arrays.asList("ChangeMe"); |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,9 @@ |
|||||||
|
class MyExample { |
||||||
|
public List<? extends Comparable> foo(String[] RIGHT) { |
||||||
|
someMethodCall(); |
||||||
|
someOtherMethod() |
||||||
|
.doThat(); |
||||||
|
// Whatever... |
||||||
|
return Arrays.asList("ChangeMe"); |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,6 @@ |
|||||||
|
class MyExample { |
||||||
|
private static class RIGHT { |
||||||
|
// change an inner class field |
||||||
|
String inner = "ChangeMe"; |
||||||
|
} |
||||||
|
} |
Loading…
Reference in new issue