Protocol with associated type issues

The attached test project (Android library) has issues compiling code using a protocol with associated type. The code compiles fine in Xcode. Using Elements/Fire .2485.

ITypedField is a protocol with associated type ValueType.
IStorableField is a regular protocol.
Both have IFormComponent and IField as ancestors.

  1. If IStorableField extension is defined with constraint Self: ITypedField, then ValueType isn’t recognized in extension. The compiler complains about unknown type.

  2. If I use any property from IField or IFormComponent in the extension (other than IField.updating) compilation fails with System.NullReferenceException.

  3. If ValueType is constrained as Equatable, the TestBoolField class doesn’t compile (Generic parameter doesn’t fulfill constraint). I’m not sure if this is even doable in Android as Bool doesn’t implement Equatable. Using extension Bool: Equatable {} doesn’t help.

  4. If I remove Equatable constraint from ValueType this part goes ok, but then the compiler complains that getters and setters for some properties aren’t implemented.

AssociatedTypeTest.zip (11.2 KB)

Thanks, logged as bugs://84132