diff options
author | Arthur Fayzrakhmanov (Артур Файзрахманов) <heraldhoi@gmail.com> | 2016-01-17 19:27:12 +0100 |
---|---|---|
committer | Ben Gamari <ben@smart-cactus.org> | 2016-01-17 23:40:42 +0100 |
commit | b3eb8fad4c9d5aa293e197bfff7039d6fa112a54 (patch) | |
tree | 32ba92be0948b5e105535a4247937231ae33372c /testsuite/tests/ghci/prog017 | |
parent | d1ce1aa9beed4d3ecd3a0324ae4c98625fbe8d33 (diff) | |
download | haskell-b3eb8fad4c9d5aa293e197bfff7039d6fa112a54.tar.gz |
Complete operators properly
Fix operator completions: list of suitable completions only rather than
everything from imported modules.
Signed-off-by: Arthur Fayzrakhmanov (Артур Файзрахманов) <heraldhoi@gmail.com>
ghc: fix operator completions
Reviewers: austin, hvr, thomie, bgamari
Reviewed By: thomie, bgamari
Subscribers: thomie
Differential Revision: https://phabricator.haskell.org/D1058
GHC Trac Issues: #10576
Diffstat (limited to 'testsuite/tests/ghci/prog017')
-rw-r--r-- | testsuite/tests/ghci/prog017/Level1.hs | 5 | ||||
-rw-r--r-- | testsuite/tests/ghci/prog017/Level2/Level2.hs | 3 | ||||
-rw-r--r-- | testsuite/tests/ghci/prog017/Makefile | 3 | ||||
-rw-r--r-- | testsuite/tests/ghci/prog017/TopLevel.hs | 182 | ||||
-rw-r--r-- | testsuite/tests/ghci/prog017/prog017.T | 2 | ||||
-rw-r--r-- | testsuite/tests/ghci/prog017/prog017.script | 136 | ||||
-rw-r--r-- | testsuite/tests/ghci/prog017/prog017.stdout | 144 |
7 files changed, 475 insertions, 0 deletions
diff --git a/testsuite/tests/ghci/prog017/Level1.hs b/testsuite/tests/ghci/prog017/Level1.hs new file mode 100644 index 0000000000..68f7683fbe --- /dev/null +++ b/testsuite/tests/ghci/prog017/Level1.hs @@ -0,0 +1,5 @@ +module Level1 where + +(..--) = undefined :: () +(..-+) = undefined :: () +(..++) = undefined :: () diff --git a/testsuite/tests/ghci/prog017/Level2/Level2.hs b/testsuite/tests/ghci/prog017/Level2/Level2.hs new file mode 100644 index 0000000000..32fcc1df14 --- /dev/null +++ b/testsuite/tests/ghci/prog017/Level2/Level2.hs @@ -0,0 +1,3 @@ +module Level2.Level2 where + +(..+=..) = undefined :: () diff --git a/testsuite/tests/ghci/prog017/Makefile b/testsuite/tests/ghci/prog017/Makefile new file mode 100644 index 0000000000..9101fbd40a --- /dev/null +++ b/testsuite/tests/ghci/prog017/Makefile @@ -0,0 +1,3 @@ +TOP=../../.. +include $(TOP)/mk/boilerplate.mk +include $(TOP)/mk/test.mk diff --git a/testsuite/tests/ghci/prog017/TopLevel.hs b/testsuite/tests/ghci/prog017/TopLevel.hs new file mode 100644 index 0000000000..c2e562b1f9 --- /dev/null +++ b/testsuite/tests/ghci/prog017/TopLevel.hs @@ -0,0 +1,182 @@ +module TopLevel (module Level1, module Level2.Level2) where + +import Level1 +import Level2.Level2 + + +-- ASCII syms +(..-) = undefined :: () +(..+) = undefined :: () +(..=) = undefined :: () +(..>>) = undefined :: () +(..!>) = undefined :: () + +-- General Punctuation +(⁐) = undefined :: () -- U+2050 +(⁐⁑) = undefined :: () -- ... U+2051 + +-- supAndSubScriptR +-- likely everything is this group is rejected +-- moved to failing T10550a test + +-- currencySymbolR +(₽) = undefined :: () -- U+20BD +(₽€) = undefined :: () -- ... U+20AC + +-- letterLikeSymbolR +(⅀) = undefined :: () -- U+2140 +(⅀⅀) = undefined :: () -- ... U+2140 + +-- numberFormsR +-- likely everything is this group is rejected +-- moved to failing T10550b test + +-- enclosedAlphanumericsR +(⒡) = undefined :: () -- U+24A1 +(⒡Ⓞ) = undefined :: () -- ... U+24C4 +-- some from this group is rejected, e.g. ③ +-- added to failing T10550d test + +-- enclosedAlphanumericSupplementR +(🄐) = undefined :: () -- U+1F110 +(🄐🄐) = undefined :: () -- ... U+1F110 +-- some from this group is rejected, e.g. 🄀 +-- added failing test case T10550d + +-- enclosedIdeographicSupplementR +(🈐) = undefined :: () -- U+1F210 +(🈐🈭) = undefined :: () -- ... U+1F22D + +-- arrowsR +(←) = undefined :: () -- U+2190 +(←→) = undefined :: () -- ... U+2192 + +-- supplementalArrowsAR +(⟹) = undefined :: () -- U+27F9 +(⟹⟿) = undefined :: () -- .. U+27FF + +-- supplementalArrowsBR +(⤴) = undefined :: () -- U+2934 +(⤴⤵) = undefined :: () -- ... U+2935 + +-- supplementalArrowsCR +(🡘) = undefined :: () -- U+1F858 +(🡘🢕) = undefined :: () -- ... U+1F895 + +-- miscellaneousSymbolsAndArrowsR +(⬤) = undefined :: () -- U+2B24 +(⬤⬱) = undefined :: () -- ... U+2B31 + +-- dingbatArrowsR +(➾) = undefined :: () -- U+27BE +(➾➔) = undefined :: () -- ... U+2794 + +-- mathematicalOperators +(∀) = undefined :: () -- U+2200 +(∀⋙) = undefined :: () -- ... U+22D9 + +-- miscellaneousMathematicalSymbolsAR +(⟑) = undefined :: () -- U+27D1 +(⟑⟑) = undefined :: () -- ... U+27E9 +-- some from this group is rejected, e.g. ⟨ +-- added failing test case T10550e + +-- miscellaneousMathematicalSymbolsBR +(⧦) = undefined :: () -- U+29E6 +(⧦⧵) = undefined :: () -- ... U+29F5 + +-- supplementalMathematicalOperatorsR +(⨶) = undefined :: () -- U+2A36 +(⨶⫫) = undefined :: () -- ... U+2AEB + +-- mathematicalAlphanumericSymbolsR +(𝛌) = undefined :: () -- U+1D6CC +(𝛌𝕘) = undefined :: () -- ... U+1D558 + +-- miscellaneousTechnicalR +(⌘) = undefined :: () -- U+2318 +(⌘⌥) = undefined :: () -- ... U+2325 + +-- controlPicturesR +(␘) = undefined :: () -- U+2418 +(␘␡) = undefined :: () -- ... U+2421 + +-- characterRecognitionR +(⑁) = undefined :: () -- U+2441 +(⑁⑅) = undefined :: () -- ... U+2445 + +-- byzantineMusicalSymbolsR +(𝀐) = undefined :: () -- U+1DO1O +(𝀐𝃆) = undefined :: () -- ... U+1D0C6 + +-- musicalSymbolsR +(𝄢) = undefined :: () -- U+1D122 +(𝄢𝇇) = undefined :: () -- ... U+1D1C7 + +-- ancientGreekMusicalNotationR +(𝉀) = undefined :: () -- U+1D240 +(𝉀𝈒) = undefined :: () -- ... U+1D212 + +-- mahjongTilesR +(🀐) = undefined :: () -- U+1F010 +(🀐🀢) = undefined :: () -- ... U+1F022 + +-- dominoTilesR +(🀱) = undefined :: () -- U+1F031 +(🀱🁧) = undefined :: () -- ... U+1F067 + +-- playingCardsR +(🂿) = undefined :: () -- U+1F0BF +(🂿🃠) = undefined :: () -- ... U+1F0E0 + +-- miscellaneousSymbolsR +(☀) = undefined :: () -- U+2600 +(☀☭) = undefined :: () -- ... U+262D + +-- emoticonsR +-- likely everything is this group is rejected +-- added failing test case T10550f + +-- miscellaneousSymbolsAndPictographsR +(🌓) = undefined :: () -- U+1F313 +(🌓🐇) = undefined :: () -- ... U+1F407 + +-- transportAndMapSymbolsR +(🚭) = undefined :: () -- U+1F6AD +(🚭🚀) = undefined :: () -- ... U+1F680 + +-- dingbatsR +(✔) = undefined :: () -- U+2714 +(✔✩) = undefined :: () -- ... U+2729 + +-- combiningDiacriticalMarksForSymbolsR +-- combining unicode symbols should be handled and tested in some smart manner +-- added failing T10550g test case + +-- boxDrawingR +(━) = undefined :: () -- U+2501 +(━╃) = undefined :: () -- ... U+2543 + +-- blockElementsR +(▙) = undefined :: () -- U+2599 +(▙▟) = undefined :: () -- ... U+259F + +-- geometricShapesR +(△) = undefined :: () -- U+25B3 +(△◉) = undefined :: () -- ... U+25C9 + +-- geometricShapesExtendedR +(🞋) = undefined :: () -- U+1F78B +(🞋🞯) = undefined :: () -- ... U+1F7AF + +-- ornamentalDingbatsR +(🙫) = undefined :: () -- U+1F66B +(🙫🙢) = undefined :: () -- ... U+1F662 + +-- arabicMathematicalAlphabeticSymbolsR +(𞺂) = undefined :: () -- U+1EE82 +(𞺂𞹟) = undefined :: () -- ... U+1EE5F + +-- alchemicalSymbolsR +(🜄) = undefined :: () -- U+1F704 +(🜄🝪) = undefined :: () -- ... U+1F76A diff --git a/testsuite/tests/ghci/prog017/prog017.T b/testsuite/tests/ghci/prog017/prog017.T new file mode 100644 index 0000000000..64e523b99f --- /dev/null +++ b/testsuite/tests/ghci/prog017/prog017.T @@ -0,0 +1,2 @@ +# testcase for operator completions, e.g. `:complete repl ">>"` +test('prog017', normal, ghci_script, ['prog017.script']) diff --git a/testsuite/tests/ghci/prog017/prog017.script b/testsuite/tests/ghci/prog017/prog017.script new file mode 100644 index 0000000000..302233869b --- /dev/null +++ b/testsuite/tests/ghci/prog017/prog017.script @@ -0,0 +1,136 @@ +:load TopLevel + +:complete repl ".." +-- 9 results from all modules including submodules + +:complete repl "..+" +-- should list completions from all modules including submodules + +:complete repl "..+=" +-- should list one result + +:complete repl "Lev" +-- should list completions from submodules + +:complete repl "Level1" +-- should list completions from submodule + +:complete repl "Level1." +-- should give same results + +:complete repl "..>" + +:complete repl "..!" + +-- for all Unicode tests should be returned list of two results + +-- General Punctuation +:complete repl "⁐" + +-- currencySymbolR +:complete repl "₽" + +-- letterLikeSymbolR +:complete repl "⅀" + +-- enclosedAlphanumericsR +:complete repl "⒡" + +-- enclosedAlphanumericSupplementR +:complete repl "🄐" + +-- enclosedIdeographicSupplementR +:complete repl "🈐" + +-- arrowsR +:complete repl "←" + +-- supplementalArrowsAR +:complete repl "⟹" + +-- supplementalArrowsBR +:complete repl "⤴" + +-- supplementalArrowsCR +:complete repl "🡘" + +-- miscellaneousSymbolsAndArrowsR +:complete repl "⬤" + +-- dingbatArrowsR +:complete repl "➾" + +-- mathematicalOperators +:complete repl "∀" + +-- miscellaneousMathematicalSymbolsAR +:complete repl "⟑" + +-- miscellaneousMathematicalSymbolsBR +:complete repl "⧦" + +-- supplementalMathematicalOperatorsR +:complete repl "⨶" + +-- mathematicalAlphanumericSymbolsR +:complete repl "𝛌" + +-- miscellaneousTechnicalR +:complete repl "⌘" + +-- controlPicturesR +:complete repl "␘" + +-- characterRecognitionR +:complete repl "⑁" + +-- byzantineMusicalSymbolsR +:complete repl "𝀐" + +-- musicalSymbolsR +:complete repl "𝄢" + +-- ancientGreekMusicalNotationR +:complete repl "𝉀" + +-- mahjongTilesR +:complete repl "🀐" + +-- dominoTilesR +:complete repl "🀱" + +-- playingCardsR +:complete repl "🂿" + +-- miscellaneousSymbolsR +:complete repl "☀" + +-- miscellaneousSymbolsAndPictographsR +:complete repl "🌓" + +-- transportAndMapSymbolsR +:complete repl "🚭" + +-- dingbatsR +:complete repl "✔" + +-- boxDrawingR +:complete repl "━" + +-- blockElementsR +:complete repl "▙" + +-- geometricShapesR +:complete repl "△" + +-- geometricShapesExtendedR +:complete repl "🞋" + +-- ornamentalDingbatsR +:complete repl "🙫" + +-- arabicMathematicalAlphabeticSymbolsR +:complete repl "𞺂" + +-- alchemicalSymbolsR +:complete repl "🜄"
\ No newline at end of file diff --git a/testsuite/tests/ghci/prog017/prog017.stdout b/testsuite/tests/ghci/prog017/prog017.stdout new file mode 100644 index 0000000000..903660d369 --- /dev/null +++ b/testsuite/tests/ghci/prog017/prog017.stdout @@ -0,0 +1,144 @@ +9 9 "" +"..!>" +"..+" +"..++" +"..+=.." +"..-" +"..-+" +"..--" +"..=" +"..>>" +3 3 "" +"..+" +"..++" +"..+=.." +1 1 "" +"..+=.." +4 4 "" +"Level1...++" +"Level1...-+" +"Level1...--" +"Level2.Level2...+=.." +3 3 "" +"Level1...++" +"Level1...-+" +"Level1...--" +3 3 "" +"Level1...++" +"Level1...-+" +"Level1...--" +1 1 "" +"..>>" +1 1 "" +"..!>" +2 2 "" +"\8272" +"\8272\8273" +2 2 "" +"\8381" +"\8381\8364" +2 2 "" +"\8512" +"\8512\8512" +2 2 "" +"\9377" +"\9377\9412" +2 2 "" +"\127248" +"\127248\127248" +2 2 "" +"\127504" +"\127504\127533" +2 2 "" +"\8592" +"\8592\8594" +2 2 "" +"\10233" +"\10233\10239" +2 2 "" +"\10548" +"\10548\10549" +2 2 "" +"\129112" +"\129112\129173" +2 2 "" +"\11044" +"\11044\11057" +2 2 "" +"\10174" +"\10174\10132" +2 2 "" +"\8704" +"\8704\8921" +2 2 "" +"\10193" +"\10193\10193" +2 2 "" +"\10726" +"\10726\10741" +2 2 "" +"\10806" +"\10806\10987" +2 2 "" +"\120524" +"\120524\120152" +2 2 "" +"\8984" +"\8984\8997" +2 2 "" +"\9240" +"\9240\9249" +2 2 "" +"\9281" +"\9281\9285" +2 2 "" +"\118800" +"\118800\118982" +2 2 "" +"\119074" +"\119074\119239" +2 2 "" +"\119360" +"\119360\119314" +2 2 "" +"\126992" +"\126992\127010" +2 2 "" +"\127025" +"\127025\127079" +2 2 "" +"\127167" +"\127167\127200" +2 2 "" +"\9728" +"\9728\9773" +2 2 "" +"\127763" +"\127763\128007" +2 2 "" +"\128685" +"\128685\128640" +2 2 "" +"\10004" +"\10004\10025" +2 2 "" +"\9473" +"\9473\9539" +2 2 "" +"\9625" +"\9625\9631" +2 2 "" +"\9651" +"\9651\9673" +2 2 "" +"\128907" +"\128907\128943" +2 2 "" +"\128619" +"\128619\128610" +2 2 "" +"\126594" +"\126594\126559" +2 2 "" +"\128772" +"\128772\128874" |