// exact-check const EXPECTED = [ // if I just use generics, then the generics version // and the type binding version both show up { 'query': 'iterator -> u32', 'correction': null, 'others': [ { 'path': 'assoc_type::my', 'name': 'other_fn', 'displayType': 'X -> `u32`', 'displayMappedNames': '', 'displayWhereClause': 'X: `Iterator`<`Something`>', }, { 'path': 'assoc_type', 'name': 'my_fn', 'displayType': 'X -> `u32`', 'displayMappedNames': '', 'displayWhereClause': 'X: `Iterator`', }, ], }, { 'query': 'iterator', 'correction': null, 'in_args': [ { 'path': 'assoc_type::my', 'name': 'other_fn', 'displayType': 'X -> u32', 'displayMappedNames': '', 'displayWhereClause': 'X: `Iterator`<`Something`>', }, { 'path': 'assoc_type', 'name': 'my_fn', 'displayType': 'X -> u32', 'displayMappedNames': '', 'displayWhereClause': 'X: `Iterator`', }, ], }, { 'query': 'something', 'correction': null, 'others': [ { 'path': 'assoc_type', 'name': 'Something' }, ], 'in_args': [ { 'path': 'assoc_type::my', 'name': 'other_fn', 'displayType': '`X` -> u32', 'displayMappedNames': '', 'displayWhereClause': 'X: Iterator<`Something`>', }, { 'path': 'assoc_type', 'name': 'my_fn', 'displayType': '`X` -> u32', 'displayMappedNames': '', 'displayWhereClause': 'X: Iterator', }, ], }, // if I write an explicit binding, only it shows up { 'query': 'iterator -> u32', 'correction': null, 'others': [ { 'path': 'assoc_type', 'name': 'my_fn' }, ], }, // case insensitivity { 'query': 'iterator -> u32', 'correction': null, 'others': [ { 'path': 'assoc_type', 'name': 'my_fn' }, ], }, // wrong binding name, no result { 'query': 'iterator -> u32', 'correction': null, 'in_args': [], 'others': [], }, ];