Files
swift-mirror/test/Sema/availability.swift
Doug Gregor 8e4efaf51c [Sema] Diagnose availability via TypeReprs rather than Types.
The code that diagnosed availability for types was reverse-engineering
the Type itself, rather than making use of the declaration already
stored within the TypeRepr. 

More importantly, it would completely skip nested types, so it would
fail to diagnose a deprecated/unavailable “Bar” in “Foo.Bar”. 

Replace the type-inspecting check with a much-simpler walk over the 
components of the IdentTypeRepr that looks at the declarations stored 
in the IdentTypeRepr directly. This provides proper source-location
information and handles nested types.

This is a source-breaking change for ill-formed Swift 3 code that used
nested type references to refer to something that should be unavailable.
Given that such Swift 3 code was ill-formed, and most uses of it would
crash at runtime, we likely do not need to provide specific logic to
address this in Swift 3 compatibility mode.
2016-12-02 14:48:54 -08:00

6.1 KiB