tree bc766f0dd103f69d48ef989921d117d5fd7d89ea
parent ed8d4acdb13cba24fcb1a392b36952ddfe790776
author Daniel Santiago Rivera <danysantiago@google.com> 1605314991 -0800
committer Daniel Santiago Rivera <danysantiago@google.com> 1606170151 -0800

Prioritize query binding param adapter selection based on param usage.

This changes makes it so that when selecting an adapter for a query
parameter used in a multi-value expression, priority is given to
adapters and type converters of the collection's type argument such
that Room is able to wrap it in the built-in collection adapter which
will correctly bind n parameters. Where as if the binding parameter is
simple, then priority is given to direct adapters / type converters
that can convert the collection to a single binding param.

For example given two type converters, one of `Date -> String` and
another of `List<Date> -> String` then:

Room will choose Date -> String and bind n params,
'date IN (?, ?, ?, ...)' for
```
@Query("SELECT * FROM Foo WHERE date IN (:param)")
fun getFoo(param: List<Date>)
```

Room will choose List<Date> -> String and bind a single param,
'date = ?' for
```
@Query("SELECT * FROM Foo WHERE date = :param")
fun getFoo(param: List<Date>)
```

Room will choose Date -> String and bind a single param,
'date IN (?)' for
```
@Query("SELECT * FROM Foo WHERE date IN (:param)")
fun getFoo(param: Date)
```

Room will choose Date -> String and bind a single param,
'date = ?' for
```
@Query("SELECT * FROM Foo WHERE date = :param")
fun getFoo(param: Date)
```

When the binding param is within the context of a function
expression, the function name is considered whether to
expand the params or not.

Bug: 173130710
Bug: 173647684
Test: ./gradlew :room:integration-tests:room-testapp:cC :room:integration-tests:room-testapp:cC
Change-Id: I474f21fe31e0a2510b1a07826fb96ec8eb391acd
