swift
77dd9b29 - Split exact-subclass and bindable-to-subclass queries.

Commit
9 years ago
Split exact-subclass and bindable-to-subclass queries. In many places, we're interested in whether a type with archetypes *might be* a superclass of another type with the right bindings, particularly in the optimizer. Provide a separate Type::isBindableToSuperclassOf method that performs this check. Use it in the devirtualizer to fix rdar://problem/24993618. Using it might unblock other places where the optimizer is conservative, but we can fix those separately.
Author
Committer
Parents
  • include/swift
    • AST
      • File
        Types.h
    • SIL
      • File
        SILType.h
      • File
        TypeSubstCloner.h
  • lib
    • AST
      • File
        ASTVerifier.cpp
      • File
        ArchetypeBuilder.cpp
      • File
        ProtocolConformance.cpp
      • File
        Type.cpp
    • ClangImporter
      • File
        ImportType.cpp
    • SIL
      • File
        DynamicCasts.cpp
      • File
        SILVerifier.cpp
    • SILOptimizer
      • Analysis
        • File
          AliasAnalysis.cpp
      • IPO
        • File
          PerformanceInliner.cpp
      • SILCombiner
        • File
          SILCombinerCastVisitors.cpp
      • Transforms
        • File
          SpeculativeDevirtualizer.cpp
      • Utils
        • File
          Devirtualize.cpp
        • File
          Local.cpp
  • test
    • Constraints
      • File
        generic_super_constraint.swift
      • File
        inherited_generic_conformance.swift
    • SILOptimizer
      • File
        devirt_concrete_subclass_of_generic_class.swift
    • decl/class
      • File
        override.swift