From 30e7f0585ef8d96d27bbaecff6e81737de73bf44 Mon Sep 17 00:00:00 2001 From: soulomoon Date: Sun, 14 Jan 2024 00:50:53 +0800 Subject: [PATCH 1/3] fix stop omit occname #3950 --- .../src/Ide/Plugin/SemanticTokens/Query.hs | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/plugins/hls-semantic-tokens-plugin/src/Ide/Plugin/SemanticTokens/Query.hs b/plugins/hls-semantic-tokens-plugin/src/Ide/Plugin/SemanticTokens/Query.hs index 7758176d04..5848064181 100644 --- a/plugins/hls-semantic-tokens-plugin/src/Ide/Plugin/SemanticTokens/Query.hs +++ b/plugins/hls-semantic-tokens-plugin/src/Ide/Plugin/SemanticTokens/Query.hs @@ -84,9 +84,7 @@ hieAstSpanNames vf ast = exclusion :: Identifier -> IdentifierDetails a -> Bool exclusion idt IdentifierDetails {identInfo = infos} = case idt of Left _ -> True - Right name -> - isDerivedOccName (nameOccName name) - || any isEvidenceContext (S.toList infos) + Right _ -> any isEvidenceContext (S.toList infos) ------------------------------------------------- From d1b53689ec3c414d5baf9022a18acf0fd08e757b Mon Sep 17 00:00:00 2001 From: soulomoon Date: Sun, 14 Jan 2024 02:07:09 +0800 Subject: [PATCH 2/3] add test --- plugins/hls-semantic-tokens-plugin/test/Main.hs | 1 + .../test/testdata/TRecordDuplicateRecordFields.expected | 4 ++++ .../test/testdata/TRecordDuplicateRecordFields.hs | 5 +++++ 3 files changed, 10 insertions(+) create mode 100644 plugins/hls-semantic-tokens-plugin/test/testdata/TRecordDuplicateRecordFields.expected create mode 100644 plugins/hls-semantic-tokens-plugin/test/testdata/TRecordDuplicateRecordFields.hs diff --git a/plugins/hls-semantic-tokens-plugin/test/Main.hs b/plugins/hls-semantic-tokens-plugin/test/Main.hs index 56a8f47393..2d6224e7c1 100644 --- a/plugins/hls-semantic-tokens-plugin/test/Main.hs +++ b/plugins/hls-semantic-tokens-plugin/test/Main.hs @@ -187,6 +187,7 @@ semanticTokensDataTypeTests = "get semantic Tokens" [ goldenWithSemanticTokens "simple datatype" "TDataType", goldenWithSemanticTokens "record" "TRecord", + goldenWithSemanticTokens "record" "TRecordDuplicateRecordFields", goldenWithSemanticTokens "datatype import" "TDatatypeImported", goldenWithSemanticTokens "datatype family" "TDataFamily", goldenWithSemanticTokens "GADT" "TGADT" diff --git a/plugins/hls-semantic-tokens-plugin/test/testdata/TRecordDuplicateRecordFields.expected b/plugins/hls-semantic-tokens-plugin/test/testdata/TRecordDuplicateRecordFields.expected new file mode 100644 index 0000000000..228a593b19 --- /dev/null +++ b/plugins/hls-semantic-tokens-plugin/test/testdata/TRecordDuplicateRecordFields.expected @@ -0,0 +1,4 @@ +5:6-9 TTypeCon "Foo" +5:12-15 TDataCon "Foo" +5:18-21 TRecField "boo" +5:26-32 TTypeSyn "String" diff --git a/plugins/hls-semantic-tokens-plugin/test/testdata/TRecordDuplicateRecordFields.hs b/plugins/hls-semantic-tokens-plugin/test/testdata/TRecordDuplicateRecordFields.hs new file mode 100644 index 0000000000..7258b5fc27 --- /dev/null +++ b/plugins/hls-semantic-tokens-plugin/test/testdata/TRecordDuplicateRecordFields.hs @@ -0,0 +1,5 @@ +{-# LANGUAGE DuplicateRecordFields #-} + +module TRecordDuplicateRecordFields where + +data Foo = Foo { boo :: !String } \ No newline at end of file From 20d1702565bc56c8c08da8adf9d624cd6eb77db1 Mon Sep 17 00:00:00 2001 From: Patrick Wales Date: Sun, 14 Jan 2024 03:49:45 +0800 Subject: [PATCH 3/3] Update Query.hs --- .../src/Ide/Plugin/SemanticTokens/Query.hs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/hls-semantic-tokens-plugin/src/Ide/Plugin/SemanticTokens/Query.hs b/plugins/hls-semantic-tokens-plugin/src/Ide/Plugin/SemanticTokens/Query.hs index 5848064181..d686d3dd00 100644 --- a/plugins/hls-semantic-tokens-plugin/src/Ide/Plugin/SemanticTokens/Query.hs +++ b/plugins/hls-semantic-tokens-plugin/src/Ide/Plugin/SemanticTokens/Query.hs @@ -83,7 +83,7 @@ hieAstSpanNames vf ast = inclusion a b = not $ exclusion a b exclusion :: Identifier -> IdentifierDetails a -> Bool exclusion idt IdentifierDetails {identInfo = infos} = case idt of - Left _ -> True + Left _ -> True Right _ -> any isEvidenceContext (S.toList infos) -------------------------------------------------