diff --git a/src/Language/Go.hs b/src/Language/Go.hs index 62407584f..100608d42 100644 --- a/src/Language/Go.hs +++ b/src/Language/Go.hs @@ -40,6 +40,7 @@ termConstructor source sourceSpan name range children = case (name, children) of withDefaultInfo $ S.VarAssignment identifier' exprs _ -> withCategory Error (S.Error [varSpec]) withDefaultInfo $ S.VarDecl assignment' + ("call_expression", [id]) -> withDefaultInfo $ S.FunctionCall id [] (_, []) -> withDefaultInfo . S.Leaf $ toText (slice range source) _ -> withDefaultInfo $ S.Indexed children where diff --git a/test/corpus/diff-summaries/go/assignment.json b/test/corpus/diff-summaries/go/assignment.json index a3bd3cc6b..bb8dd5d76 100644 --- a/test/corpus/diff-summaries/go/assignment.json +++ b/test/corpus/diff-summaries/go/assignment.json @@ -3,6 +3,52 @@ "expectedResult": { "changes": { "assignment.go": [ + { + "span": { + "insert": { + "start": [ + 3, + 1 + ], + "end": [ + 3, + 17 + ] + } + }, + "summary": "Added the 'foo' variable" + } + ] + }, + "errors": {} + }, + "filePaths": [ + "assignment.go" + ], + "sha1": "582a80bbfeebb20dc528c5d5dd913c5616cdff63", + "gitDir": "test/corpus/repos/go", + "sha2": "ce3eb61f573f5a7fe1caa454548166cc31d12f3b" +} +,{ + "testCaseDescription": "go-assignment-replacement-insert-test", + "expectedResult": { + "changes": { + "assignment.go": [ + { + "span": { + "insert": { + "start": [ + 3, + 1 + ], + "end": [ + 3, + 25 + ] + } + }, + "summary": "Added the 'bar' variable" + }, { "span": { "insert": { @@ -25,40 +71,9 @@ "filePaths": [ "assignment.go" ], - "sha1": "78d912e517fdbf5bf094f2eb42416144c7bd6ba9", + "sha1": "ce3eb61f573f5a7fe1caa454548166cc31d12f3b", "gitDir": "test/corpus/repos/go", - "sha2": "ff2abe6f392b3a3f417414c99e0a7811141099a9" -} -,{ - "testCaseDescription": "go-assignment-replacement-insert-test", - "expectedResult": { - "changes": { - "assignment.go": [ - { - "span": { - "insert": { - "start": [ - 3, - 1 - ], - "end": [ - 3, - 25 - ] - } - }, - "summary": "Added the 'bar' variable" - } - ] - }, - "errors": {} - }, - "filePaths": [ - "assignment.go" - ], - "sha1": "ff2abe6f392b3a3f417414c99e0a7811141099a9", - "gitDir": "test/corpus/repos/go", - "sha2": "df134e07646f72dc3ff1ec894939535affd3092e" + "sha2": "61a954ded45fc9e72d04ed6f4735fa32fcd8fab5" } ,{ "testCaseDescription": "go-assignment-delete-insert-test", @@ -129,9 +144,9 @@ "filePaths": [ "assignment.go" ], - "sha1": "df134e07646f72dc3ff1ec894939535affd3092e", + "sha1": "61a954ded45fc9e72d04ed6f4735fa32fcd8fab5", "gitDir": "test/corpus/repos/go", - "sha2": "49901a2846858582a91f28591f7967dd204393af" + "sha2": "43c4dff47db90e11a09449ddaf178b0934537699" } ,{ "testCaseDescription": "go-assignment-replacement-test", @@ -202,9 +217,9 @@ "filePaths": [ "assignment.go" ], - "sha1": "49901a2846858582a91f28591f7967dd204393af", + "sha1": "43c4dff47db90e11a09449ddaf178b0934537699", "gitDir": "test/corpus/repos/go", - "sha2": "72213d2d55fa6da918d3cc41fbdbd2086c189475" + "sha2": "666700adb23c91a72262f061316ad818c0fa9db1" } ,{ "testCaseDescription": "go-assignment-delete-replacement-test", @@ -263,9 +278,9 @@ "filePaths": [ "assignment.go" ], - "sha1": "72213d2d55fa6da918d3cc41fbdbd2086c189475", + "sha1": "666700adb23c91a72262f061316ad818c0fa9db1", "gitDir": "test/corpus/repos/go", - "sha2": "575d58f20f3db393100c105c4da36ae6b0241450" + "sha2": "daa3d539ef1783cbf4184afa0d8f960d10dcad97" } ,{ "testCaseDescription": "go-assignment-delete-test", @@ -294,9 +309,9 @@ "filePaths": [ "assignment.go" ], - "sha1": "575d58f20f3db393100c105c4da36ae6b0241450", + "sha1": "daa3d539ef1783cbf4184afa0d8f960d10dcad97", "gitDir": "test/corpus/repos/go", - "sha2": "b9de00e181133fbf542d11d16422e766b5a13cb9" + "sha2": "e671e9f6f4fce4d324c5810c6abb5548305e732e" } ,{ "testCaseDescription": "go-assignment-delete-rest-test", @@ -325,7 +340,7 @@ "filePaths": [ "assignment.go" ], - "sha1": "b9de00e181133fbf542d11d16422e766b5a13cb9", + "sha1": "e671e9f6f4fce4d324c5810c6abb5548305e732e", "gitDir": "test/corpus/repos/go", - "sha2": "731af5545c9fec2ed851817a3f6212443652b27c" + "sha2": "12c47b44d2e91782a6f049e094c836b5415aed72" }] diff --git a/test/corpus/diff-summaries/go/function-call.json b/test/corpus/diff-summaries/go/function-call.json new file mode 100644 index 000000000..1fde81ba5 --- /dev/null +++ b/test/corpus/diff-summaries/go/function-call.json @@ -0,0 +1,295 @@ +[{ + "testCaseDescription": "go-function call-insert-test", + "expectedResult": { + "changes": { + "function-call.go": [ + { + "span": { + "insert": { + "start": [ + 3, + 1 + ], + "end": [ + 3, + 4 + ] + } + }, + "summary": "Added the 'a()' function call" + } + ] + }, + "errors": {} + }, + "filePaths": [ + "function-call.go" + ], + "sha1": "12c47b44d2e91782a6f049e094c836b5415aed72", + "gitDir": "test/corpus/repos/go", + "sha2": "860ccbe1c3bdeb0c47e32a8e90fa181a9a1cc149" +} +,{ + "testCaseDescription": "go-function call-replacement-insert-test", + "expectedResult": { + "changes": { + "function-call.go": [ + { + "span": { + "replace": [ + { + "start": [ + 1, + 1 + ], + "end": [ + 4, + 1 + ] + }, + { + "start": [ + 1, + 1 + ], + "end": [ + 1, + 13 + ] + } + ] + }, + "summary": "Replaced the 'main' module statement with the 'main' module statement" + } + ] + }, + "errors": {} + }, + "filePaths": [ + "function-call.go" + ], + "sha1": "860ccbe1c3bdeb0c47e32a8e90fa181a9a1cc149", + "gitDir": "test/corpus/repos/go", + "sha2": "04cd5977a1e11d1ccc0c7bb98e3336b35ad8ec0e" +} +,{ + "testCaseDescription": "go-function call-delete-insert-test", + "expectedResult": { + "changes": { + "function-call.go": [ + { + "span": { + "replace": [ + { + "start": [ + 3, + 1 + ], + "end": [ + 3, + 2 + ] + }, + { + "start": [ + 3, + 1 + ], + "end": [ + 3, + 2 + ] + } + ] + }, + "summary": "Replaced the 'b' identifier with the 'a' identifier in the a() function call" + } + ] + }, + "errors": {} + }, + "filePaths": [ + "function-call.go" + ], + "sha1": "04cd5977a1e11d1ccc0c7bb98e3336b35ad8ec0e", + "gitDir": "test/corpus/repos/go", + "sha2": "1256ed562694230c35ae859e74de43be61431232" +} +,{ + "testCaseDescription": "go-function call-replacement-test", + "expectedResult": { + "changes": { + "function-call.go": [ + { + "span": { + "replace": [ + { + "start": [ + 3, + 1 + ], + "end": [ + 3, + 2 + ] + }, + { + "start": [ + 3, + 1 + ], + "end": [ + 3, + 2 + ] + } + ] + }, + "summary": "Replaced the 'a' identifier with the 'b' identifier in the b() function call" + } + ] + }, + "errors": {} + }, + "filePaths": [ + "function-call.go" + ], + "sha1": "1256ed562694230c35ae859e74de43be61431232", + "gitDir": "test/corpus/repos/go", + "sha2": "4ed01c4bcffcdf6103f3449dd11af9e3d13729b1" +} +,{ + "testCaseDescription": "go-function call-delete-replacement-test", + "expectedResult": { + "changes": { + "function-call.go": [ + { + "span": { + "delete": { + "start": [ + 3, + 1 + ], + "end": [ + 3, + 4 + ] + } + }, + "summary": "Deleted the 'b()' function call" + }, + { + "span": { + "delete": { + "start": [ + 4, + 1 + ], + "end": [ + 4, + 4 + ] + } + }, + "summary": "Deleted the 'a()' function call" + }, + { + "span": { + "insert": { + "start": [ + 4, + 1 + ], + "end": [ + 4, + 4 + ] + } + }, + "summary": "Added the 'b()' function call" + } + ] + }, + "errors": {} + }, + "filePaths": [ + "function-call.go" + ], + "sha1": "4ed01c4bcffcdf6103f3449dd11af9e3d13729b1", + "gitDir": "test/corpus/repos/go", + "sha2": "2bf409a84ead1ad41e539e77632caeb2bad6cc7d" +} +,{ + "testCaseDescription": "go-function call-delete-test", + "expectedResult": { + "changes": { + "function-call.go": [ + { + "span": { + "replace": [ + { + "start": [ + 1, + 1 + ], + "end": [ + 1, + 13 + ] + }, + { + "start": [ + 1, + 1 + ], + "end": [ + 4, + 1 + ] + } + ] + }, + "summary": "Replaced the 'main' module statement with the 'main' module statement" + } + ] + }, + "errors": {} + }, + "filePaths": [ + "function-call.go" + ], + "sha1": "2bf409a84ead1ad41e539e77632caeb2bad6cc7d", + "gitDir": "test/corpus/repos/go", + "sha2": "01d6f80865616cf2f9c611e208da3eaa9449dedb" +} +,{ + "testCaseDescription": "go-function call-delete-rest-test", + "expectedResult": { + "changes": { + "function-call.go": [ + { + "span": { + "delete": { + "start": [ + 3, + 1 + ], + "end": [ + 3, + 4 + ] + } + }, + "summary": "Deleted the 'b()' function call" + } + ] + }, + "errors": {} + }, + "filePaths": [ + "function-call.go" + ], + "sha1": "01d6f80865616cf2f9c611e208da3eaa9449dedb", + "gitDir": "test/corpus/repos/go", + "sha2": "1dc12f3dd339cd009052043fcf2d1516d52173a3" +}] diff --git a/test/corpus/generated/go.json b/test/corpus/generated/go.json index c6bfa375f..5b08b75ec 100644 --- a/test/corpus/generated/go.json +++ b/test/corpus/generated/go.json @@ -11,6 +11,13 @@ "insert": "var foo int = 42", "testCaseFilePath": "test/corpus/diff-summaries/go/assignment.json", "replacement": "var bar string = \"hello\"" + }, + { + "syntax": "function call", + "repoFilePath": "function-call.go", + "insert": "a()", + "testCaseFilePath": "test/corpus/diff-summaries/go/function-call.json", + "replacement": "b()" } ] } diff --git a/test/corpus/repos/go b/test/corpus/repos/go index d3fa479c4..1dc12f3dd 160000 --- a/test/corpus/repos/go +++ b/test/corpus/repos/go @@ -1 +1 @@ -Subproject commit d3fa479c4d82673363dbcee77472346afb069504 +Subproject commit 1dc12f3dd339cd009052043fcf2d1516d52173a3