Last active
August 13, 2020 13:07
-
-
Save srv7/0e5c88c115030c11fdd37b2fa3433323 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
sil_stage canonical | |
import Builtin | |
import Swift | |
import SwiftShims | |
import Foundation | |
struct City : Hashable { | |
@_hasStorage let name: String { get } | |
@_hasStorage let id: Int { get } | |
init(name: String, id: Int) | |
var hashValue: Int { get } | |
func hash(into hasher: inout Hasher) | |
@_implements(Equatable, ==(_:_:)) static func __derived_struct_equals(_ a: City, _ b: City) -> Bool | |
} | |
@_hasStorage @_hasInitialValue var selected: [AnyHashable] { get set } | |
@_hasStorage @_hasInitialValue let city: City { get } | |
@_hasStorage @_hasInitialValue let isCity: City? { get } | |
// selected | |
sil_global hidden @$s15AnyHashableTest8selectedSays0aB0VGvp : $Array<AnyHashable> | |
// city | |
sil_global hidden [let] @$s15AnyHashableTest4cityAA4CityVvp : $City | |
// isCity | |
sil_global hidden [let] @$s15AnyHashableTest6isCityAA0E0VSgvp : $Optional<City> | |
// main | |
sil @main : $@convention(c) (Int32, UnsafeMutablePointer<Optional<UnsafeMutablePointer<Int8>>>) -> Int32 { | |
bb0(%0 : $Int32, %1 : $UnsafeMutablePointer<Optional<UnsafeMutablePointer<Int8>>>): | |
alloc_global @$s15AnyHashableTest8selectedSays0aB0VGvp // id: %2 | |
%3 = global_addr @$s15AnyHashableTest8selectedSays0aB0VGvp : $*Array<AnyHashable> // users: %10, %42, %32 | |
%4 = integer_literal $Builtin.Word, 0 // user: %6 | |
// function_ref _allocateUninitializedArray<A>(_:) | |
%5 = function_ref @$ss27_allocateUninitializedArrayySayxG_BptBwlF : $@convention(thin) <τ_0_0> (Builtin.Word) -> (@owned Array<τ_0_0>, Builtin.RawPointer) // user: %6 | |
%6 = apply %5<AnyHashable>(%4) : $@convention(thin) <τ_0_0> (Builtin.Word) -> (@owned Array<τ_0_0>, Builtin.RawPointer) // users: %8, %7 | |
%7 = tuple_extract %6 : $(Array<AnyHashable>, Builtin.RawPointer), 0 // user: %10 | |
%8 = tuple_extract %6 : $(Array<AnyHashable>, Builtin.RawPointer), 1 // user: %9 | |
%9 = pointer_to_address %8 : $Builtin.RawPointer to [strict] $*AnyHashable | |
store %7 to %3 : $*Array<AnyHashable> // id: %10 | |
alloc_global @$s15AnyHashableTest4cityAA4CityVvp // id: %11 | |
%12 = global_addr @$s15AnyHashableTest4cityAA4CityVvp : $*City // users: %26, %24 | |
%13 = metatype $@thin City.Type // user: %23 | |
%14 = string_literal utf8 "南京" // user: %19 | |
%15 = integer_literal $Builtin.Word, 6 // user: %19 | |
%16 = integer_literal $Builtin.Int1, 0 // user: %19 | |
%17 = metatype $@thin String.Type // user: %19 | |
// function_ref String.init(_builtinStringLiteral:utf8CodeUnitCount:isASCII:) | |
%18 = function_ref @$sSS21_builtinStringLiteral17utf8CodeUnitCount7isASCIISSBp_BwBi1_tcfC : $@convention(method) (Builtin.RawPointer, Builtin.Word, Builtin.Int1, @thin String.Type) -> @owned String // user: %19 | |
%19 = apply %18(%14, %15, %16, %17) : $@convention(method) (Builtin.RawPointer, Builtin.Word, Builtin.Int1, @thin String.Type) -> @owned String // user: %23 | |
%20 = integer_literal $Builtin.Int64, 11 // user: %21 | |
%21 = struct $Int (%20 : $Builtin.Int64) // user: %23 | |
// function_ref City.init(name:id:) | |
%22 = function_ref @$s15AnyHashableTest4CityV4name2idACSS_SitcfC : $@convention(method) (@owned String, Int, @thin City.Type) -> @owned City // user: %23 | |
%23 = apply %22(%19, %21, %13) : $@convention(method) (@owned String, Int, @thin City.Type) -> @owned City // user: %24 | |
store %23 to %12 : $*City // id: %24 | |
%25 = alloc_stack $City // users: %28, %38, %37, %31 | |
%26 = load %12 : $*City // users: %28, %27 | |
retain_value %26 : $City // id: %27 | |
store %26 to %25 : $*City // id: %28 | |
// function_ref _convertToAnyHashable<A>(_:) | |
%29 = function_ref @$ss21_convertToAnyHashableys0cD0VxSHRzlF : $@convention(thin) <τ_0_0 where τ_0_0 : Hashable> (@in_guaranteed τ_0_0) -> @out AnyHashable // user: %31 | |
%30 = alloc_stack $AnyHashable // users: %36, %34, %31 | |
%31 = apply %29<City>(%30, %25) : $@convention(thin) <τ_0_0 where τ_0_0 : Hashable> (@in_guaranteed τ_0_0) -> @out AnyHashable | |
%32 = begin_access [modify] [dynamic] %3 : $*Array<AnyHashable> // users: %35, %34 | |
// function_ref Array.append(_:) | |
%33 = function_ref @$sSa6appendyyxnF : $@convention(method) <τ_0_0> (@in τ_0_0, @inout Array<τ_0_0>) -> () // user: %34 | |
%34 = apply %33<AnyHashable>(%30, %32) : $@convention(method) <τ_0_0> (@in τ_0_0, @inout Array<τ_0_0>) -> () | |
end_access %32 : $*Array<AnyHashable> // id: %35 | |
dealloc_stack %30 : $*AnyHashable // id: %36 | |
destroy_addr %25 : $*City // id: %37 | |
dealloc_stack %25 : $*City // id: %38 | |
alloc_global @$s15AnyHashableTest6isCityAA0E0VSgvp // id: %39 | |
%40 = global_addr @$s15AnyHashableTest6isCityAA0E0VSgvp : $*Optional<City> // users: %59, %66, %64, %62 | |
%41 = alloc_stack $Optional<AnyHashable> // users: %69, %61, %58, %57, %55, %52 | |
%42 = begin_access [read] [dynamic] %3 : $*Array<AnyHashable> // users: %43, %45 | |
%43 = load %42 : $*Array<AnyHashable> // users: %54, %47, %44 | |
retain_value %43 : $Array<AnyHashable> // id: %44 | |
end_access %42 : $*Array<AnyHashable> // id: %45 | |
%46 = alloc_stack $Array<AnyHashable> // users: %48, %47, %68, %56 | |
store %43 to %46 : $*Array<AnyHashable> // id: %47 | |
%48 = load %46 : $*Array<AnyHashable> // user: %50 | |
%49 = alloc_stack $Array<AnyHashable> // users: %50, %53, %52 | |
store %48 to %49 : $*Array<AnyHashable> // id: %50 | |
// function_ref Collection.first.getter | |
%51 = function_ref @$sSlsE5first7ElementQzSgvg : $@convention(method) <τ_0_0 where τ_0_0 : Collection> (@in_guaranteed τ_0_0) -> @out Optional<τ_0_0.Element> // user: %52 | |
%52 = apply %51<[AnyHashable]>(%41, %49) : $@convention(method) <τ_0_0 where τ_0_0 : Collection> (@in_guaranteed τ_0_0) -> @out Optional<τ_0_0.Element> | |
dealloc_stack %49 : $*Array<AnyHashable> // id: %53 | |
release_value %43 : $Array<AnyHashable> // id: %54 | |
switch_enum_addr %41 : $*Optional<AnyHashable>, case #Optional.some!enumelt.1: bb2, case #Optional.none!enumelt: bb1 // id: %55 | |
bb1: // Preds: bb0 | |
dealloc_stack %46 : $*Array<AnyHashable> // id: %56 | |
destroy_addr %41 : $*Optional<AnyHashable> // id: %57 | |
dealloc_stack %41 : $*Optional<AnyHashable> // id: %58 | |
inject_enum_addr %40 : $*Optional<City>, #Optional.none!enumelt // id: %59 | |
br bb6 // id: %60 | |
bb2: // Preds: bb0 | |
%61 = unchecked_take_enum_data_addr %41 : $*Optional<AnyHashable>, #Optional.some!enumelt.1 // user: %63 | |
%62 = init_enum_data_addr %40 : $*Optional<City>, #Optional.some!enumelt.1 // user: %63 | |
checked_cast_addr_br take_always AnyHashable in %61 : $*AnyHashable to City in %62 : $*City, bb3, bb4 // id: %63 | |
bb3: // Preds: bb2 | |
inject_enum_addr %40 : $*Optional<City>, #Optional.some!enumelt.1 // id: %64 | |
br bb5 // id: %65 | |
bb4: // Preds: bb2 | |
inject_enum_addr %40 : $*Optional<City>, #Optional.none!enumelt // id: %66 | |
br bb5 // id: %67 | |
bb5: // Preds: bb4 bb3 | |
dealloc_stack %46 : $*Array<AnyHashable> // id: %68 | |
dealloc_stack %41 : $*Optional<AnyHashable> // id: %69 | |
br bb6 // id: %70 | |
bb6: // Preds: bb1 bb5 | |
%71 = integer_literal $Builtin.Int32, 0 // user: %72 | |
%72 = struct $Int32 (%71 : $Builtin.Int32) // user: %73 | |
return %72 : $Int32 // id: %73 | |
} // end sil function 'main' | |
// City.name.getter | |
sil hidden [transparent] @$s15AnyHashableTest4CityV4nameSSvg : $@convention(method) (@guaranteed City) -> @owned String { | |
// %0 // users: %2, %1 | |
bb0(%0 : $City): | |
debug_value %0 : $City, let, name "self", argno 1 // id: %1 | |
%2 = struct_extract %0 : $City, #City.name // users: %4, %3 | |
retain_value %2 : $String // id: %3 | |
return %2 : $String // id: %4 | |
} // end sil function '$s15AnyHashableTest4CityV4nameSSvg' | |
// City.id.getter | |
sil hidden [transparent] @$s15AnyHashableTest4CityV2idSivg : $@convention(method) (@guaranteed City) -> Int { | |
// %0 // users: %2, %1 | |
bb0(%0 : $City): | |
debug_value %0 : $City, let, name "self", argno 1 // id: %1 | |
%2 = struct_extract %0 : $City, #City.id // user: %3 | |
return %2 : $Int // id: %3 | |
} // end sil function '$s15AnyHashableTest4CityV2idSivg' | |
// City.init(name:id:) | |
sil hidden @$s15AnyHashableTest4CityV4name2idACSS_SitcfC : $@convention(method) (@owned String, Int, @thin City.Type) -> @owned City { | |
// %0 // user: %3 | |
// %1 // user: %3 | |
bb0(%0 : $String, %1 : $Int, %2 : $@thin City.Type): | |
%3 = struct $City (%0 : $String, %1 : $Int) // user: %4 | |
return %3 : $City // id: %4 | |
} // end sil function '$s15AnyHashableTest4CityV4name2idACSS_SitcfC' | |
// City.hashValue.getter | |
sil hidden @$s15AnyHashableTest4CityV9hashValueSivg : $@convention(method) (@guaranteed City) -> Int { | |
// %0 // users: %3, %1 | |
bb0(%0 : $City): | |
debug_value %0 : $City, let, name "self", argno 1 // id: %1 | |
%2 = alloc_stack $City // users: %3, %6, %5 | |
store %0 to %2 : $*City // id: %3 | |
// function_ref _hashValue<A>(for:) | |
%4 = function_ref @$ss10_hashValue3forSix_tSHRzlF : $@convention(thin) <τ_0_0 where τ_0_0 : Hashable> (@in_guaranteed τ_0_0) -> Int // user: %5 | |
%5 = apply %4<City>(%2) : $@convention(thin) <τ_0_0 where τ_0_0 : Hashable> (@in_guaranteed τ_0_0) -> Int // user: %7 | |
dealloc_stack %2 : $*City // id: %6 | |
return %5 : $Int // id: %7 | |
} // end sil function '$s15AnyHashableTest4CityV9hashValueSivg' | |
// _hashValue<A>(for:) | |
sil [serialized] [always_inline] @$ss10_hashValue3forSix_tSHRzlF : $@convention(thin) <τ_0_0 where τ_0_0 : Hashable> (@in_guaranteed τ_0_0) -> Int | |
// City.hash(into:) | |
sil hidden @$s15AnyHashableTest4CityV4hash4intoys6HasherVz_tF : $@convention(method) (@inout Hasher, @guaranteed City) -> () { | |
// %0 // users: %17, %8, %2 | |
// %1 // users: %14, %4, %3 | |
bb0(%0 : $*Hasher, %1 : $City): | |
debug_value_addr %0 : $*Hasher, var, name "hasher", argno 1 // id: %2 | |
debug_value %1 : $City, let, name "self", argno 2 // id: %3 | |
%4 = struct_extract %1 : $City, #City.name // users: %7, %5 | |
retain_value %4 : $String // id: %5 | |
%6 = alloc_stack $String // users: %7, %13, %12, %10 | |
store %4 to %6 : $*String // id: %7 | |
%8 = begin_access [modify] [static] %0 : $*Hasher // users: %11, %10 | |
// function_ref Hasher.combine<A>(_:) | |
%9 = function_ref @$ss6HasherV7combineyyxSHRzlF : $@convention(method) <τ_0_0 where τ_0_0 : Hashable> (@in_guaranteed τ_0_0, @inout Hasher) -> () // user: %10 | |
%10 = apply %9<String>(%6, %8) : $@convention(method) <τ_0_0 where τ_0_0 : Hashable> (@in_guaranteed τ_0_0, @inout Hasher) -> () | |
end_access %8 : $*Hasher // id: %11 | |
destroy_addr %6 : $*String // id: %12 | |
dealloc_stack %6 : $*String // id: %13 | |
%14 = struct_extract %1 : $City, #City.id // user: %16 | |
%15 = alloc_stack $Int // users: %16, %21, %19 | |
store %14 to %15 : $*Int // id: %16 | |
%17 = begin_access [modify] [static] %0 : $*Hasher // users: %20, %19 | |
// function_ref Hasher.combine<A>(_:) | |
%18 = function_ref @$ss6HasherV7combineyyxSHRzlF : $@convention(method) <τ_0_0 where τ_0_0 : Hashable> (@in_guaranteed τ_0_0, @inout Hasher) -> () // user: %19 | |
%19 = apply %18<Int>(%15, %17) : $@convention(method) <τ_0_0 where τ_0_0 : Hashable> (@in_guaranteed τ_0_0, @inout Hasher) -> () | |
end_access %17 : $*Hasher // id: %20 | |
dealloc_stack %15 : $*Int // id: %21 | |
%22 = tuple () // user: %23 | |
return %22 : $() // id: %23 | |
} // end sil function '$s15AnyHashableTest4CityV4hash4intoys6HasherVz_tF' | |
// Hasher.combine<A>(_:) | |
sil [serialized] [always_inline] @$ss6HasherV7combineyyxSHRzlF : $@convention(method) <τ_0_0 where τ_0_0 : Hashable> (@in_guaranteed τ_0_0, @inout Hasher) -> () | |
// static City.__derived_struct_equals(_:_:) | |
sil hidden @$s15AnyHashableTest4CityV23__derived_struct_equalsySbAC_ACtFZ : $@convention(method) (@guaranteed City, @guaranteed City, @thin City.Type) -> Bool { | |
// %0 // users: %17, %7, %3 | |
// %1 // users: %18, %9, %4 | |
// %2 // user: %5 | |
bb0(%0 : $City, %1 : $City, %2 : $@thin City.Type): | |
debug_value %0 : $City, let, name "a", argno 1 // id: %3 | |
debug_value %1 : $City, let, name "b", argno 2 // id: %4 | |
debug_value %2 : $@thin City.Type, let, name "self", argno 3 // id: %5 | |
%6 = metatype $@thin String.Type // user: %12 | |
%7 = struct_extract %0 : $City, #City.name // users: %14, %12, %8 | |
retain_value %7 : $String // id: %8 | |
%9 = struct_extract %1 : $City, #City.name // users: %13, %12, %10 | |
retain_value %9 : $String // id: %10 | |
// function_ref static String.== infix(_:_:) | |
%11 = function_ref @$sSS2eeoiySbSS_SStFZ : $@convention(method) (@guaranteed String, @guaranteed String, @thin String.Type) -> Bool // user: %12 | |
%12 = apply %11(%7, %9, %6) : $@convention(method) (@guaranteed String, @guaranteed String, @thin String.Type) -> Bool // user: %15 | |
release_value %9 : $String // id: %13 | |
release_value %7 : $String // id: %14 | |
%15 = struct_extract %12 : $Bool, #Bool._value // user: %16 | |
cond_br %15, bb1, bb4 // id: %16 | |
bb1: // Preds: bb0 | |
%17 = struct_extract %0 : $City, #City.id // user: %19 | |
%18 = struct_extract %1 : $City, #City.id // user: %20 | |
%19 = struct_extract %17 : $Int, #Int._value // user: %21 | |
%20 = struct_extract %18 : $Int, #Int._value // user: %21 | |
%21 = builtin "cmp_eq_Int64"(%19 : $Builtin.Int64, %20 : $Builtin.Int64) : $Builtin.Int1 // user: %22 | |
cond_br %21, bb2, bb3 // id: %22 | |
bb2: // Preds: bb1 | |
%23 = integer_literal $Builtin.Int1, -1 // user: %24 | |
%24 = struct $Bool (%23 : $Builtin.Int1) // user: %25 | |
br bb5(%24 : $Bool) // id: %25 | |
bb3: // Preds: bb1 | |
%26 = integer_literal $Builtin.Int1, 0 // user: %27 | |
%27 = struct $Bool (%26 : $Builtin.Int1) // user: %28 | |
br bb5(%27 : $Bool) // id: %28 | |
bb4: // Preds: bb0 | |
%29 = integer_literal $Builtin.Int1, 0 // user: %30 | |
%30 = struct $Bool (%29 : $Builtin.Int1) // user: %31 | |
br bb5(%30 : $Bool) // id: %31 | |
// %32 // user: %33 | |
bb5(%32 : $Bool): // Preds: bb2 bb3 bb4 | |
return %32 : $Bool // id: %33 | |
} // end sil function '$s15AnyHashableTest4CityV23__derived_struct_equalsySbAC_ACtFZ' | |
// Bool.init(_builtinBooleanLiteral:) | |
sil public_external [transparent] [serialized] @$sSb22_builtinBooleanLiteralSbBi1__tcfC : $@convention(method) (Builtin.Int1, @thin Bool.Type) -> Bool { | |
// %0 // user: %2 | |
bb0(%0 : $Builtin.Int1, %1 : $@thin Bool.Type): | |
%2 = struct $Bool (%0 : $Builtin.Int1) // user: %3 | |
return %2 : $Bool // id: %3 | |
} // end sil function '$sSb22_builtinBooleanLiteralSbBi1__tcfC' | |
// static String.== infix(_:_:) | |
sil [serialized] [always_inline] [readonly] [_semantics "string.equals"] @$sSS2eeoiySbSS_SStFZ : $@convention(method) (@guaranteed String, @guaranteed String, @thin String.Type) -> Bool | |
// static Int.== infix(_:_:) | |
sil public_external [transparent] [serialized] @$sSi2eeoiySbSi_SitFZ : $@convention(method) (Int, Int, @thin Int.Type) -> Bool { | |
// %0 // user: %3 | |
// %1 // user: %4 | |
bb0(%0 : $Int, %1 : $Int, %2 : $@thin Int.Type): | |
%3 = struct_extract %0 : $Int, #Int._value // user: %5 | |
%4 = struct_extract %1 : $Int, #Int._value // user: %5 | |
%5 = builtin "cmp_eq_Int64"(%3 : $Builtin.Int64, %4 : $Builtin.Int64) : $Builtin.Int1 // user: %6 | |
%6 = struct $Bool (%5 : $Builtin.Int1) // user: %7 | |
return %6 : $Bool // id: %7 | |
} // end sil function '$sSi2eeoiySbSi_SitFZ' | |
// protocol witness for Hashable.hashValue.getter in conformance City | |
sil private [transparent] [thunk] @$s15AnyHashableTest4CityVSHAASH9hashValueSivgTW : $@convention(witness_method: Hashable) (@in_guaranteed City) -> Int { | |
// %0 // user: %1 | |
bb0(%0 : $*City): | |
%1 = load %0 : $*City // user: %3 | |
// function_ref City.hashValue.getter | |
%2 = function_ref @$s15AnyHashableTest4CityV9hashValueSivg : $@convention(method) (@guaranteed City) -> Int // user: %3 | |
%3 = apply %2(%1) : $@convention(method) (@guaranteed City) -> Int // user: %4 | |
return %3 : $Int // id: %4 | |
} // end sil function '$s15AnyHashableTest4CityVSHAASH9hashValueSivgTW' | |
// protocol witness for Hashable.hash(into:) in conformance City | |
sil private [transparent] [thunk] @$s15AnyHashableTest4CityVSHAASH4hash4intoys6HasherVz_tFTW : $@convention(witness_method: Hashable) (@inout Hasher, @in_guaranteed City) -> () { | |
// %0 // user: %4 | |
// %1 // user: %2 | |
bb0(%0 : $*Hasher, %1 : $*City): | |
%2 = load %1 : $*City // user: %4 | |
// function_ref City.hash(into:) | |
%3 = function_ref @$s15AnyHashableTest4CityV4hash4intoys6HasherVz_tF : $@convention(method) (@inout Hasher, @guaranteed City) -> () // user: %4 | |
%4 = apply %3(%0, %2) : $@convention(method) (@inout Hasher, @guaranteed City) -> () | |
%5 = tuple () // user: %6 | |
return %5 : $() // id: %6 | |
} // end sil function '$s15AnyHashableTest4CityVSHAASH4hash4intoys6HasherVz_tFTW' | |
// protocol witness for Hashable._rawHashValue(seed:) in conformance City | |
sil private [transparent] [thunk] [always_inline] @$s15AnyHashableTest4CityVSHAASH13_rawHashValue4seedS2i_tFTW : $@convention(witness_method: Hashable) (Int, @in_guaranteed City) -> Int { | |
// %0 // user: %3 | |
// %1 // user: %3 | |
bb0(%0 : $Int, %1 : $*City): | |
// function_ref Hashable._rawHashValue(seed:) | |
%2 = function_ref @$sSHsE13_rawHashValue4seedS2i_tF : $@convention(method) <τ_0_0 where τ_0_0 : Hashable> (Int, @in_guaranteed τ_0_0) -> Int // user: %3 | |
%3 = apply %2<City>(%0, %1) : $@convention(method) <τ_0_0 where τ_0_0 : Hashable> (Int, @in_guaranteed τ_0_0) -> Int // user: %4 | |
return %3 : $Int // id: %4 | |
} // end sil function '$s15AnyHashableTest4CityVSHAASH13_rawHashValue4seedS2i_tFTW' | |
// Hashable._rawHashValue(seed:) | |
sil [serialized] [always_inline] @$sSHsE13_rawHashValue4seedS2i_tF : $@convention(method) <τ_0_0 where τ_0_0 : Hashable> (Int, @in_guaranteed τ_0_0) -> Int | |
// protocol witness for static Equatable.== infix(_:_:) in conformance City | |
sil private [transparent] [thunk] @$s15AnyHashableTest4CityVSQAASQ2eeoiySbx_xtFZTW : $@convention(witness_method: Equatable) (@in_guaranteed City, @in_guaranteed City, @thick City.Type) -> Bool { | |
// %0 // user: %3 | |
// %1 // user: %4 | |
bb0(%0 : $*City, %1 : $*City, %2 : $@thick City.Type): | |
%3 = load %0 : $*City // user: %7 | |
%4 = load %1 : $*City // user: %7 | |
%5 = metatype $@thin City.Type // user: %7 | |
// function_ref static City.__derived_struct_equals(_:_:) | |
%6 = function_ref @$s15AnyHashableTest4CityV23__derived_struct_equalsySbAC_ACtFZ : $@convention(method) (@guaranteed City, @guaranteed City, @thin City.Type) -> Bool // user: %7 | |
%7 = apply %6(%3, %4, %5) : $@convention(method) (@guaranteed City, @guaranteed City, @thin City.Type) -> Bool // user: %8 | |
return %7 : $Bool // id: %8 | |
} // end sil function '$s15AnyHashableTest4CityVSQAASQ2eeoiySbx_xtFZTW' | |
// _allocateUninitializedArray<A>(_:) | |
sil [serialized] [always_inline] [_semantics "array.uninitialized_intrinsic"] @$ss27_allocateUninitializedArrayySayxG_BptBwlF : $@convention(thin) <τ_0_0> (Builtin.Word) -> (@owned Array<τ_0_0>, Builtin.RawPointer) | |
// String.init(_builtinStringLiteral:utf8CodeUnitCount:isASCII:) | |
sil [serialized] [always_inline] [readonly] [_semantics "string.makeUTF8"] @$sSS21_builtinStringLiteral17utf8CodeUnitCount7isASCIISSBp_BwBi1_tcfC : $@convention(method) (Builtin.RawPointer, Builtin.Word, Builtin.Int1, @thin String.Type) -> @owned String | |
// Int.init(_builtinIntegerLiteral:) | |
sil public_external [transparent] [serialized] @$sSi22_builtinIntegerLiteralSiBI_tcfC : $@convention(method) (Builtin.IntLiteral, @thin Int.Type) -> Int { | |
// %0 // user: %2 | |
bb0(%0 : $Builtin.IntLiteral, %1 : $@thin Int.Type): | |
%2 = builtin "s_to_s_checked_trunc_IntLiteral_Int64"(%0 : $Builtin.IntLiteral) : $(Builtin.Int64, Builtin.Int1) // user: %3 | |
%3 = tuple_extract %2 : $(Builtin.Int64, Builtin.Int1), 0 // user: %4 | |
%4 = struct $Int (%3 : $Builtin.Int64) // user: %5 | |
return %4 : $Int // id: %5 | |
} // end sil function '$sSi22_builtinIntegerLiteralSiBI_tcfC' | |
// _convertToAnyHashable<A>(_:) | |
sil [serialized] @$ss21_convertToAnyHashableys0cD0VxSHRzlF : $@convention(thin) <τ_0_0 where τ_0_0 : Hashable> (@in_guaranteed τ_0_0) -> @out AnyHashable | |
// Array.append(_:) | |
sil [serialized] [_semantics "array.append_element"] @$sSa6appendyyxnF : $@convention(method) <τ_0_0> (@in τ_0_0, @inout Array<τ_0_0>) -> () | |
// Collection.first.getter | |
sil [serialized] @$sSlsE5first7ElementQzSgvg : $@convention(method) <τ_0_0 where τ_0_0 : Collection> (@in_guaranteed τ_0_0) -> @out Optional<τ_0_0.Element> | |
sil_witness_table hidden City: Hashable module AnyHashableTest { | |
base_protocol Equatable: City: Equatable module AnyHashableTest | |
method #Hashable.hashValue!getter.1: <Self where Self : Hashable> (Self) -> () -> Int : @$s15AnyHashableTest4CityVSHAASH9hashValueSivgTW // protocol witness for Hashable.hashValue.getter in conformance City | |
method #Hashable.hash!1: <Self where Self : Hashable> (Self) -> (inout Hasher) -> () : @$s15AnyHashableTest4CityVSHAASH4hash4intoys6HasherVz_tFTW // protocol witness for Hashable.hash(into:) in conformance City | |
method #Hashable._rawHashValue!1: <Self where Self : Hashable> (Self) -> (Int) -> Int : @$s15AnyHashableTest4CityVSHAASH13_rawHashValue4seedS2i_tFTW // protocol witness for Hashable._rawHashValue(seed:) in conformance City | |
} | |
sil_witness_table hidden City: Equatable module AnyHashableTest { | |
method #Equatable."=="!1: <Self where Self : Equatable> (Self.Type) -> (Self, Self) -> Bool : @$s15AnyHashableTest4CityVSQAASQ2eeoiySbx_xtFZTW // protocol witness for static Equatable.== infix(_:_:) in conformance City | |
} | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment