summaryrefslogtreecommitdiff
path: root/testsuite/tests/ghci/prog017
diff options
context:
space:
mode:
authorArthur Fayzrakhmanov (Артур Файзрахманов) <heraldhoi@gmail.com>2016-01-17 19:27:12 +0100
committerBen Gamari <ben@smart-cactus.org>2016-01-17 23:40:42 +0100
commitb3eb8fad4c9d5aa293e197bfff7039d6fa112a54 (patch)
tree32ba92be0948b5e105535a4247937231ae33372c /testsuite/tests/ghci/prog017
parentd1ce1aa9beed4d3ecd3a0324ae4c98625fbe8d33 (diff)
downloadhaskell-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.hs5
-rw-r--r--testsuite/tests/ghci/prog017/Level2/Level2.hs3
-rw-r--r--testsuite/tests/ghci/prog017/Makefile3
-rw-r--r--testsuite/tests/ghci/prog017/TopLevel.hs182
-rw-r--r--testsuite/tests/ghci/prog017/prog017.T2
-rw-r--r--testsuite/tests/ghci/prog017/prog017.script136
-rw-r--r--testsuite/tests/ghci/prog017/prog017.stdout144
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"