about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/librustdoc/html/static/js/search.js3
-rw-r--r--src/test/rustdoc-js-std/parser-errors.js10
2 files changed, 13 insertions, 0 deletions
diff --git a/src/librustdoc/html/static/js/search.js b/src/librustdoc/html/static/js/search.js
index 8beb0768dcf..cb078b5134d 100644
--- a/src/librustdoc/html/static/js/search.js
+++ b/src/librustdoc/html/static/js/search.js
@@ -440,6 +440,9 @@ window.initSearch = function(rawSearchIndex) {
                 // Get returned elements.
                 getItemsBefore(query, parserState, query.returned, "");
                 // Nothing can come afterward!
+                if (query.returned.length === 0) {
+                    throw new Error("Expected at least one item after `->`");
+                }
                 break;
             } else {
                 parserState.pos += 1;
diff --git a/src/test/rustdoc-js-std/parser-errors.js b/src/test/rustdoc-js-std/parser-errors.js
index ae5145e8322..42d69ed3fe0 100644
--- a/src/test/rustdoc-js-std/parser-errors.js
+++ b/src/test/rustdoc-js-std/parser-errors.js
@@ -21,6 +21,7 @@ const QUERY = [
     "a-bb",
     "a>bb",
     "ab'",
+    "a->",
 ];
 
 const PARSED = [
@@ -222,4 +223,13 @@ const PARSED = [
         userQuery: "ab'",
         error: "Unexpected `'`",
     },
+    {
+        elems: [],
+        foundElems: 0,
+        original: "a->",
+        returned: [],
+        typeFilter: -1,
+        userQuery: "a->",
+        error: "Expected at least one item after `->`",
+    },
 ];