swift
a6dad009 - [SE-0095] Initial parsing implementation for '&' composition syntax

Commit
8 years ago
[SE-0095] Initial parsing implementation for '&' composition syntax This commit defines the ‘Any’ keyword, implements parsing for composing types with an infix ‘&’, and provides a fixit to convert ‘protocol<>’ - Updated tests & stdlib for new composition syntax - Provide errors when compositions used in inheritance. Any is treated as a contextual keyword. The name ‘Any’ is used emit the empty composition type. We have to stop user declaring top level types spelled ‘Any’ too.
Author
Committer
Parents
  • include/swift
    • AST
      • File
        ASTContext.h
      • File
        DiagnosticsParse.def
      • File
        DiagnosticsSema.def
      • File
        KnownIdentifiers.def
      • File
        TypeRepr.h
    • Parse
      • File
        Parser.h
  • lib
    • AST
      • File
        ASTContext.cpp
      • File
        TypeRepr.cpp
    • ClangImporter
      • File
        ImportType.cpp
    • IDE
      • File
        SyntaxModel.cpp
    • Parse
      • File
        ParseDecl.cpp
      • File
        ParseExpr.cpp
      • File
        ParseGeneric.cpp
      • File
        ParseType.cpp
    • Sema
      • File
        TypeCheckDecl.cpp
      • File
        TypeCheckType.cpp
  • stdlib
    • private/StdlibUnittest
      • StdlibUnittest.swift.gyb
    • public
      • SDK/Foundation
        • File
          URL.swift
      • core
        • File
          ClosedRange.swift
        • File
          Policy.swift
        • Range.swift.gyb
        • Slice.swift.gyb
        • Sort.swift.gyb
  • test
    • 1_stdlib
      • ArrayBridge.swift.gyb
      • File
        PrintDiagnostics.swift
      • File
        RuntimeObjC.swift
      • File
        TypeName.swift
    • ClangModules
      • File
        objc_ir.swift
      • File
        protocol_metatype_object_conversion.swift
    • Constraints
      • File
        casts.swift
      • File
        dynamic_lookup.swift
      • File
        existential_metatypes.swift
      • File
        generic_protocol_witness.swift
      • File
        protocols.swift
      • File
        tuple.swift
    • DebugInfo
      • File
        pcomp.swift
      • File
        protocol-sugar.swift
      • File
        protocol.swift
    • Generics
      • File
        existential_restrictions.swift
      • File
        function_decls.swift
      • File
        function_defs.swift
      • File
        inheritance.swift
      • File
        invalid.swift
    • IDE
      • Inputs/mock-sdk
        • File
          Foo.printed.txt
      • File
        complete_enum_elements.swift
      • File
        complete_from_stdlib.swift
      • File
        complete_from_swift_module.swift
      • File
        complete_pattern.swift
      • File
        complete_type.swift
      • File
        complete_type_any.swift.tmp.types.txt
      • File
        complete_value_expr.swift
      • File
        int.complete_type_any.swift.tmp.types.txt
      • File
        print_ast_tc_decls.swift
      • File
        print_types.swift
    • IRGen
      • File
        abitypes.swift
      • File
        associated_type_witness.swift
      • File
        builtins.swift
      • File
        class_bounded_generics.swift
      • File
        generic_casts.swift
      • File
        objc_property_attrs.swift
      • File
        objc_protocols.swift
      • File
        objc_type_encoding.swift
      • File
        protocol_metadata.swift
      • File
        type_layout_reference_storage.swift
      • File
        type_layout_reference_storage_objc.swift
    • Interpreter
      • File
        generic_casts.swift
      • File
        protocol_lookup.swift
      • File
        protocols.swift
    • Parse
      • File
        generic_disambiguation.swift
      • File
        matching_patterns.swift
      • File
        metatype_object_conversion.swift
      • File
        recovery.swift
    • PrintAsObjC
      • File
        local-types.swift
      • File
        protocols.swift
    • Reflection/Inputs
      • File
        TypeLowering.swift
    • RemoteAST
      • File
        nominal_types.swift
    • SILGen
      • File
        boxed_existentials.swift
      • File
        builtins.swift
      • File
        c_function_pointers.swift
      • File
        class_bound_protocols.swift
      • File
        existential_erasure.swift
      • File
        existential_metatypes.swift
      • File
        generic_signatures.swift
      • File
        mangling.swift
      • File
        metatypes.swift
      • File
        objc_protocols.swift
    • SILOptimizer
      • File
        spec_conf2.swift
    • Serialization/Inputs
      • File
        def_class.swift
      • File
        def_struct.swift
    • attr
      • File
        attr_objc.swift
    • decl
      • inherit
        • File
          inherit.swift
      • File
        overload.swift
    • expr
      • cast
        • File
          as_coerce.swift
      • File
        expressions.swift
      • postfix/call
        • File
          construction.swift
    • stmt
      • File
        statements.swift
    • type
      • File
        protocol_composition.swift
      • File
        protocol_types.swift