diff options
author | Wilfred Hughes <me@wilfred.me.uk> | 2023-10-26 08:55:43 -0700 |
---|---|---|
committer | Wilfred Hughes <me@wilfred.me.uk> | 2023-10-26 08:56:37 -0700 |
commit | 778a6bee9a82eb6e992ddfc92c5eaf7eae1c1368 (patch) | |
tree | 7c4e6af9ec366806310ef9cd3068a390726caa85 | |
parent | 8400000b3b7e0efd19ff40c1a420dd43c94b9e9c (diff) |
Flatten nullable types in Kotlin
Workaround for #589 and #411
-rw-r--r-- | CHANGELOG.md | 3 | ||||
-rw-r--r-- | sample_files/compare.expected | 5 | ||||
-rw-r--r-- | sample_files/nullable_after.kt | 3 | ||||
-rw-r--r-- | sample_files/nullable_before.kt | 3 | ||||
-rw-r--r-- | src/parse/tree_sitter_parser.rs | 6 |
5 files changed, 17 insertions, 3 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md index 0b876287f..c4f154e64 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,7 +4,8 @@ Added support for SCSS. -Updated the Kotlin parser. +Updated the Kotlin parser and improved handling of Kotlin nullable +types. ### Command Line Interface diff --git a/sample_files/compare.expected b/sample_files/compare.expected index da1665a85..ddb4b1725 100644 --- a/sample_files/compare.expected +++ b/sample_files/compare.expected @@ -1,5 +1,5 @@ sample_files/Session_before.kt sample_files/Session_after.kt -7b0c38d1fcc9b4e20c5fcf0070cb1620 - +80c53658ee849d38f397863803677a02 - sample_files/ada_before.adb sample_files/ada_after.adb 626e22f4f256ae591ece3f280176b3f7 - @@ -151,6 +151,9 @@ sample_files/newick_before.nwk sample_files/newick_after.nwk sample_files/nix_before.nix sample_files/nix_after.nix e00b95a4cf3fa3edf994155d8656063f - +sample_files/nullable_before.kt sample_files/nullable_after.kt +66da628a2c20e18059b8669aaa14a163 - + sample_files/ocaml_before.ml sample_files/ocaml_after.ml 2113c6c7959b8099f678d13953f7f44a - diff --git a/sample_files/nullable_after.kt b/sample_files/nullable_after.kt new file mode 100644 index 000000000..3f5b5d1c9 --- /dev/null +++ b/sample_files/nullable_after.kt @@ -0,0 +1,3 @@ +class Foo { + val str: String +} diff --git a/sample_files/nullable_before.kt b/sample_files/nullable_before.kt new file mode 100644 index 000000000..e345a0f3d --- /dev/null +++ b/sample_files/nullable_before.kt @@ -0,0 +1,3 @@ +class Foo { + val str: String? +} diff --git a/src/parse/tree_sitter_parser.rs b/src/parse/tree_sitter_parser.rs index ee4e3b9aa..cf8775666 100644 --- a/src/parse/tree_sitter_parser.rs +++ b/src/parse/tree_sitter_parser.rs @@ -615,7 +615,11 @@ pub fn from_language(language: guess::Language) -> TreeSitterConfig { let language = unsafe { tree_sitter_kotlin() }; TreeSitterConfig { language, - atom_nodes: vec!["line_string_literal", "character_literal"] + // Flattening nullable type means we can't diff the + // structure of complex types within, but it beats + // ignoring nullable changes. + // https://github.com/Wilfred/difftastic/issues/411 + atom_nodes: vec!["line_string_literal", "character_literal", "nullable_type"] .into_iter() .collect(), delimiter_tokens: vec![("(", ")"), ("{", "}"), ("[", "]"), ("<", ">")] |