In the following code snippet, foo is actually nil because the compiler decides to pick Optional.none instead of MyTest.none. I spent a long time tracking this down!
Another case where this occurs is in code like this:
There are no warnings when this happens. I think there should probably at least be a fixit warning that says something about there being an ambiguity here and offering the user fix it with either `Optional.none` or `MyTest.none`.