I'm trying to match any body block that has two calls to the same (explicitly named) function, e.g. it should match this block:
it('should match this sub-block', () => {
// do Javascript things
thisFunctionShouldOnlyBeCalledOnce(123);
// do JavaScript things
thisFunctionShouldOnlyBeCalledOnce(456);
// do JavaScript things
});
And it should not match this block:
it('should match this sub-block', () => {
// do Javascript things
thisFunctionShouldOnlyBeCalledOnce(123);
// do JavaScript things
});
I tried a bunch of things, the "closest" I got were:
grasp --squery 'call[callee=#it].arguments:nth(1).body! call[callee=#funcName] ~ call[callee=#funcName]'
grasp --equery 'funcName(__); _$; funcName(__);
But to no avail. Is this something that can be done with grasp?
I'm trying to match any body block that has two calls to the same (explicitly named) function, e.g. it should match this block:
And it should not match this block:
I tried a bunch of things, the "closest" I got were:
grasp --squery 'call[callee=#it].arguments:nth(1).body! call[callee=#funcName] ~ call[callee=#funcName]'grasp --equery 'funcName(__); _$; funcName(__);But to no avail. Is this something that can be done with grasp?