89 lines
2.0 KiB
JavaScript
89 lines
2.0 KiB
JavaScript
// exact-check
|
|
|
|
const EXPECTED = [
|
|
{
|
|
query: '-> trait:Some',
|
|
others: [
|
|
{ path: 'foo', name: 'alpha' },
|
|
{ path: 'foo', name: 'alef' },
|
|
],
|
|
},
|
|
{
|
|
query: '-> generic:T',
|
|
others: [
|
|
{ path: 'foo', name: 'bet' },
|
|
{ path: 'foo', name: 'alef' },
|
|
{ path: 'foo', name: 'beta' },
|
|
],
|
|
},
|
|
{
|
|
query: 'A -> B',
|
|
others: [
|
|
{ path: 'foo', name: 'bet' },
|
|
],
|
|
},
|
|
{
|
|
query: 'A -> A',
|
|
others: [
|
|
{ path: 'foo', name: 'beta' },
|
|
],
|
|
},
|
|
{
|
|
query: 'A, A',
|
|
others: [
|
|
{ path: 'foo', name: 'alternate' },
|
|
],
|
|
},
|
|
{
|
|
query: 'A, B',
|
|
others: [
|
|
{ path: 'foo', name: 'other' },
|
|
],
|
|
},
|
|
{
|
|
query: 'Other, Other',
|
|
others: [
|
|
{ path: 'foo', name: 'alternate' },
|
|
{ path: 'foo', name: 'other' },
|
|
],
|
|
},
|
|
{
|
|
query: 'generic:T',
|
|
in_args: [
|
|
{ path: 'foo', name: 'bet' },
|
|
{ path: 'foo', name: 'beta' },
|
|
{ path: 'foo', name: 'alternate' },
|
|
{ path: 'foo', name: 'other' },
|
|
],
|
|
},
|
|
{
|
|
query: 'generic:Other',
|
|
in_args: [
|
|
{ path: 'foo', name: 'bet' },
|
|
{ path: 'foo', name: 'beta' },
|
|
{ path: 'foo', name: 'alternate' },
|
|
{ path: 'foo', name: 'other' },
|
|
],
|
|
},
|
|
{
|
|
query: 'trait:Other',
|
|
in_args: [
|
|
{ path: 'foo', name: 'alternate' },
|
|
{ path: 'foo', name: 'other' },
|
|
],
|
|
},
|
|
{
|
|
query: 'Other',
|
|
in_args: [
|
|
// because function is called "other", it's sorted first
|
|
// even though it has higher type distance
|
|
{ path: 'foo', name: 'other' },
|
|
{ path: 'foo', name: 'alternate' },
|
|
],
|
|
},
|
|
{
|
|
query: 'trait:T',
|
|
in_args: [],
|
|
},
|
|
];
|