Commits

Doug Gregor committed dc7dcc7fc54
Implement explicit (unchecked!) downcasting for class types. This introduces support for the syntax Derived(baseObj) to downcast from a class type to one of its subclasses. This still needs more language design and implementation work, including: - This overloads the X(y) syntax again, which already means either "coerce y to type X, performing implicit conversions if necessary" or "construct a value of type X from y". It's no actually ambiguous, because the first case won't apply for downcasts and the second case is limited to value types, but it makes me wonder whether we want a different syntax for the first case. - We need this to be a checked cast, but don't have the runtime infrastructure to do so yet. I've left this as a FIXME. However, the Objective-C importer is fairly useless because everything that creates an object returns an "id", "id" maps to "NSObject", and then the type system doesn't let you get from NSObject back to the type you care about. So, this lets you explicitly do the cast. Swift SVN r3279