I didn’t try to reproduce it on a clean project, but the mistake in the code is obvious. Possible STR:
- Create two ChooserTables Chooser1 and ChooserB.
- Create two Structs StructA and StructB. One of them should have at least one property.
- Add StructA to Parameters of Chooser1 and bind its property to a column.
- Add StructB and StructA (in the said order) to Parameters of Chooser2 and bind the same property.
- The outcome will vary depending on compilation order. Let’s say Chooser1 gets compiled first.
- Then `StructA.MyProperty` binding gets compiled with ContextIndex 0.
- When Chooser2 is compiled, the cached `StructA.MyProperty` with index 0 is found and used even though this binding (in Chooser2) has index 1.
In our copy of the engine, we just added `ContextIndex` to `FCompiledBindingCacheId` and added it to `operator==` and `GetTypeHash` if anyone else is interested. But please, consider including a proper fix in the upcoming updates.