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:
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?