Investigate case when we have array property that contains complex that and when property in parent object has the same name as property in complex object.
Like for example:
{
"tags": [
"name": "item1",
"tags": ["some value"]
]
}
The component that translate the $filter operation might some times match by property name. It is important that component can distinquise correct property name that has check.
Below odata should be supported:
/$filter=tags/any(t1:t1/tags/any(t2:startswith(2t,'spider'))
Investigate also where the inner tags property is single string and not an array.
{
"tags": [
"tags": "tag1,tag2,tag3"
]
}
For tests cases check also when odata handle dynamic variables (expresssion required)