You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Currently, a VarAccessTest test case like the following fails:
@TestvoidlambdaParameter() {
rewriteRun(
java(
""" interface Fun { String message(String s); } class Test { void test() { Fun foobar = (s) -> s; } } """,
""" interface Fun { String message(String s); } class Test { void test() { Fun foobar = (s) -> /*~~>*/s; } } """
)
);
}
The Parameter trait does not yet support lambdas. From the docs I tried to understand how CodeQL models lambdas. It looks like a lambda is somehow a wrapper around a Method and thus somehow resembles the Java runtime view of a lambda. The lambda's parameters are then declared on this method.
I don't remember / understand CodeQL well enough to see how we should translate this into the traits we have. Intuitively I would otherwise have made the LambdaExpr trait extend Callable. But that would be a deviation of CodeQL.
This is one of those problems I realized was more complex than I could solve with the time I had.
I want to model this right, but, off hand, I don't have any answers here right now.
What I really need to do is sit down and write some test CodeQL queries and attempt to model lambdas and see what API's return what. That way I can verify that what we do for this API matches
Currently, a
VarAccessTest
test case like the following fails:The
Parameter
trait does not yet support lambdas. From the docs I tried to understand how CodeQL models lambdas. It looks like a lambda is somehow a wrapper around aMethod
and thus somehow resembles the Java runtime view of a lambda. The lambda's parameters are then declared on this method.I don't remember / understand CodeQL well enough to see how we should translate this into the traits we have. Intuitively I would otherwise have made the
LambdaExpr
trait extendCallable
. But that would be a deviation of CodeQL.@JLLeitschuh Can you provide some guidance here?
The text was updated successfully, but these errors were encountered: