Under Review

Type checker issues with aliased tuple type

I have my own tuple type defined as:

typedef MGRS as [String, String, Number, Number];

However, I am encountering a lot of pain trying to use it elsewhere in my code because the type checker does not seem to recognize it properly.

When using it as a return type, I get the error:

Object of type '$.NavUtils.Mgrs' does not match return type '$.NavUtils.Mgrs'.

When indexing my tuple, I get the warning:

Cannot determine if container access is using container type.

When using it to define a callback type, I get the error:

Cannot assign value '$.Toybox.Lang.Method(mgrs as $.NavUtils.Mgrs) as Void' to member ':_callback'.

Where _callback is typed exactly as Method(mgrs as $.NavUtils.Mgrs) as Void


The only workaround seems to be to disable the type checker.