From f2bc09e68bfc5d84a7abf49bedb5ced8f99b95a7 Mon Sep 17 00:00:00 2001 From: Guillaume Gomez Date: Sat, 12 May 2018 14:57:52 +0200 Subject: [PATCH] Fix invalid deduplication --- src/librustdoc/html/static/main.js | 9 +-------- src/test/rustdoc-js/deduplication.js | 21 +++++++++++++++++++++ src/tools/rustdoc-js/tester.js | 5 +++-- 3 files changed, 25 insertions(+), 10 deletions(-) create mode 100644 src/test/rustdoc-js/deduplication.js diff --git a/src/librustdoc/html/static/main.js b/src/librustdoc/html/static/main.js index e08f3261871..3ee06a964de 100644 --- a/src/librustdoc/html/static/main.js +++ b/src/librustdoc/html/static/main.js @@ -462,7 +462,7 @@ if (isType !== true || obj.type) { var res = buildHrefAndPath(obj); obj.displayPath = pathSplitter(res[0]); - obj.fullPath = obj.displayPath + obj.n; + obj.fullPath = obj.displayPath + obj.name; obj.href = res[1]; out.push(obj); if (out.length >= MAX_RESULTS) { @@ -1259,17 +1259,10 @@ var length = 0; if (array.length > 0) { output = ''; - var shown = []; array.forEach(function(item) { var name, type; - var id_ty = item.ty + item.path + item.name; - if (shown.indexOf(id_ty) !== -1) { - return; - } - - shown.push(id_ty); name = item.name; type = itemTypes[item.ty]; diff --git a/src/test/rustdoc-js/deduplication.js b/src/test/rustdoc-js/deduplication.js new file mode 100644 index 00000000000..0f29607d5c9 --- /dev/null +++ b/src/test/rustdoc-js/deduplication.js @@ -0,0 +1,21 @@ +// Copyright 2018 The Rust Project Developers. See the COPYRIGHT +// file at the top-level directory of this distribution and at +// http://rust-lang.org/COPYRIGHT. +// +// Licensed under the Apache License, Version 2.0 or the MIT license +// , at your +// option. This file may not be copied, modified, or distributed +// except according to those terms. + +// ignore-order + +const QUERY = 'is_nan'; + +const EXPECTED = { + 'others': [ + { 'path': 'std::f32', 'name': 'is_nan' }, + { 'path': 'std::f64', 'name': 'is_nan' }, + { 'path': 'std::option::Option', 'name': 'is_none' }, + ], +}; diff --git a/src/tools/rustdoc-js/tester.js b/src/tools/rustdoc-js/tester.js index 25f7a2d1294..47667d93cb7 100644 --- a/src/tools/rustdoc-js/tester.js +++ b/src/tools/rustdoc-js/tester.js @@ -160,10 +160,11 @@ function main(argv) { // execQuery first parameter is built in getQuery (which takes in the search input). // execQuery last parameter is built in buildIndex. // buildIndex requires the hashmap from search-index. - var functionsToLoad = ["levenshtein", "validateResult", "getQuery", "buildIndex", "execQuery", - "execSearch"]; + var functionsToLoad = ["buildHrefAndPath", "pathSplitter", "levenshtein", "validateResult", + "getQuery", "buildIndex", "execQuery", "execSearch"]; finalJS += 'window = { "currentCrate": "std" };\n'; + finalJS += 'var rootPath = "../";\n'; finalJS += ALIASES; finalJS += loadThings(arraysToLoad, 'array', extractArrayVariable, mainJs); finalJS += loadThings(variablesToLoad, 'variable', extractVariable, mainJs);