Open
Description
Description
When a Method Reference Expression performs creation of an array (e.g. String[]::new
), MemberRefExpr.getReferencedCallable()
has no result.
This is technically correct since there exists no 'array constructor', however it might make working with MemberRefExpr
more cumbersome. I created this issue mainly to discuss how this can be solved, or how the current situation can be improved. A few solutions might be:
- Model a 'dummy' array constructor so
getReferencedCallable()
has a result; however, make sure that no other element by accident has this dummy constructor as result (e.g. array creation expression) - Adjust the documentation for
getReferencedCallable()
and create a new predicategetCreatedArrayType()
which has in these cases the result
Example
CodeQL query:
import java
from MemberRefExpr m
where not exists(m.getReferencedCallable())
select m