Skip to content

Instantly share code, notes, and snippets.

@dan-zheng
Created July 13, 2018 22:11
Show Gist options
  • Save dan-zheng/e21ca8e1858012baf1feea7c2c35d5e8 to your computer and use it in GitHub Desktop.
Save dan-zheng/e21ca8e1858012baf1feea7c2c35d5e8 to your computer and use it in GitHub Desktop.
Swift struct stored property
$ swiftc -dump-ast stored.swift
(source_file
(struct_decl range=[stored.swift:1:1 - line:3:1] "Model" interface type='Model.Type' access=internal non-resilient
(pattern_binding_decl range=[stored.swift:2:3 - line:2:10]
(pattern_typed type='Float'
(pattern_named type='Float' 'w')
(type_ident
(component id='Float' bind=Swift.(file).Float))))
(var_decl range=[stored.swift:2:7 - line:2:7] "w" type='Float' interface type='Float' access=internal storage_kind=stored_with_trivial_accessors
(accessor_decl implicit range=[stored.swift:2:7 - line:2:7] 'anonname=0x7f83f5055fd0' interface type='(Model) -> () -> Float' access=internal get_for=w
(parameter_list
(parameter "self" type='Model' interface type='Model') range=[stored.swift:2:7 - line:2:7])
(parameter_list)
(brace_stmt implicit range=[stored.swift:2:7 - line:2:7]
(return_stmt implicit
(member_ref_expr implicit type='Float' decl=stored.(file)[email protected]:2:7 direct_to_storage
(declref_expr implicit type='Model' decl=stored.(file).Model.<anonymous>[email protected]:2:7 function_ref=unapplied)))))
(accessor_decl implicit range=[stored.swift:2:7 - line:2:7] 'anonname=0x7f83f5056238' interface type='(inout Model) -> (Float) -> ()' access=internal set_for=w
(parameter_list
(parameter "self" type='Model' interface type='Model' inout) range=[stored.swift:2:7 - line:2:7])
(parameter_list
(parameter "value" type='Float' interface type='Float') range=[stored.swift:2:7 - line:2:7])
(brace_stmt implicit range=[stored.swift:2:7 - line:2:7]
(assign_expr
(member_ref_expr implicit type='@lvalue Float' accessKind=write decl=stored.(file)[email protected]:2:7 direct_to_storage
(declref_expr implicit type='@lvalue Model' accessKind=readwrite decl=stored.(file).Model.<anonymous>[email protected]:2:7 function_ref=unapplied))
(declref_expr implicit type='Float' decl=stored.(file).Model.<anonymous>[email protected]:2:7 function_ref=unapplied))))
(accessor_decl implicit range=[stored.swift:2:7 - line:2:7] 'anonname=0x7f83f5057d00' interface type='(inout Model) -> (Builtin.RawPointer, inout Builtin.UnsafeValueBuffer) -> (Builtin.RawPointer, Builtin.RawPointer?)' access=internal materializeForSet_for=w
(parameter_list
(parameter "self" type='Model' interface type='Model' inout) range=[stored.swift:2:7 - line:2:7])
(parameter_list
(parameter "buffer" type='Builtin.RawPointer' interface type='Builtin.RawPointer')
(parameter "callbackStorage" type='Builtin.UnsafeValueBuffer' interface type='Builtin.UnsafeValueBuffer' inout) range=[stored.swift:2:7 - line:2:7])))
(accessor_decl implicit range=[stored.swift:2:7 - line:2:7] 'anonname=0x7f83f5055fd0' interface type='(Model) -> () -> Float' access=internal get_for=w
(parameter_list
(parameter "self" type='Model' interface type='Model') range=[stored.swift:2:7 - line:2:7])
(parameter_list)
(brace_stmt implicit range=[stored.swift:2:7 - line:2:7]
(return_stmt implicit
(member_ref_expr implicit type='Float' decl=stored.(file)[email protected]:2:7 direct_to_storage
(declref_expr implicit type='Model' decl=stored.(file).Model.<anonymous>[email protected]:2:7 function_ref=unapplied)))))
(accessor_decl implicit range=[stored.swift:2:7 - line:2:7] 'anonname=0x7f83f5056238' interface type='(inout Model) -> (Float) -> ()' access=internal set_for=w
(parameter_list
(parameter "self" type='Model' interface type='Model' inout) range=[stored.swift:2:7 - line:2:7])
(parameter_list
(parameter "value" type='Float' interface type='Float') range=[stored.swift:2:7 - line:2:7])
(brace_stmt implicit range=[stored.swift:2:7 - line:2:7]
(assign_expr
(member_ref_expr implicit type='@lvalue Float' accessKind=write decl=stored.(file)[email protected]:2:7 direct_to_storage
(declref_expr implicit type='@lvalue Model' accessKind=readwrite decl=stored.(file).Model.<anonymous>[email protected]:2:7 function_ref=unapplied))
(declref_expr implicit type='Float' decl=stored.(file).Model.<anonymous>[email protected]:2:7 function_ref=unapplied))))
(accessor_decl implicit range=[stored.swift:2:7 - line:2:7] 'anonname=0x7f83f5057d00' interface type='(inout Model) -> (Builtin.RawPointer, inout Builtin.UnsafeValueBuffer) -> (Builtin.RawPointer, Builtin.RawPointer?)' access=internal materializeForSet_for=w
(parameter_list
(parameter "self" type='Model' interface type='Model' inout) range=[stored.swift:2:7 - line:2:7])
(parameter_list
(parameter "buffer" type='Builtin.RawPointer' interface type='Builtin.RawPointer')
(parameter "callbackStorage" type='Builtin.UnsafeValueBuffer' interface type='Builtin.UnsafeValueBuffer' inout) range=[stored.swift:2:7 - line:2:7]))
(constructor_decl implicit range=[stored.swift:1:8 - line:1:8] "init(w:)" interface type='(Model.Type) -> (Float) -> Model' access=internal designated
(parameter_list
(parameter "self" type='Model' interface type='Model' inout) range=[stored.swift:1:8 - line:1:8])
(parameter_list
(parameter "w" apiName=w type='Float' interface type='Float') range=[stored.swift:1:8 - line:1:8]))))
struct Model {
var w: Float
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment