Swift: fix ParentChild generation

There was an issue in case multiple inheritance from classes with
children was involved, where indexes would overlap.

The generated code structure has been reshuffled a bit, with
`Impl::getImmediateChildOf<Class>` predicates giving 0-based children
for a given class, including those coming from bases, and the final
`Impl::getImmediateChild` disjuncting the above on final classes only.

This removes the need of `getMaximumChildrenIndex<Class>`, and also
removes the code scanning alerts.

Also, comments were fixed addressing the review.
This commit is contained in:
Paolo Tranquilli
2022-08-30 10:15:11 +02:00
parent 3f4a330658
commit beb0472811
7 changed files with 4823 additions and 1817 deletions

View File

@@ -29,6 +29,10 @@ class ModifiedStubMarkedAsGeneratedError(Error):
pass
class RootElementHasChildren(Error):
pass
def get_ql_property(cls: schema.Class, prop: schema.Property, prev_child: str = "") -> ql.Property:
args = dict(
type=prop.type if not prop.is_predicate else "predicate",
@@ -123,14 +127,14 @@ def get_import(file: pathlib.Path, swift_dir: pathlib.Path):
return str(stem).replace("/", ".")
def get_types_used_by(cls: ql.Class):
def get_types_used_by(cls: ql.Class) -> typing.Iterable[str]:
for b in cls.bases:
yield b
yield b.base
for p in cls.properties:
yield p.type
def get_classes_used_by(cls: ql.Class):
def get_classes_used_by(cls: ql.Class) -> typing.List[str]:
return sorted(set(t for t in get_types_used_by(cls) if t[0].isupper()))
@@ -234,6 +238,10 @@ def generate(opts, renderer):
data = schema.load(input)
classes = {name: get_ql_class(cls, data.classes) for name, cls in data.classes.items()}
# element root is absent in tests
if schema.root_class_name in classes and classes[schema.root_class_name].has_children:
raise RootElementHasChildren
imports = {}
inheritance_graph = {name: cls.bases for name, cls in data.classes.items()}

View File

@@ -14,6 +14,7 @@ left behind and must be dealt with by hand.
import pathlib
from dataclasses import dataclass, field
import itertools
from typing import List, ClassVar, Union, Optional
import inflection
@@ -70,12 +71,21 @@ class Property:
return self.prev_child is not None
@dataclass
class Base:
base: str
prev: str = ""
def __str__(self):
return self.base
@dataclass
class Class:
template: ClassVar = 'ql_class'
name: str
bases: List[str] = field(default_factory=list)
bases: List[Base] = field(default_factory=list)
final: bool = False
properties: List[Property] = field(default_factory=list)
dir: pathlib.Path = pathlib.Path()
@@ -86,7 +96,8 @@ class Class:
ipa: bool = False
def __post_init__(self):
self.bases = sorted(self.bases)
bases = sorted(str(b) for b in self.bases)
self.bases = [Base(str(b), prev) for b, prev in zip(bases, itertools.chain([""], bases))]
if self.properties:
self.properties[0].first = True
@@ -99,13 +110,17 @@ class Class:
return self.dir / self.name
@property
def db_id(self):
def db_id(self) -> str:
return "@" + inflection.underscore(self.name)
@property
def has_children(self):
def has_children(self) -> bool:
return any(p.is_child for p in self.properties)
@property
def last_base(self) -> str:
return self.bases[-1].base if self.bases else ""
@dataclass
class Stub:

View File

@@ -4,80 +4,86 @@ import codeql.swift.elements
private module Impl {
{{#classes}}
int getMaximumChildrenIndex{{name}}({{name}} e) {
{{#root}}e = e and{{/root}}
result = 0
{{#bases}}
+ getMaximumChildrenIndex{{.}}(e)
{{/bases}}
{{#properties}}
{{#is_child}}
+ 1{{#is_repeated}}+ max(int i | exists(e.getImmediate{{singular}}(i)) | i){{/is_repeated}}
{{/is_child}}
{{/properties}}
}
Element getImmediateChildOf{{name}}({{name}} e, int index, string partialPredicateCall) {
{{! avoid unused argument warnings on root element, assuming the root element has no children }}
{{#root}}none(){{/root}}
{{^root}}
{{! b is the base offset 0, for ease of generation }}
{{! b<base> is constructed to be strictly greater than the indexes required for children coming from <base> }}
{{! n is the base offset for direct children, equal to the last base offsets from above }}
{{! n<child> is constructed to be strictly greater than the indexes for <child> children }}
exists(int b{{#bases}}, int b{{.}}{{/bases}}, int n{{#properties}}{{#is_child}}, int n{{singular}}{{/is_child}}{{/properties}} |
b = 0
{{#bases}}
and
b{{.}} = b{{prev}} + 1 + max(int i | i = -1 or exists(getImmediateChildOf{{.}}(e, i, _)) | i)
{{/bases}}
and
n = b{{last_base}}
{{#properties}}
{{#is_child}}
{{! n<child> is defined on top of the previous definition }}
{{! for single and optional properties it adds 1 (regardless of whether the optional property exists) }}
{{! for repeated it adds 1 + the maximum index (which works for repeated optional as well) }}
and
n{{singular}} = n{{prev_child}} + 1{{#is_repeated}}+ max(int i | i = -1 or exists(e.getImmediate{{singular}}(i)) | i){{/is_repeated}}
{{/is_child}}
{{/properties}} and (
none()
{{#bases}}
or
result = getImmediateChildOf{{.}}(e, index - b{{prev}}, partialPredicateCall)
{{/bases}}
{{#properties}}
{{#is_child}}
or
{{#is_repeated}}
result = e.getImmediate{{singular}}(index - n{{prev_child}}) and partialPredicateCall = "{{singular}}(" + (index - n{{prev_child}}).toString() + ")"
{{/is_repeated}}
{{^is_repeated}}
index = n{{prev_child}} and result = e.getImmediate{{singular}}() and partialPredicateCall = "{{singular}}()"
{{/is_repeated}}
{{/is_child}}
{{/properties}}
))
{{/root}}
}
{{/classes}}
/**
* Gets any of the "immediate" children of `e`. "Immediate" means not taking into account node resolution: for example
* if the AST child is the first of a series of conversions that would normally be hidden away, this will select the
* next conversion down the hidden AST tree instead of the corresponding fully uncoverted node at the bottom.
* Outside this module this file is mainly intended to be used to test uniqueness of parents.
*/
cached
Element getImmediateChild(Element e, int index, string partialAccessor) {
// why does this look more complicated than it should?
// * none() simplifies generation, as we can append `or ...` without a special case for the first item
none()
{{#classes}}
{{#has_children}}
or
exists(int n{{#properties}}{{#is_child}}, int n{{singular}}{{/is_child}}{{/properties}} |
n = 0{{#bases}} + getMaximumChildrenIndex{{.}}(e){{/bases}}
{{#properties}}
{{#is_child}}
and n{{singular}} = n{{prev_child}} + 1{{#is_repeated}} + max(int i | i = 0 or exists(e.({{name}}).getImmediate{{singular}}(i)) | i){{/is_repeated}}
{{/is_child}}
{{/properties}}
and (
none()
{{#properties}}
{{#is_child}}
or
{{#is_repeated}}
result = e.({{name}}).getImmediate{{singular}}(index - n{{prev_child}}) and partialAccessor = "{{singular}}(" + (index - n{{prev_child}}).toString() + ")"
{{/is_repeated}}
{{^is_repeated}}
index = n{{prev_child}} and result = e.({{name}}).getImmediate{{singular}}() and partialAccessor = "{{singular}}()"
{{/is_repeated}}
{{/is_child}}
{{/properties}}
))
{{/has_children}}
{{/classes}}
// why does this look more complicated than it should?
// * none() simplifies generation, as we can append `or ...` without a special case for the first item
none()
{{#classes}}
{{#final}}
or
result = getImmediateChildOf{{name}}(e, index, partialAccessor)
{{/final}}
{{/classes}}
}
}
/**
* Gets the "immediate" parent of `e`. "Immediate" means not taking into account node resolution: for example
* if `e` has conversions, `getImmediateParent(e)` will give the bottom conversion in the hidden AST.
*/
* Gets the "immediate" parent of `e`. "Immediate" means not taking into account node resolution: for example
* if `e` has conversions, `getImmediateParent(e)` will give the innermost conversion in the hidden AST.
*/
Element getImmediateParent(Element e) {
// `unique` is used here to tell the optimizer that there is in fact only one result
// this is tested by the `library-tests/parent/no_double_parents.ql` test
result = unique(Element x | e = Impl::getImmediateChild(x, _, _) | x)
// `unique` is used here to tell the optimizer that there is in fact only one result
// this is tested by the `library-tests/parent/no_double_parents.ql` test
result = unique(Element x | e = Impl::getImmediateChild(x, _, _) | x)
}
/**
* Gets the immediate child indexed at `index`. Indexes are not guaranteed to be contiguous, but are guaranteed to be distinct. `accessor` is bound the the method giving the given child.
* Gets the immediate child indexed at `index`. Indexes are not guaranteed to be contiguous, but are guaranteed to be distinct. `accessor` is bound the member predicate call resulting in the given child.
*/
Element getImmediateChildAndAccessor(Element e, int index, string accessor) {
exists(string partialAccessor | result = Impl::getImmediateChild(e, index, partialAccessor) and accessor = "getImmediate" + partialAccessor)
exists(string partialAccessor | result = Impl::getImmediateChild(e, index, partialAccessor) and accessor = "getImmediate" + partialAccessor)
}
/**
* Gets the child indexed at `index`. Indexes are not guaranteed to be contiguous, but are guaranteed to be distinct. `accessor` is bound the the method giving the given child. Node resolution is carried out.
*/
* Gets the child indexed at `index`. Indexes are not guaranteed to be contiguous, but are guaranteed to be distinct. `accessor` is bound the member predicate call resulting in the given child.
*/
Element getChildAndAccessor(Element e, int index, string accessor) {
exists(string partialAccessor | result = Impl::getImmediateChild(e, index, partialAccessor).resolve() and accessor = "get" + partialAccessor)
exists(string partialAccessor | result = Impl::getImmediateChild(e, index, partialAccessor).resolve() and accessor = "get" + partialAccessor)
}

View File

@@ -78,9 +78,9 @@ def test_property_predicate_getter():
assert prop.getter == "prop"
def test_class_sorts_bases():
def test_class_processes_bases():
bases = ["B", "Ab", "C", "Aa"]
expected = ["Aa", "Ab", "B", "C"]
expected = [ql.Base("Aa"), ql.Base("Ab", prev="Aa"), ql.Base("B", prev="Ab"), ql.Base("C", prev="B")]
cls = ql.Class("Foo", bases=bases)
assert cls.bases == expected

View File

@@ -357,6 +357,13 @@ def test_class_dir(generate_classes):
}
def test_root_element_cannot_have_children(generate_classes):
with pytest.raises(qlgen.RootElementHasChildren):
generate_classes([
schema.Class(schema.root_class_name, properties=[schema.SingleProperty("x", is_child=True)])
])
def test_class_dir_imports(generate_import_list):
dir = pathlib.Path("another/rel/path")
assert generate_import_list([

File diff suppressed because it is too large Load Diff

View File

@@ -1,14 +1,14 @@
| declarations.swift:1:8:1:8 | init | 0 | getImmediateSelfParam() | declarations.swift:1:8:1:8 | self |
| declarations.swift:1:8:1:8 | init | 0 | getImmediateSelfParam() | declarations.swift:1:8:1:8 | self |
| declarations.swift:1:8:1:8 | init | 1 | getImmediateBody() | declarations.swift:1:8:1:8 | { ... } |
| declarations.swift:1:8:1:8 | init | 1 | getImmediateParam(0) | declarations.swift:1:8:1:8 | x |
| declarations.swift:1:8:1:8 | init | 2 | getImmediateBody() | declarations.swift:1:8:1:8 | { ... } |
| declarations.swift:1:8:1:8 | { ... } | 0 | getImmediateElement(0) | declarations.swift:1:8:1:8 | return |
| declarations.swift:2:3:2:11 | var ... = ... | 0 | getImmediateInit(0) | declarations.swift:2:11:2:11 | 11 |
| declarations.swift:2:3:2:11 | var ... = ... | 1 | getImmediatePattern(0) | declarations.swift:2:7:2:7 | x |
| declarations.swift:2:7:2:7 | (unnamed function decl) | 0 | getImmediateSelfParam() | declarations.swift:2:7:2:7 | self |
| declarations.swift:2:7:2:7 | (unnamed function decl) | 2 | getImmediateBody() | declarations.swift:2:7:2:7 | { ... } |
| declarations.swift:2:7:2:7 | (unnamed function decl) | 1 | getImmediateBody() | declarations.swift:2:7:2:7 | { ... } |
| declarations.swift:2:7:2:7 | get | 0 | getImmediateSelfParam() | declarations.swift:2:7:2:7 | self |
| declarations.swift:2:7:2:7 | get | 2 | getImmediateBody() | declarations.swift:2:7:2:7 | { ... } |
| declarations.swift:2:7:2:7 | get | 1 | getImmediateBody() | declarations.swift:2:7:2:7 | { ... } |
| declarations.swift:2:7:2:7 | set | 0 | getImmediateSelfParam() | declarations.swift:2:7:2:7 | self |
| declarations.swift:2:7:2:7 | set | 1 | getImmediateParam(0) | declarations.swift:2:7:2:7 | value |
| declarations.swift:2:7:2:7 | set | 2 | getImmediateBody() | declarations.swift:2:7:2:7 | { ... } |
@@ -19,9 +19,9 @@
| declarations.swift:2:7:2:7 | { ... } | 0 | getImmediateElement(0) | declarations.swift:2:7:2:7 | yield ... |
| declarations.swift:2:7:2:7 | { ... } | 0 | getImmediateElement(0) | file://:0:0:0:0 | ... = ... |
| declarations.swift:2:7:2:7 | { ... } | 0 | getImmediateElement(0) | file://:0:0:0:0 | return ... |
| declarations.swift:3:3:6:3 | var ... = ... | 1 | getImmediatePattern(0) | declarations.swift:3:7:3:14 | ... as ... |
| declarations.swift:3:3:6:3 | var ... = ... | 0 | getImmediatePattern(0) | declarations.swift:3:7:3:14 | ... as ... |
| declarations.swift:3:7:3:7 | (unnamed function decl) | 0 | getImmediateSelfParam() | declarations.swift:3:7:3:7 | self |
| declarations.swift:3:7:3:7 | (unnamed function decl) | 2 | getImmediateBody() | declarations.swift:3:7:3:7 | { ... } |
| declarations.swift:3:7:3:7 | (unnamed function decl) | 1 | getImmediateBody() | declarations.swift:3:7:3:7 | { ... } |
| declarations.swift:3:7:3:7 | next | 0 | getImmediateAccessorDecl(0) | declarations.swift:4:5:4:24 | get |
| declarations.swift:3:7:3:7 | next | 1 | getImmediateAccessorDecl(1) | declarations.swift:5:5:5:38 | set |
| declarations.swift:3:7:3:7 | next | 2 | getImmediateAccessorDecl(2) | declarations.swift:3:7:3:7 | (unnamed function decl) |
@@ -30,7 +30,7 @@
| declarations.swift:3:7:3:14 | ... as ... | 0 | getImmediateSubPattern() | declarations.swift:3:7:3:7 | next |
| declarations.swift:3:7:3:14 | ... as ... | 1 | getImmediateTypeRepr() | declarations.swift:3:14:3:14 | Int |
| declarations.swift:4:5:4:24 | get | 0 | getImmediateSelfParam() | declarations.swift:4:5:4:5 | self |
| declarations.swift:4:5:4:24 | get | 2 | getImmediateBody() | declarations.swift:4:9:4:24 | { ... } |
| declarations.swift:4:5:4:24 | get | 1 | getImmediateBody() | declarations.swift:4:9:4:24 | { ... } |
| declarations.swift:4:9:4:24 | { ... } | 0 | getImmediateElement(0) | declarations.swift:4:11:4:22 | return ... |
| declarations.swift:4:11:4:22 | return ... | 0 | getImmediateResult() | declarations.swift:4:18:4:22 | ... .+(_:_:) ... |
| declarations.swift:4:18:4:18 | .x | 0 | getImmediateBase() | declarations.swift:4:18:4:18 | self |
@@ -48,16 +48,16 @@
| declarations.swift:5:34:5:34 | .-(_:_:) | 0 | getImmediateBase() | declarations.swift:5:34:5:34 | Int.Type |
| declarations.swift:5:34:5:34 | Int.Type | 0 | getImmediateTypeRepr() | declarations.swift:5:34:5:34 | Int |
| declarations.swift:9:7:9:7 | deinit | 0 | getImmediateSelfParam() | declarations.swift:9:7:9:7 | self |
| declarations.swift:9:7:9:7 | deinit | 2 | getImmediateBody() | declarations.swift:9:7:9:7 | { ... } |
| declarations.swift:9:7:9:7 | deinit | 1 | getImmediateBody() | declarations.swift:9:7:9:7 | { ... } |
| declarations.swift:9:7:9:7 | init | 0 | getImmediateSelfParam() | declarations.swift:9:7:9:7 | self |
| declarations.swift:9:7:9:7 | init | 2 | getImmediateBody() | declarations.swift:9:7:9:7 | { ... } |
| declarations.swift:9:7:9:7 | init | 1 | getImmediateBody() | declarations.swift:9:7:9:7 | { ... } |
| declarations.swift:9:7:9:7 | { ... } | 0 | getImmediateElement(0) | declarations.swift:9:7:9:7 | return |
| declarations.swift:9:13:9:30 | var ... = ... | 0 | getImmediateInit(0) | declarations.swift:9:30:9:30 | 1.3 |
| declarations.swift:9:13:9:30 | var ... = ... | 1 | getImmediatePattern(0) | declarations.swift:9:17:9:21 | ... as ... |
| declarations.swift:9:17:9:17 | (unnamed function decl) | 0 | getImmediateSelfParam() | declarations.swift:9:17:9:17 | self |
| declarations.swift:9:17:9:17 | (unnamed function decl) | 2 | getImmediateBody() | declarations.swift:9:17:9:17 | { ... } |
| declarations.swift:9:17:9:17 | (unnamed function decl) | 1 | getImmediateBody() | declarations.swift:9:17:9:17 | { ... } |
| declarations.swift:9:17:9:17 | get | 0 | getImmediateSelfParam() | declarations.swift:9:17:9:17 | self |
| declarations.swift:9:17:9:17 | get | 2 | getImmediateBody() | declarations.swift:9:17:9:17 | { ... } |
| declarations.swift:9:17:9:17 | get | 1 | getImmediateBody() | declarations.swift:9:17:9:17 | { ... } |
| declarations.swift:9:17:9:17 | set | 0 | getImmediateSelfParam() | declarations.swift:9:17:9:17 | self |
| declarations.swift:9:17:9:17 | set | 1 | getImmediateParam(0) | declarations.swift:9:17:9:17 | value |
| declarations.swift:9:17:9:17 | set | 2 | getImmediateBody() | declarations.swift:9:17:9:17 | { ... } |
@@ -83,7 +83,7 @@
| declarations.swift:19:10:19:35 | tuple | 0 | getImmediateParam(0) | declarations.swift:19:16:19:16 | _ |
| declarations.swift:19:10:19:35 | tuple | 1 | getImmediateParam(1) | declarations.swift:19:21:19:21 | _ |
| declarations.swift:19:10:19:35 | tuple | 2 | getImmediateParam(2) | declarations.swift:19:29:19:29 | _ |
| declarations.swift:23:5:23:39 | var ... = ... | 1 | getImmediatePattern(0) | declarations.swift:23:9:23:25 | ... as ... |
| declarations.swift:23:5:23:39 | var ... = ... | 0 | getImmediatePattern(0) | declarations.swift:23:9:23:25 | ... as ... |
| declarations.swift:23:9:23:9 | (unnamed function decl) | 0 | getImmediateSelfParam() | declarations.swift:23:9:23:9 | self |
| declarations.swift:23:9:23:9 | mustBeSettable | 0 | getImmediateAccessorDecl(0) | declarations.swift:23:31:23:31 | get |
| declarations.swift:23:9:23:9 | mustBeSettable | 1 | getImmediateAccessorDecl(1) | declarations.swift:23:35:23:35 | set |
@@ -93,7 +93,7 @@
| declarations.swift:23:31:23:31 | get | 0 | getImmediateSelfParam() | declarations.swift:23:31:23:31 | self |
| declarations.swift:23:35:23:35 | set | 0 | getImmediateSelfParam() | declarations.swift:23:35:23:35 | self |
| declarations.swift:23:35:23:35 | set | 1 | getImmediateParam(0) | declarations.swift:23:35:23:35 | newValue |
| declarations.swift:24:5:24:44 | var ... = ... | 1 | getImmediatePattern(0) | declarations.swift:24:9:24:34 | ... as ... |
| declarations.swift:24:5:24:44 | var ... = ... | 0 | getImmediatePattern(0) | declarations.swift:24:9:24:34 | ... as ... |
| declarations.swift:24:9:24:9 | doesNotNeedToBeSettable | 0 | getImmediateAccessorDecl(0) | declarations.swift:24:40:24:40 | get |
| declarations.swift:24:9:24:34 | ... as ... | 0 | getImmediateSubPattern() | declarations.swift:24:9:24:9 | doesNotNeedToBeSettable |
| declarations.swift:24:9:24:34 | ... as ... | 1 | getImmediateTypeRepr() | declarations.swift:24:34:24:34 | Int |
@@ -105,14 +105,14 @@
| declarations.swift:30:1:30:18 | var ... = ... | 1 | getImmediatePattern(0) | declarations.swift:30:5:30:5 | a_variable |
| declarations.swift:30:1:30:18 | { ... } | 0 | getImmediateBody() | declarations.swift:30:1:30:18 | { ... } |
| declarations.swift:30:1:30:18 | { ... } | 0 | getImmediateElement(0) | declarations.swift:30:1:30:18 | var ... = ... |
| declarations.swift:31:1:36:1 | var ... = ... | 1 | getImmediatePattern(0) | declarations.swift:31:5:31:18 | ... as ... |
| declarations.swift:31:1:36:1 | var ... = ... | 0 | getImmediatePattern(0) | declarations.swift:31:5:31:18 | ... as ... |
| declarations.swift:31:1:36:1 | { ... } | 0 | getImmediateBody() | declarations.swift:31:1:36:1 | { ... } |
| declarations.swift:31:1:36:1 | { ... } | 0 | getImmediateElement(0) | declarations.swift:31:1:36:1 | var ... = ... |
| declarations.swift:31:5:31:5 | a_property | 0 | getImmediateAccessorDecl(0) | declarations.swift:32:3:34:3 | get |
| declarations.swift:31:5:31:5 | a_property | 1 | getImmediateAccessorDecl(1) | declarations.swift:35:3:35:18 | set |
| declarations.swift:31:5:31:18 | ... as ... | 0 | getImmediateSubPattern() | declarations.swift:31:5:31:5 | a_property |
| declarations.swift:31:5:31:18 | ... as ... | 1 | getImmediateTypeRepr() | declarations.swift:31:18:31:18 | String |
| declarations.swift:32:3:34:3 | get | 2 | getImmediateBody() | declarations.swift:32:7:34:3 | { ... } |
| declarations.swift:32:3:34:3 | get | 1 | getImmediateBody() | declarations.swift:32:7:34:3 | { ... } |
| declarations.swift:32:7:34:3 | { ... } | 0 | getImmediateElement(0) | declarations.swift:33:5:33:12 | return ... |
| declarations.swift:33:5:33:12 | return ... | 0 | getImmediateResult() | declarations.swift:33:12:33:12 | here |
| declarations.swift:35:3:35:18 | set | 1 | getImmediateParam(0) | declarations.swift:35:7:35:7 | newValue |
@@ -123,14 +123,14 @@
| declarations.swift:38:7:38:7 | (Any) ... | 0 | getImmediateSubExpr() | declarations.swift:38:7:38:7 | some top level statement |
| declarations.swift:38:7:38:7 | [...] | 0 | getImmediateElement(0) | declarations.swift:38:7:38:7 | (Any) ... |
| declarations.swift:38:7:38:7 | [...] | 0 | getImmediateSubExpr() | declarations.swift:38:7:38:7 | [...] |
| declarations.swift:41:3:41:14 | var ... = ... | 1 | getImmediatePattern(0) | declarations.swift:41:7:41:14 | ... as ... |
| declarations.swift:41:3:41:14 | var ... = ... | 0 | getImmediatePattern(0) | declarations.swift:41:7:41:14 | ... as ... |
| declarations.swift:41:7:41:7 | (unnamed function decl) | 0 | getImmediateSelfParam() | declarations.swift:41:7:41:7 | self |
| declarations.swift:41:7:41:7 | (unnamed function decl) | 2 | getImmediateBody() | declarations.swift:41:7:41:7 | { ... } |
| declarations.swift:41:7:41:7 | (unnamed function decl) | 1 | getImmediateBody() | declarations.swift:41:7:41:7 | { ... } |
| declarations.swift:41:7:41:7 | field | 0 | getImmediateAccessorDecl(0) | declarations.swift:41:7:41:7 | get |
| declarations.swift:41:7:41:7 | field | 1 | getImmediateAccessorDecl(1) | declarations.swift:41:7:41:7 | set |
| declarations.swift:41:7:41:7 | field | 2 | getImmediateAccessorDecl(2) | declarations.swift:41:7:41:7 | (unnamed function decl) |
| declarations.swift:41:7:41:7 | get | 0 | getImmediateSelfParam() | declarations.swift:41:7:41:7 | self |
| declarations.swift:41:7:41:7 | get | 2 | getImmediateBody() | declarations.swift:41:7:41:7 | { ... } |
| declarations.swift:41:7:41:7 | get | 1 | getImmediateBody() | declarations.swift:41:7:41:7 | { ... } |
| declarations.swift:41:7:41:7 | set | 0 | getImmediateSelfParam() | declarations.swift:41:7:41:7 | self |
| declarations.swift:41:7:41:7 | set | 1 | getImmediateParam(0) | declarations.swift:41:7:41:7 | value |
| declarations.swift:41:7:41:7 | set | 2 | getImmediateBody() | declarations.swift:41:7:41:7 | { ... } |
@@ -141,14 +141,14 @@
| declarations.swift:41:7:41:14 | ... as ... | 0 | getImmediateSubPattern() | declarations.swift:41:7:41:7 | field |
| declarations.swift:41:7:41:14 | ... as ... | 1 | getImmediateTypeRepr() | declarations.swift:41:14:41:14 | Int |
| declarations.swift:42:3:44:3 | init | 0 | getImmediateSelfParam() | declarations.swift:42:3:42:3 | self |
| declarations.swift:42:3:44:3 | init | 2 | getImmediateBody() | declarations.swift:42:10:44:3 | { ... } |
| declarations.swift:42:3:44:3 | init | 1 | getImmediateBody() | declarations.swift:42:10:44:3 | { ... } |
| declarations.swift:42:10:44:3 | { ... } | 0 | getImmediateElement(0) | declarations.swift:43:5:43:13 | ... = ... |
| declarations.swift:42:10:44:3 | { ... } | 1 | getImmediateElement(1) | declarations.swift:44:3:44:3 | return |
| declarations.swift:43:5:43:5 | .field | 0 | getImmediateBase() | declarations.swift:43:5:43:5 | self |
| declarations.swift:43:5:43:13 | ... = ... | 0 | getImmediateDest() | declarations.swift:43:5:43:5 | .field |
| declarations.swift:43:5:43:13 | ... = ... | 1 | getImmediateSource() | declarations.swift:43:13:43:13 | 10 |
| declarations.swift:46:3:48:3 | deinit | 0 | getImmediateSelfParam() | declarations.swift:46:3:46:3 | self |
| declarations.swift:46:3:48:3 | deinit | 2 | getImmediateBody() | declarations.swift:46:10:48:3 | { ... } |
| declarations.swift:46:3:48:3 | deinit | 1 | getImmediateBody() | declarations.swift:46:10:48:3 | { ... } |
| declarations.swift:46:10:48:3 | { ... } | 0 | getImmediateElement(0) | declarations.swift:47:5:47:13 | ... = ... |
| declarations.swift:47:5:47:5 | .field | 0 | getImmediateBase() | declarations.swift:47:5:47:5 | self |
| declarations.swift:47:5:47:13 | ... = ... | 0 | getImmediateDest() | declarations.swift:47:5:47:5 | .field |
@@ -159,17 +159,17 @@
| declarations.swift:50:45:52:3 | { ... } | 0 | getImmediateElement(0) | declarations.swift:51:5:51:12 | return ... |
| declarations.swift:51:5:51:12 | return ... | 0 | getImmediateResult() | declarations.swift:51:12:51:12 | other |
| declarations.swift:68:25:68:25 | init | 0 | getImmediateSelfParam() | declarations.swift:68:25:68:25 | self |
| declarations.swift:68:25:68:25 | init | 2 | getImmediateBody() | declarations.swift:68:25:68:25 | { ... } |
| declarations.swift:68:25:68:25 | init | 1 | getImmediateBody() | declarations.swift:68:25:68:25 | { ... } |
| declarations.swift:68:25:68:25 | { ... } | 0 | getImmediateElement(0) | declarations.swift:68:25:68:25 | return |
| declarations.swift:69:3:73:3 | var ... = ... | 1 | getImmediatePattern(0) | declarations.swift:69:7:69:21 | ... as ... |
| declarations.swift:69:3:73:3 | var ... = ... | 0 | getImmediatePattern(0) | declarations.swift:69:7:69:21 | ... as ... |
| declarations.swift:69:7:69:7 | wrappedValue | 0 | getImmediateAccessorDecl(0) | declarations.swift:70:5:72:5 | get |
| declarations.swift:69:7:69:21 | ... as ... | 0 | getImmediateSubPattern() | declarations.swift:69:7:69:7 | wrappedValue |
| declarations.swift:69:7:69:21 | ... as ... | 1 | getImmediateTypeRepr() | declarations.swift:69:21:69:21 | Int |
| declarations.swift:70:5:72:5 | get | 0 | getImmediateSelfParam() | declarations.swift:70:5:70:5 | self |
| declarations.swift:70:5:72:5 | get | 2 | getImmediateBody() | declarations.swift:70:9:72:5 | { ... } |
| declarations.swift:70:5:72:5 | get | 1 | getImmediateBody() | declarations.swift:70:9:72:5 | { ... } |
| declarations.swift:70:9:72:5 | { ... } | 0 | getImmediateElement(0) | declarations.swift:71:7:71:14 | return ... |
| declarations.swift:71:7:71:14 | return ... | 0 | getImmediateResult() | declarations.swift:71:14:71:14 | 0 |
| declarations.swift:76:1:79:1 | foo() | 2 | getImmediateBody() | declarations.swift:76:19:79:1 | { ... } |
| declarations.swift:76:1:79:1 | foo() | 1 | getImmediateBody() | declarations.swift:76:19:79:1 | { ... } |
| declarations.swift:76:19:79:1 | { ... } | 0 | getImmediateElement(0) | declarations.swift:77:16:77:23 | var ... = ... |
| declarations.swift:76:19:79:1 | { ... } | 1 | getImmediateElement(1) | declarations.swift:77:20:77:20 | x |
| declarations.swift:76:19:79:1 | { ... } | 2 | getImmediateElement(2) | declarations.swift:78:3:78:10 | return ... |
@@ -177,9 +177,9 @@
| declarations.swift:77:4:77:4 | call to init | 0 | getImmediateFunction() | declarations.swift:77:4:77:4 | call to init |
| declarations.swift:77:4:77:4 | call to init | 0 | getImmediateFunction() | declarations.swift:77:4:77:4 | init |
| declarations.swift:77:4:77:4 | call to init | 2 | getImmediateBase() | declarations.swift:77:4:77:4 | ZeroWrapper.Type |
| declarations.swift:77:16:77:23 | var ... = ... | 1 | getImmediatePattern(0) | declarations.swift:77:20:77:23 | ... as ... |
| declarations.swift:77:16:77:23 | var ... = ... | 0 | getImmediatePattern(0) | declarations.swift:77:20:77:23 | ... as ... |
| declarations.swift:77:20:77:20 | ... as ... | 0 | getImmediateSubPattern() | declarations.swift:77:20:77:20 | _x |
| declarations.swift:77:20:77:20 | get | 2 | getImmediateBody() | declarations.swift:77:20:77:20 | { ... } |
| declarations.swift:77:20:77:20 | get | 1 | getImmediateBody() | declarations.swift:77:20:77:20 | { ... } |
| declarations.swift:77:20:77:20 | x | 0 | getImmediateAccessorDecl(0) | declarations.swift:77:20:77:20 | get |
| declarations.swift:77:20:77:20 | { ... } | 0 | getImmediateElement(0) | file://:0:0:0:0 | return ... |
| declarations.swift:77:20:77:23 | ... as ... | 0 | getImmediateSubPattern() | declarations.swift:77:20:77:20 | x |
@@ -192,9 +192,9 @@
| declarations.swift:81:8:81:8 | init | 4 | getImmediateParam(3) | declarations.swift:81:8:81:8 | hasDidSet1 |
| declarations.swift:81:8:81:8 | init | 5 | getImmediateParam(4) | declarations.swift:81:8:81:8 | hasDidSet2 |
| declarations.swift:81:8:81:8 | init | 6 | getImmediateParam(5) | declarations.swift:81:8:81:8 | hasBoth |
| declarations.swift:82:3:87:3 | var ... = ... | 1 | getImmediatePattern(0) | declarations.swift:82:7:82:22 | ... as ... |
| declarations.swift:82:3:87:3 | var ... = ... | 0 | getImmediatePattern(0) | declarations.swift:82:7:82:22 | ... as ... |
| declarations.swift:82:7:82:7 | (unnamed function decl) | 0 | getImmediateSelfParam() | declarations.swift:82:7:82:7 | self |
| declarations.swift:82:7:82:7 | (unnamed function decl) | 2 | getImmediateBody() | declarations.swift:82:7:82:7 | { ... } |
| declarations.swift:82:7:82:7 | (unnamed function decl) | 1 | getImmediateBody() | declarations.swift:82:7:82:7 | { ... } |
| declarations.swift:82:7:82:7 | settableField | 0 | getImmediateAccessorDecl(0) | declarations.swift:83:5:83:11 | set |
| declarations.swift:82:7:82:7 | settableField | 1 | getImmediateAccessorDecl(1) | declarations.swift:84:5:86:5 | get |
| declarations.swift:82:7:82:7 | settableField | 2 | getImmediateAccessorDecl(2) | declarations.swift:82:7:82:7 | (unnamed function decl) |
@@ -206,30 +206,30 @@
| declarations.swift:83:5:83:11 | set | 1 | getImmediateParam(0) | declarations.swift:83:5:83:5 | newValue |
| declarations.swift:83:5:83:11 | set | 2 | getImmediateBody() | declarations.swift:83:9:83:11 | { ... } |
| declarations.swift:84:5:86:5 | get | 0 | getImmediateSelfParam() | declarations.swift:84:5:84:5 | self |
| declarations.swift:84:5:86:5 | get | 2 | getImmediateBody() | declarations.swift:84:9:86:5 | { ... } |
| declarations.swift:84:5:86:5 | get | 1 | getImmediateBody() | declarations.swift:84:9:86:5 | { ... } |
| declarations.swift:84:9:86:5 | { ... } | 0 | getImmediateElement(0) | declarations.swift:85:7:85:14 | return ... |
| declarations.swift:85:7:85:14 | return ... | 0 | getImmediateResult() | declarations.swift:85:14:85:14 | 0 |
| declarations.swift:91:3:93:3 | var ... = ... | 1 | getImmediatePattern(0) | declarations.swift:91:7:91:23 | ... as ... |
| declarations.swift:91:3:93:3 | var ... = ... | 0 | getImmediatePattern(0) | declarations.swift:91:7:91:23 | ... as ... |
| declarations.swift:91:7:91:7 | readOnlyField1 | 0 | getImmediateAccessorDecl(0) | declarations.swift:91:27:93:3 | get |
| declarations.swift:91:7:91:23 | ... as ... | 0 | getImmediateSubPattern() | declarations.swift:91:7:91:7 | readOnlyField1 |
| declarations.swift:91:7:91:23 | ... as ... | 1 | getImmediateTypeRepr() | declarations.swift:91:23:91:23 | Int |
| declarations.swift:91:27:93:3 | get | 0 | getImmediateSelfParam() | declarations.swift:91:27:91:27 | self |
| declarations.swift:91:27:93:3 | get | 2 | getImmediateBody() | declarations.swift:91:27:93:3 | { ... } |
| declarations.swift:91:27:93:3 | get | 1 | getImmediateBody() | declarations.swift:91:27:93:3 | { ... } |
| declarations.swift:91:27:93:3 | { ... } | 0 | getImmediateElement(0) | declarations.swift:92:5:92:12 | return ... |
| declarations.swift:92:5:92:12 | return ... | 0 | getImmediateResult() | declarations.swift:92:12:92:12 | 0 |
| declarations.swift:96:3:100:3 | var ... = ... | 1 | getImmediatePattern(0) | declarations.swift:96:7:96:23 | ... as ... |
| declarations.swift:96:3:100:3 | var ... = ... | 0 | getImmediatePattern(0) | declarations.swift:96:7:96:23 | ... as ... |
| declarations.swift:96:7:96:7 | readOnlyField2 | 0 | getImmediateAccessorDecl(0) | declarations.swift:97:5:99:5 | get |
| declarations.swift:96:7:96:23 | ... as ... | 0 | getImmediateSubPattern() | declarations.swift:96:7:96:7 | readOnlyField2 |
| declarations.swift:96:7:96:23 | ... as ... | 1 | getImmediateTypeRepr() | declarations.swift:96:23:96:23 | Int |
| declarations.swift:97:5:99:5 | get | 0 | getImmediateSelfParam() | declarations.swift:97:5:97:5 | self |
| declarations.swift:97:5:99:5 | get | 2 | getImmediateBody() | declarations.swift:97:9:99:5 | { ... } |
| declarations.swift:97:5:99:5 | get | 1 | getImmediateBody() | declarations.swift:97:9:99:5 | { ... } |
| declarations.swift:97:9:99:5 | { ... } | 0 | getImmediateElement(0) | declarations.swift:98:7:98:14 | return ... |
| declarations.swift:98:7:98:14 | return ... | 0 | getImmediateResult() | declarations.swift:98:14:98:14 | 0 |
| declarations.swift:102:3:102:21 | var ... = ... | 1 | getImmediatePattern(0) | declarations.swift:102:7:102:21 | ... as ... |
| declarations.swift:102:3:102:21 | var ... = ... | 0 | getImmediatePattern(0) | declarations.swift:102:7:102:21 | ... as ... |
| declarations.swift:102:7:102:7 | (unnamed function decl) | 0 | getImmediateSelfParam() | declarations.swift:102:7:102:7 | self |
| declarations.swift:102:7:102:7 | (unnamed function decl) | 2 | getImmediateBody() | declarations.swift:102:7:102:7 | { ... } |
| declarations.swift:102:7:102:7 | (unnamed function decl) | 1 | getImmediateBody() | declarations.swift:102:7:102:7 | { ... } |
| declarations.swift:102:7:102:7 | get | 0 | getImmediateSelfParam() | declarations.swift:102:7:102:7 | self |
| declarations.swift:102:7:102:7 | get | 2 | getImmediateBody() | declarations.swift:102:7:102:7 | { ... } |
| declarations.swift:102:7:102:7 | get | 1 | getImmediateBody() | declarations.swift:102:7:102:7 | { ... } |
| declarations.swift:102:7:102:7 | normalField | 0 | getImmediateAccessorDecl(0) | declarations.swift:102:7:102:7 | get |
| declarations.swift:102:7:102:7 | normalField | 1 | getImmediateAccessorDecl(1) | declarations.swift:102:7:102:7 | set |
| declarations.swift:102:7:102:7 | normalField | 2 | getImmediateAccessorDecl(2) | declarations.swift:102:7:102:7 | (unnamed function decl) |
@@ -269,11 +269,11 @@
| declarations.swift:111:37:113:3 | get | 3 | getImmediateBody() | declarations.swift:111:37:113:3 | { ... } |
| declarations.swift:111:37:113:3 | { ... } | 0 | getImmediateElement(0) | declarations.swift:112:5:112:12 | return ... |
| declarations.swift:112:5:112:12 | return ... | 0 | getImmediateResult() | declarations.swift:112:12:112:12 | 0 |
| declarations.swift:115:3:117:3 | var ... = ... | 1 | getImmediatePattern(0) | declarations.swift:115:7:115:21 | ... as ... |
| declarations.swift:115:3:117:3 | var ... = ... | 0 | getImmediatePattern(0) | declarations.swift:115:7:115:21 | ... as ... |
| declarations.swift:115:7:115:7 | (unnamed function decl) | 0 | getImmediateSelfParam() | declarations.swift:115:7:115:7 | self |
| declarations.swift:115:7:115:7 | (unnamed function decl) | 2 | getImmediateBody() | declarations.swift:115:7:115:7 | { ... } |
| declarations.swift:115:7:115:7 | (unnamed function decl) | 1 | getImmediateBody() | declarations.swift:115:7:115:7 | { ... } |
| declarations.swift:115:7:115:7 | get | 0 | getImmediateSelfParam() | declarations.swift:115:7:115:7 | self |
| declarations.swift:115:7:115:7 | get | 2 | getImmediateBody() | declarations.swift:115:7:115:7 | { ... } |
| declarations.swift:115:7:115:7 | get | 1 | getImmediateBody() | declarations.swift:115:7:115:7 | { ... } |
| declarations.swift:115:7:115:7 | hasWillSet1 | 0 | getImmediateAccessorDecl(0) | declarations.swift:116:5:116:25 | willSet |
| declarations.swift:115:7:115:7 | hasWillSet1 | 1 | getImmediateAccessorDecl(1) | declarations.swift:115:7:115:7 | get |
| declarations.swift:115:7:115:7 | hasWillSet1 | 2 | getImmediateAccessorDecl(2) | declarations.swift:115:7:115:7 | set |
@@ -291,11 +291,11 @@
| declarations.swift:116:5:116:25 | willSet | 0 | getImmediateSelfParam() | declarations.swift:116:5:116:5 | self |
| declarations.swift:116:5:116:25 | willSet | 1 | getImmediateParam(0) | declarations.swift:116:13:116:13 | newValue |
| declarations.swift:116:5:116:25 | willSet | 2 | getImmediateBody() | declarations.swift:116:23:116:25 | { ... } |
| declarations.swift:119:3:121:3 | var ... = ... | 1 | getImmediatePattern(0) | declarations.swift:119:7:119:21 | ... as ... |
| declarations.swift:119:3:121:3 | var ... = ... | 0 | getImmediatePattern(0) | declarations.swift:119:7:119:21 | ... as ... |
| declarations.swift:119:7:119:7 | (unnamed function decl) | 0 | getImmediateSelfParam() | declarations.swift:119:7:119:7 | self |
| declarations.swift:119:7:119:7 | (unnamed function decl) | 2 | getImmediateBody() | declarations.swift:119:7:119:7 | { ... } |
| declarations.swift:119:7:119:7 | (unnamed function decl) | 1 | getImmediateBody() | declarations.swift:119:7:119:7 | { ... } |
| declarations.swift:119:7:119:7 | get | 0 | getImmediateSelfParam() | declarations.swift:119:7:119:7 | self |
| declarations.swift:119:7:119:7 | get | 2 | getImmediateBody() | declarations.swift:119:7:119:7 | { ... } |
| declarations.swift:119:7:119:7 | get | 1 | getImmediateBody() | declarations.swift:119:7:119:7 | { ... } |
| declarations.swift:119:7:119:7 | hasWillSet2 | 0 | getImmediateAccessorDecl(0) | declarations.swift:120:5:120:15 | willSet |
| declarations.swift:119:7:119:7 | hasWillSet2 | 1 | getImmediateAccessorDecl(1) | declarations.swift:119:7:119:7 | get |
| declarations.swift:119:7:119:7 | hasWillSet2 | 2 | getImmediateAccessorDecl(2) | declarations.swift:119:7:119:7 | set |
@@ -313,11 +313,11 @@
| declarations.swift:120:5:120:15 | willSet | 0 | getImmediateSelfParam() | declarations.swift:120:5:120:5 | self |
| declarations.swift:120:5:120:15 | willSet | 1 | getImmediateParam(0) | declarations.swift:120:5:120:5 | newValue |
| declarations.swift:120:5:120:15 | willSet | 2 | getImmediateBody() | declarations.swift:120:13:120:15 | { ... } |
| declarations.swift:123:3:125:3 | var ... = ... | 1 | getImmediatePattern(0) | declarations.swift:123:7:123:20 | ... as ... |
| declarations.swift:123:3:125:3 | var ... = ... | 0 | getImmediatePattern(0) | declarations.swift:123:7:123:20 | ... as ... |
| declarations.swift:123:7:123:7 | (unnamed function decl) | 0 | getImmediateSelfParam() | declarations.swift:123:7:123:7 | self |
| declarations.swift:123:7:123:7 | (unnamed function decl) | 2 | getImmediateBody() | declarations.swift:123:7:123:7 | { ... } |
| declarations.swift:123:7:123:7 | (unnamed function decl) | 1 | getImmediateBody() | declarations.swift:123:7:123:7 | { ... } |
| declarations.swift:123:7:123:7 | get | 0 | getImmediateSelfParam() | declarations.swift:123:7:123:7 | self |
| declarations.swift:123:7:123:7 | get | 2 | getImmediateBody() | declarations.swift:123:7:123:7 | { ... } |
| declarations.swift:123:7:123:7 | get | 1 | getImmediateBody() | declarations.swift:123:7:123:7 | { ... } |
| declarations.swift:123:7:123:7 | hasDidSet1 | 0 | getImmediateAccessorDecl(0) | declarations.swift:124:5:124:24 | didSet |
| declarations.swift:123:7:123:7 | hasDidSet1 | 1 | getImmediateAccessorDecl(1) | declarations.swift:123:7:123:7 | get |
| declarations.swift:123:7:123:7 | hasDidSet1 | 2 | getImmediateAccessorDecl(2) | declarations.swift:123:7:123:7 | set |
@@ -337,11 +337,11 @@
| declarations.swift:124:5:124:24 | didSet | 0 | getImmediateSelfParam() | declarations.swift:124:5:124:5 | self |
| declarations.swift:124:5:124:24 | didSet | 1 | getImmediateParam(0) | declarations.swift:124:12:124:12 | oldValue |
| declarations.swift:124:5:124:24 | didSet | 2 | getImmediateBody() | declarations.swift:124:22:124:24 | { ... } |
| declarations.swift:127:3:129:3 | var ... = ... | 1 | getImmediatePattern(0) | declarations.swift:127:7:127:20 | ... as ... |
| declarations.swift:127:3:129:3 | var ... = ... | 0 | getImmediatePattern(0) | declarations.swift:127:7:127:20 | ... as ... |
| declarations.swift:127:7:127:7 | (unnamed function decl) | 0 | getImmediateSelfParam() | declarations.swift:127:7:127:7 | self |
| declarations.swift:127:7:127:7 | (unnamed function decl) | 2 | getImmediateBody() | declarations.swift:127:7:127:7 | { ... } |
| declarations.swift:127:7:127:7 | (unnamed function decl) | 1 | getImmediateBody() | declarations.swift:127:7:127:7 | { ... } |
| declarations.swift:127:7:127:7 | get | 0 | getImmediateSelfParam() | declarations.swift:127:7:127:7 | self |
| declarations.swift:127:7:127:7 | get | 2 | getImmediateBody() | declarations.swift:127:7:127:7 | { ... } |
| declarations.swift:127:7:127:7 | get | 1 | getImmediateBody() | declarations.swift:127:7:127:7 | { ... } |
| declarations.swift:127:7:127:7 | hasDidSet2 | 0 | getImmediateAccessorDecl(0) | declarations.swift:128:5:128:14 | didSet |
| declarations.swift:127:7:127:7 | hasDidSet2 | 1 | getImmediateAccessorDecl(1) | declarations.swift:127:7:127:7 | get |
| declarations.swift:127:7:127:7 | hasDidSet2 | 2 | getImmediateAccessorDecl(2) | declarations.swift:127:7:127:7 | set |
@@ -358,12 +358,12 @@
| declarations.swift:127:7:127:20 | ... as ... | 0 | getImmediateSubPattern() | declarations.swift:127:7:127:7 | hasDidSet2 |
| declarations.swift:127:7:127:20 | ... as ... | 1 | getImmediateTypeRepr() | declarations.swift:127:20:127:20 | Int |
| declarations.swift:128:5:128:14 | didSet | 0 | getImmediateSelfParam() | declarations.swift:128:5:128:5 | self |
| declarations.swift:128:5:128:14 | didSet | 2 | getImmediateBody() | declarations.swift:128:12:128:14 | { ... } |
| declarations.swift:131:3:135:3 | var ... = ... | 1 | getImmediatePattern(0) | declarations.swift:131:7:131:17 | ... as ... |
| declarations.swift:128:5:128:14 | didSet | 1 | getImmediateBody() | declarations.swift:128:12:128:14 | { ... } |
| declarations.swift:131:3:135:3 | var ... = ... | 0 | getImmediatePattern(0) | declarations.swift:131:7:131:17 | ... as ... |
| declarations.swift:131:7:131:7 | (unnamed function decl) | 0 | getImmediateSelfParam() | declarations.swift:131:7:131:7 | self |
| declarations.swift:131:7:131:7 | (unnamed function decl) | 2 | getImmediateBody() | declarations.swift:131:7:131:7 | { ... } |
| declarations.swift:131:7:131:7 | (unnamed function decl) | 1 | getImmediateBody() | declarations.swift:131:7:131:7 | { ... } |
| declarations.swift:131:7:131:7 | get | 0 | getImmediateSelfParam() | declarations.swift:131:7:131:7 | self |
| declarations.swift:131:7:131:7 | get | 2 | getImmediateBody() | declarations.swift:131:7:131:7 | { ... } |
| declarations.swift:131:7:131:7 | get | 1 | getImmediateBody() | declarations.swift:131:7:131:7 | { ... } |
| declarations.swift:131:7:131:7 | hasBoth | 0 | getImmediateAccessorDecl(0) | declarations.swift:132:5:132:15 | willSet |
| declarations.swift:131:7:131:7 | hasBoth | 1 | getImmediateAccessorDecl(1) | declarations.swift:134:5:134:14 | didSet |
| declarations.swift:131:7:131:7 | hasBoth | 2 | getImmediateAccessorDecl(2) | declarations.swift:131:7:131:7 | get |
@@ -384,9 +384,9 @@
| declarations.swift:132:5:132:15 | willSet | 1 | getImmediateParam(0) | declarations.swift:132:5:132:5 | newValue |
| declarations.swift:132:5:132:15 | willSet | 2 | getImmediateBody() | declarations.swift:132:13:132:15 | { ... } |
| declarations.swift:134:5:134:14 | didSet | 0 | getImmediateSelfParam() | declarations.swift:134:5:134:5 | self |
| declarations.swift:134:5:134:14 | didSet | 2 | getImmediateBody() | declarations.swift:134:12:134:14 | { ... } |
| declarations.swift:134:5:134:14 | didSet | 1 | getImmediateBody() | declarations.swift:134:12:134:14 | { ... } |
| declarations.swift:139:3:141:3 | id() | 0 | getImmediateSelfParam() | declarations.swift:139:8:139:8 | self |
| declarations.swift:139:3:141:3 | id() | 2 | getImmediateBody() | declarations.swift:139:20:141:3 | { ... } |
| declarations.swift:139:3:141:3 | id() | 1 | getImmediateBody() | declarations.swift:139:20:141:3 | { ... } |
| declarations.swift:139:20:141:3 | { ... } | 0 | getImmediateElement(0) | declarations.swift:140:5:140:12 | return ... |
| declarations.swift:140:5:140:12 | return ... | 0 | getImmediateResult() | declarations.swift:140:12:140:12 | self |
| declarations.swift:144:1:144:4 | .id() | 0 | getImmediateBase() | declarations.swift:144:1:144:1 | 42 |
@@ -469,9 +469,9 @@
| expressions.swift:21:6:21:16 | (()?) ... | 0 | getImmediateSubExpr() | expressions.swift:21:6:21:16 | call to failure(_:) |
| expressions.swift:21:6:21:16 | call to failure(_:) | 0 | getImmediateFunction() | expressions.swift:21:6:21:6 | failure(_:) |
| expressions.swift:23:7:23:7 | deinit | 0 | getImmediateSelfParam() | expressions.swift:23:7:23:7 | self |
| expressions.swift:23:7:23:7 | deinit | 2 | getImmediateBody() | expressions.swift:23:7:23:7 | { ... } |
| expressions.swift:23:7:23:7 | deinit | 1 | getImmediateBody() | expressions.swift:23:7:23:7 | { ... } |
| expressions.swift:24:3:24:11 | init | 0 | getImmediateSelfParam() | expressions.swift:24:3:24:3 | self |
| expressions.swift:24:3:24:11 | init | 2 | getImmediateBody() | expressions.swift:24:10:24:11 | { ... } |
| expressions.swift:24:3:24:11 | init | 1 | getImmediateBody() | expressions.swift:24:10:24:11 | { ... } |
| expressions.swift:24:10:24:11 | { ... } | 0 | getImmediateElement(0) | expressions.swift:24:11:24:11 | return |
| expressions.swift:27:1:27:19 | var ... = ... | 0 | getImmediateInit(0) | expressions.swift:27:13:27:19 | call to init |
| expressions.swift:27:1:27:19 | var ... = ... | 1 | getImmediatePattern(0) | expressions.swift:27:5:27:5 | klass |
@@ -569,9 +569,9 @@
| expressions.swift:48:15:48:15 | Int.Type | 0 | getImmediateTypeRepr() | expressions.swift:48:15:48:15 | Int |
| expressions.swift:50:8:50:8 | init | 0 | getImmediateSelfParam() | expressions.swift:50:8:50:8 | self |
| expressions.swift:50:8:50:8 | init | 1 | getImmediateParam(0) | expressions.swift:50:8:50:8 | x |
| expressions.swift:51:3:51:10 | var ... = ... | 1 | getImmediatePattern(0) | expressions.swift:51:7:51:10 | ... as ... |
| expressions.swift:51:3:51:10 | var ... = ... | 0 | getImmediatePattern(0) | expressions.swift:51:7:51:10 | ... as ... |
| expressions.swift:51:7:51:7 | get | 0 | getImmediateSelfParam() | expressions.swift:51:7:51:7 | self |
| expressions.swift:51:7:51:7 | get | 2 | getImmediateBody() | expressions.swift:51:7:51:7 | { ... } |
| expressions.swift:51:7:51:7 | get | 1 | getImmediateBody() | expressions.swift:51:7:51:7 | { ... } |
| expressions.swift:51:7:51:7 | x | 0 | getImmediateAccessorDecl(0) | expressions.swift:51:7:51:7 | get |
| expressions.swift:51:7:51:7 | { ... } | 0 | getImmediateElement(0) | file://:0:0:0:0 | return ... |
| expressions.swift:51:7:51:10 | ... as ... | 0 | getImmediateSubPattern() | expressions.swift:51:7:51:7 | x |
@@ -603,7 +603,7 @@
| expressions.swift:60:35:60:61 | call to unsafeFunction(pointer:) | 0 | getImmediateFunction() | expressions.swift:60:35:60:35 | unsafeFunction(pointer:) |
| expressions.swift:60:35:60:61 | return ... | 0 | getImmediateResult() | expressions.swift:60:35:60:61 | call to unsafeFunction(pointer:) |
| expressions.swift:62:7:62:7 | deinit | 0 | getImmediateSelfParam() | expressions.swift:62:7:62:7 | self |
| expressions.swift:62:7:62:7 | deinit | 2 | getImmediateBody() | expressions.swift:62:7:62:7 | { ... } |
| expressions.swift:62:7:62:7 | deinit | 1 | getImmediateBody() | expressions.swift:62:7:62:7 | { ... } |
| expressions.swift:63:3:67:3 | init | 0 | getImmediateSelfParam() | expressions.swift:63:3:63:3 | self |
| expressions.swift:63:3:67:3 | init | 1 | getImmediateParam(0) | expressions.swift:63:9:63:12 | x |
| expressions.swift:63:3:67:3 | init | 2 | getImmediateBody() | expressions.swift:63:17:67:3 | { ... } |
@@ -616,10 +616,10 @@
| expressions.swift:64:10:64:10 | Int.Type | 0 | getImmediateTypeRepr() | expressions.swift:64:10:64:10 | Int |
| expressions.swift:64:14:66:5 | { ... } | 0 | getImmediateElement(0) | expressions.swift:65:7:65:14 | fail |
| expressions.swift:70:7:70:7 | deinit | 0 | getImmediateSelfParam() | expressions.swift:70:7:70:7 | self |
| expressions.swift:70:7:70:7 | deinit | 2 | getImmediateBody() | expressions.swift:70:7:70:7 | { ... } |
| expressions.swift:71:3:71:11 | var ... = ... | 1 | getImmediatePattern(0) | expressions.swift:71:7:71:11 | ... as ... |
| expressions.swift:70:7:70:7 | deinit | 1 | getImmediateBody() | expressions.swift:70:7:70:7 | { ... } |
| expressions.swift:71:3:71:11 | var ... = ... | 0 | getImmediatePattern(0) | expressions.swift:71:7:71:11 | ... as ... |
| expressions.swift:71:7:71:7 | get | 0 | getImmediateSelfParam() | expressions.swift:71:7:71:7 | self |
| expressions.swift:71:7:71:7 | get | 2 | getImmediateBody() | expressions.swift:71:7:71:7 | { ... } |
| expressions.swift:71:7:71:7 | get | 1 | getImmediateBody() | expressions.swift:71:7:71:7 | { ... } |
| expressions.swift:71:7:71:7 | xx | 0 | getImmediateAccessorDecl(0) | expressions.swift:71:7:71:7 | get |
| expressions.swift:71:7:71:7 | { ... } | 0 | getImmediateElement(0) | file://:0:0:0:0 | return ... |
| expressions.swift:71:7:71:11 | ... as ... | 0 | getImmediateSubPattern() | expressions.swift:71:7:71:7 | xx |
@@ -634,12 +634,12 @@
| expressions.swift:73:5:73:10 | ... = ... | 1 | getImmediateSource() | expressions.swift:73:10:73:10 | x |
| expressions.swift:77:7:77:7 | call to _unimplementedInitializer(className:initName:file:line:column:) | 0 | getImmediateFunction() | expressions.swift:77:7:77:7 | _unimplementedInitializer(className:initName:file:line:column:) |
| expressions.swift:77:7:77:7 | deinit | 0 | getImmediateSelfParam() | expressions.swift:77:7:77:7 | self |
| expressions.swift:77:7:77:7 | deinit | 2 | getImmediateBody() | expressions.swift:77:7:77:7 | { ... } |
| expressions.swift:77:7:77:7 | deinit | 1 | getImmediateBody() | expressions.swift:77:7:77:7 | { ... } |
| expressions.swift:77:21:77:21 | init | 0 | getImmediateSelfParam() | expressions.swift:77:21:77:21 | self |
| expressions.swift:77:21:77:21 | init | 1 | getImmediateParam(0) | file://:0:0:0:0 | x |
| expressions.swift:77:21:77:21 | init | 2 | getImmediateBody() | file://:0:0:0:0 | { ... } |
| expressions.swift:78:3:80:3 | init | 0 | getImmediateSelfParam() | expressions.swift:78:3:78:3 | self |
| expressions.swift:78:3:80:3 | init | 2 | getImmediateBody() | expressions.swift:78:10:80:3 | { ... } |
| expressions.swift:78:3:80:3 | init | 1 | getImmediateBody() | expressions.swift:78:10:80:3 | { ... } |
| expressions.swift:78:10:80:3 | { ... } | 0 | getImmediateElement(0) | expressions.swift:79:5:79:21 | self = ... |
| expressions.swift:78:10:80:3 | { ... } | 1 | getImmediateElement(1) | expressions.swift:80:3:80:3 | return |
| expressions.swift:79:5:79:11 | call to ... | 0 | getImmediateFunction() | expressions.swift:79:11:79:11 | init |
@@ -674,9 +674,9 @@
| expressions.swift:88:1:88:7 | { ... } | 0 | getImmediateBody() | expressions.swift:88:1:88:7 | { ... } |
| expressions.swift:88:1:88:7 | { ... } | 0 | getImmediateElement(0) | expressions.swift:88:1:88:7 | ...! |
| expressions.swift:90:7:90:7 | deinit | 0 | getImmediateSelfParam() | expressions.swift:90:7:90:7 | self |
| expressions.swift:90:7:90:7 | deinit | 2 | getImmediateBody() | expressions.swift:90:7:90:7 | { ... } |
| expressions.swift:90:7:90:7 | deinit | 1 | getImmediateBody() | expressions.swift:90:7:90:7 | { ... } |
| expressions.swift:90:7:90:7 | init | 0 | getImmediateSelfParam() | expressions.swift:90:7:90:7 | self |
| expressions.swift:90:7:90:7 | init | 2 | getImmediateBody() | expressions.swift:90:7:90:7 | { ... } |
| expressions.swift:90:7:90:7 | init | 1 | getImmediateBody() | expressions.swift:90:7:90:7 | { ... } |
| expressions.swift:90:7:90:7 | { ... } | 0 | getImmediateElement(0) | expressions.swift:90:7:90:7 | return |
| expressions.swift:92:1:92:55 | var ... = ... | 0 | getImmediateInit(0) | expressions.swift:92:14:92:55 | call to toOpaque() |
| expressions.swift:92:1:92:55 | var ... = ... | 1 | getImmediatePattern(0) | expressions.swift:92:5:92:5 | opaque |
@@ -699,9 +699,9 @@
| expressions.swift:93:29:93:29 | (UnsafeRawPointer) ... | 0 | getImmediateSubExpr() | expressions.swift:93:29:93:29 | opaque |
| expressions.swift:95:8:95:8 | init | 0 | getImmediateSelfParam() | expressions.swift:95:8:95:8 | self |
| expressions.swift:95:8:95:8 | init | 1 | getImmediateParam(0) | expressions.swift:95:8:95:8 | normalField |
| expressions.swift:96:3:101:3 | var ... = ... | 1 | getImmediatePattern(0) | expressions.swift:96:7:96:22 | ... as ... |
| expressions.swift:96:3:101:3 | var ... = ... | 0 | getImmediatePattern(0) | expressions.swift:96:7:96:22 | ... as ... |
| expressions.swift:96:7:96:7 | (unnamed function decl) | 0 | getImmediateSelfParam() | expressions.swift:96:7:96:7 | self |
| expressions.swift:96:7:96:7 | (unnamed function decl) | 2 | getImmediateBody() | expressions.swift:96:7:96:7 | { ... } |
| expressions.swift:96:7:96:7 | (unnamed function decl) | 1 | getImmediateBody() | expressions.swift:96:7:96:7 | { ... } |
| expressions.swift:96:7:96:7 | settableField | 0 | getImmediateAccessorDecl(0) | expressions.swift:97:5:97:11 | set |
| expressions.swift:96:7:96:7 | settableField | 1 | getImmediateAccessorDecl(1) | expressions.swift:98:5:100:5 | get |
| expressions.swift:96:7:96:7 | settableField | 2 | getImmediateAccessorDecl(2) | expressions.swift:96:7:96:7 | (unnamed function decl) |
@@ -713,30 +713,30 @@
| expressions.swift:97:5:97:11 | set | 1 | getImmediateParam(0) | expressions.swift:97:5:97:5 | newValue |
| expressions.swift:97:5:97:11 | set | 2 | getImmediateBody() | expressions.swift:97:9:97:11 | { ... } |
| expressions.swift:98:5:100:5 | get | 0 | getImmediateSelfParam() | expressions.swift:98:5:98:5 | self |
| expressions.swift:98:5:100:5 | get | 2 | getImmediateBody() | expressions.swift:98:9:100:5 | { ... } |
| expressions.swift:98:5:100:5 | get | 1 | getImmediateBody() | expressions.swift:98:9:100:5 | { ... } |
| expressions.swift:98:9:100:5 | { ... } | 0 | getImmediateElement(0) | expressions.swift:99:7:99:14 | return ... |
| expressions.swift:99:7:99:14 | return ... | 0 | getImmediateResult() | expressions.swift:99:14:99:14 | 0 |
| expressions.swift:105:3:107:3 | var ... = ... | 1 | getImmediatePattern(0) | expressions.swift:105:7:105:23 | ... as ... |
| expressions.swift:105:3:107:3 | var ... = ... | 0 | getImmediatePattern(0) | expressions.swift:105:7:105:23 | ... as ... |
| expressions.swift:105:7:105:7 | readOnlyField1 | 0 | getImmediateAccessorDecl(0) | expressions.swift:105:27:107:3 | get |
| expressions.swift:105:7:105:23 | ... as ... | 0 | getImmediateSubPattern() | expressions.swift:105:7:105:7 | readOnlyField1 |
| expressions.swift:105:7:105:23 | ... as ... | 1 | getImmediateTypeRepr() | expressions.swift:105:23:105:23 | Int |
| expressions.swift:105:27:107:3 | get | 0 | getImmediateSelfParam() | expressions.swift:105:27:105:27 | self |
| expressions.swift:105:27:107:3 | get | 2 | getImmediateBody() | expressions.swift:105:27:107:3 | { ... } |
| expressions.swift:105:27:107:3 | get | 1 | getImmediateBody() | expressions.swift:105:27:107:3 | { ... } |
| expressions.swift:105:27:107:3 | { ... } | 0 | getImmediateElement(0) | expressions.swift:106:5:106:12 | return ... |
| expressions.swift:106:5:106:12 | return ... | 0 | getImmediateResult() | expressions.swift:106:12:106:12 | 0 |
| expressions.swift:110:3:114:3 | var ... = ... | 1 | getImmediatePattern(0) | expressions.swift:110:7:110:23 | ... as ... |
| expressions.swift:110:3:114:3 | var ... = ... | 0 | getImmediatePattern(0) | expressions.swift:110:7:110:23 | ... as ... |
| expressions.swift:110:7:110:7 | readOnlyField2 | 0 | getImmediateAccessorDecl(0) | expressions.swift:111:5:113:5 | get |
| expressions.swift:110:7:110:23 | ... as ... | 0 | getImmediateSubPattern() | expressions.swift:110:7:110:7 | readOnlyField2 |
| expressions.swift:110:7:110:23 | ... as ... | 1 | getImmediateTypeRepr() | expressions.swift:110:23:110:23 | Int |
| expressions.swift:111:5:113:5 | get | 0 | getImmediateSelfParam() | expressions.swift:111:5:111:5 | self |
| expressions.swift:111:5:113:5 | get | 2 | getImmediateBody() | expressions.swift:111:9:113:5 | { ... } |
| expressions.swift:111:5:113:5 | get | 1 | getImmediateBody() | expressions.swift:111:9:113:5 | { ... } |
| expressions.swift:111:9:113:5 | { ... } | 0 | getImmediateElement(0) | expressions.swift:112:7:112:14 | return ... |
| expressions.swift:112:7:112:14 | return ... | 0 | getImmediateResult() | expressions.swift:112:14:112:14 | 0 |
| expressions.swift:116:3:116:21 | var ... = ... | 1 | getImmediatePattern(0) | expressions.swift:116:7:116:21 | ... as ... |
| expressions.swift:116:3:116:21 | var ... = ... | 0 | getImmediatePattern(0) | expressions.swift:116:7:116:21 | ... as ... |
| expressions.swift:116:7:116:7 | (unnamed function decl) | 0 | getImmediateSelfParam() | expressions.swift:116:7:116:7 | self |
| expressions.swift:116:7:116:7 | (unnamed function decl) | 2 | getImmediateBody() | expressions.swift:116:7:116:7 | { ... } |
| expressions.swift:116:7:116:7 | (unnamed function decl) | 1 | getImmediateBody() | expressions.swift:116:7:116:7 | { ... } |
| expressions.swift:116:7:116:7 | get | 0 | getImmediateSelfParam() | expressions.swift:116:7:116:7 | self |
| expressions.swift:116:7:116:7 | get | 2 | getImmediateBody() | expressions.swift:116:7:116:7 | { ... } |
| expressions.swift:116:7:116:7 | get | 1 | getImmediateBody() | expressions.swift:116:7:116:7 | { ... } |
| expressions.swift:116:7:116:7 | normalField | 0 | getImmediateAccessorDecl(0) | expressions.swift:116:7:116:7 | get |
| expressions.swift:116:7:116:7 | normalField | 1 | getImmediateAccessorDecl(1) | expressions.swift:116:7:116:7 | set |
| expressions.swift:116:7:116:7 | normalField | 2 | getImmediateAccessorDecl(2) | expressions.swift:116:7:116:7 | (unnamed function decl) |
@@ -821,11 +821,11 @@
| expressions.swift:138:10:138:17 | ...[...] | 0 | getImmediateBase() | expressions.swift:138:10:138:10 | (HasProperty) ... |
| expressions.swift:141:8:141:8 | init | 0 | getImmediateSelfParam() | expressions.swift:141:8:141:8 | self |
| expressions.swift:141:8:141:8 | init | 1 | getImmediateParam(0) | expressions.swift:141:8:141:8 | x |
| expressions.swift:142:3:142:11 | var ... = ... | 1 | getImmediatePattern(0) | expressions.swift:142:7:142:11 | ... as ... |
| expressions.swift:142:3:142:11 | var ... = ... | 0 | getImmediatePattern(0) | expressions.swift:142:7:142:11 | ... as ... |
| expressions.swift:142:7:142:7 | (unnamed function decl) | 0 | getImmediateSelfParam() | expressions.swift:142:7:142:7 | self |
| expressions.swift:142:7:142:7 | (unnamed function decl) | 2 | getImmediateBody() | expressions.swift:142:7:142:7 | { ... } |
| expressions.swift:142:7:142:7 | (unnamed function decl) | 1 | getImmediateBody() | expressions.swift:142:7:142:7 | { ... } |
| expressions.swift:142:7:142:7 | get | 0 | getImmediateSelfParam() | expressions.swift:142:7:142:7 | self |
| expressions.swift:142:7:142:7 | get | 2 | getImmediateBody() | expressions.swift:142:7:142:7 | { ... } |
| expressions.swift:142:7:142:7 | get | 1 | getImmediateBody() | expressions.swift:142:7:142:7 | { ... } |
| expressions.swift:142:7:142:7 | set | 0 | getImmediateSelfParam() | expressions.swift:142:7:142:7 | self |
| expressions.swift:142:7:142:7 | set | 1 | getImmediateParam(0) | expressions.swift:142:7:142:7 | value |
| expressions.swift:142:7:142:7 | set | 2 | getImmediateBody() | expressions.swift:142:7:142:7 | { ... } |
@@ -842,14 +842,14 @@
| expressions.swift:145:8:145:8 | init | 1 | getImmediateParam(0) | expressions.swift:145:8:145:8 | b |
| expressions.swift:145:8:145:8 | init | 2 | getImmediateParam(1) | expressions.swift:145:8:145:8 | bs |
| expressions.swift:145:8:145:8 | init | 3 | getImmediateParam(2) | expressions.swift:145:8:145:8 | mayB |
| expressions.swift:146:3:146:11 | var ... = ... | 1 | getImmediatePattern(0) | expressions.swift:146:7:146:11 | ... as ... |
| expressions.swift:146:3:146:11 | var ... = ... | 0 | getImmediatePattern(0) | expressions.swift:146:7:146:11 | ... as ... |
| expressions.swift:146:7:146:7 | (unnamed function decl) | 0 | getImmediateSelfParam() | expressions.swift:146:7:146:7 | self |
| expressions.swift:146:7:146:7 | (unnamed function decl) | 2 | getImmediateBody() | expressions.swift:146:7:146:7 | { ... } |
| expressions.swift:146:7:146:7 | (unnamed function decl) | 1 | getImmediateBody() | expressions.swift:146:7:146:7 | { ... } |
| expressions.swift:146:7:146:7 | b | 0 | getImmediateAccessorDecl(0) | expressions.swift:146:7:146:7 | get |
| expressions.swift:146:7:146:7 | b | 1 | getImmediateAccessorDecl(1) | expressions.swift:146:7:146:7 | set |
| expressions.swift:146:7:146:7 | b | 2 | getImmediateAccessorDecl(2) | expressions.swift:146:7:146:7 | (unnamed function decl) |
| expressions.swift:146:7:146:7 | get | 0 | getImmediateSelfParam() | expressions.swift:146:7:146:7 | self |
| expressions.swift:146:7:146:7 | get | 2 | getImmediateBody() | expressions.swift:146:7:146:7 | { ... } |
| expressions.swift:146:7:146:7 | get | 1 | getImmediateBody() | expressions.swift:146:7:146:7 | { ... } |
| expressions.swift:146:7:146:7 | set | 0 | getImmediateSelfParam() | expressions.swift:146:7:146:7 | self |
| expressions.swift:146:7:146:7 | set | 1 | getImmediateParam(0) | expressions.swift:146:7:146:7 | value |
| expressions.swift:146:7:146:7 | set | 2 | getImmediateBody() | expressions.swift:146:7:146:7 | { ... } |
@@ -859,14 +859,14 @@
| expressions.swift:146:7:146:7 | { ... } | 0 | getImmediateElement(0) | file://:0:0:0:0 | return ... |
| expressions.swift:146:7:146:11 | ... as ... | 0 | getImmediateSubPattern() | expressions.swift:146:7:146:7 | b |
| expressions.swift:146:7:146:11 | ... as ... | 1 | getImmediateTypeRepr() | expressions.swift:146:11:146:11 | B |
| expressions.swift:147:3:147:14 | var ... = ... | 1 | getImmediatePattern(0) | expressions.swift:147:7:147:14 | ... as ... |
| expressions.swift:147:3:147:14 | var ... = ... | 0 | getImmediatePattern(0) | expressions.swift:147:7:147:14 | ... as ... |
| expressions.swift:147:7:147:7 | (unnamed function decl) | 0 | getImmediateSelfParam() | expressions.swift:147:7:147:7 | self |
| expressions.swift:147:7:147:7 | (unnamed function decl) | 2 | getImmediateBody() | expressions.swift:147:7:147:7 | { ... } |
| expressions.swift:147:7:147:7 | (unnamed function decl) | 1 | getImmediateBody() | expressions.swift:147:7:147:7 | { ... } |
| expressions.swift:147:7:147:7 | bs | 0 | getImmediateAccessorDecl(0) | expressions.swift:147:7:147:7 | get |
| expressions.swift:147:7:147:7 | bs | 1 | getImmediateAccessorDecl(1) | expressions.swift:147:7:147:7 | set |
| expressions.swift:147:7:147:7 | bs | 2 | getImmediateAccessorDecl(2) | expressions.swift:147:7:147:7 | (unnamed function decl) |
| expressions.swift:147:7:147:7 | get | 0 | getImmediateSelfParam() | expressions.swift:147:7:147:7 | self |
| expressions.swift:147:7:147:7 | get | 2 | getImmediateBody() | expressions.swift:147:7:147:7 | { ... } |
| expressions.swift:147:7:147:7 | get | 1 | getImmediateBody() | expressions.swift:147:7:147:7 | { ... } |
| expressions.swift:147:7:147:7 | set | 0 | getImmediateSelfParam() | expressions.swift:147:7:147:7 | self |
| expressions.swift:147:7:147:7 | set | 1 | getImmediateParam(0) | expressions.swift:147:7:147:7 | value |
| expressions.swift:147:7:147:7 | set | 2 | getImmediateBody() | expressions.swift:147:7:147:7 | { ... } |
@@ -879,9 +879,9 @@
| expressions.swift:148:3:148:15 | var ... = ... | 0 | getImmediateInit(0) | file://:0:0:0:0 | nil |
| expressions.swift:148:3:148:15 | var ... = ... | 1 | getImmediatePattern(0) | expressions.swift:148:7:148:15 | ... as ... |
| expressions.swift:148:7:148:7 | (unnamed function decl) | 0 | getImmediateSelfParam() | expressions.swift:148:7:148:7 | self |
| expressions.swift:148:7:148:7 | (unnamed function decl) | 2 | getImmediateBody() | expressions.swift:148:7:148:7 | { ... } |
| expressions.swift:148:7:148:7 | (unnamed function decl) | 1 | getImmediateBody() | expressions.swift:148:7:148:7 | { ... } |
| expressions.swift:148:7:148:7 | get | 0 | getImmediateSelfParam() | expressions.swift:148:7:148:7 | self |
| expressions.swift:148:7:148:7 | get | 2 | getImmediateBody() | expressions.swift:148:7:148:7 | { ... } |
| expressions.swift:148:7:148:7 | get | 1 | getImmediateBody() | expressions.swift:148:7:148:7 | { ... } |
| expressions.swift:148:7:148:7 | mayB | 0 | getImmediateAccessorDecl(0) | expressions.swift:148:7:148:7 | get |
| expressions.swift:148:7:148:7 | mayB | 1 | getImmediateAccessorDecl(1) | expressions.swift:148:7:148:7 | set |
| expressions.swift:148:7:148:7 | mayB | 2 | getImmediateAccessorDecl(2) | expressions.swift:148:7:148:7 | (unnamed function decl) |
@@ -919,7 +919,7 @@
| expressions.swift:154:22:154:56 | \\...[...] | 0 | getImmediateBase() | expressions.swift:154:22:154:41 | \\...[...] |
| expressions.swift:154:22:154:56 | \\...[...] | 1 | getImmediateKeyPath() | expressions.swift:154:52:154:55 | #keyPath(...) |
| expressions.swift:154:52:154:55 | #keyPath(...) | 0 | getImmediateRoot() | expressions.swift:154:53:154:53 | B |
| patterns.swift:1:1:7:1 | basic_patterns() | 2 | getImmediateBody() | patterns.swift:1:23:7:1 | { ... } |
| patterns.swift:1:1:7:1 | basic_patterns() | 1 | getImmediateBody() | patterns.swift:1:23:7:1 | { ... } |
| patterns.swift:1:23:7:1 | { ... } | 0 | getImmediateElement(0) | patterns.swift:2:5:2:18 | var ... = ... |
| patterns.swift:1:23:7:1 | { ... } | 1 | getImmediateElement(1) | patterns.swift:2:9:2:9 | an_int |
| patterns.swift:1:23:7:1 | { ... } | 2 | getImmediateElement(2) | patterns.swift:3:5:3:28 | var ... = ... |
@@ -949,7 +949,7 @@
| patterns.swift:6:5:6:15 | var ... = ... | 0 | getImmediateInit(0) | patterns.swift:6:15:6:15 | paren |
| patterns.swift:6:5:6:15 | var ... = ... | 1 | getImmediatePattern(0) | patterns.swift:6:9:6:11 | (...) |
| patterns.swift:6:9:6:11 | (...) | 0 | getImmediateSubPattern() | patterns.swift:6:10:6:10 | _ |
| patterns.swift:9:1:52:1 | switch_patterns() | 2 | getImmediateBody() | patterns.swift:9:24:52:1 | { ... } |
| patterns.swift:9:1:52:1 | switch_patterns() | 1 | getImmediateBody() | patterns.swift:9:24:52:1 | { ... } |
| patterns.swift:9:24:52:1 | { ... } | 0 | getImmediateElement(0) | patterns.swift:10:5:10:22 | var ... = ... |
| patterns.swift:9:24:52:1 | { ... } | 1 | getImmediateElement(1) | patterns.swift:10:9:10:9 | point |
| patterns.swift:9:24:52:1 | { ... } | 2 | getImmediateElement(2) | patterns.swift:11:5:13:5 | switch point { ... } |
@@ -1075,7 +1075,7 @@
| patterns.swift:50:5:50:17 | case ... | 1 | getImmediateLabel(0) | patterns.swift:50:10:50:10 | false |
| patterns.swift:50:10:50:10 | false | 0 | getImmediatePattern() | patterns.swift:50:10:50:10 | false |
| patterns.swift:50:17:50:17 | { ... } | 0 | getImmediateElement(0) | patterns.swift:50:17:50:17 | false |
| statements.swift:1:1:32:1 | loop() | 2 | getImmediateBody() | statements.swift:1:13:32:1 | { ... } |
| statements.swift:1:1:32:1 | loop() | 1 | getImmediateBody() | statements.swift:1:13:32:1 | { ... } |
| statements.swift:1:13:32:1 | { ... } | 0 | getImmediateElement(0) | statements.swift:2:3:8:3 | for ... in ... { ... } |
| statements.swift:1:13:32:1 | { ... } | 1 | getImmediateElement(1) | statements.swift:9:3:9:11 | var ... = ... |
| statements.swift:1:13:32:1 | { ... } | 2 | getImmediateElement(2) | statements.swift:9:7:9:7 | i |
@@ -1280,11 +1280,11 @@
| statements.swift:71:40:71:40 | Int.Type | 0 | getImmediateTypeRepr() | statements.swift:71:40:71:40 | Int |
| statements.swift:74:8:74:8 | init | 0 | getImmediateSelfParam() | statements.swift:74:8:74:8 | self |
| statements.swift:74:8:74:8 | init | 1 | getImmediateParam(0) | statements.swift:74:8:74:8 | x |
| statements.swift:75:3:75:11 | var ... = ... | 1 | getImmediatePattern(0) | statements.swift:75:7:75:11 | ... as ... |
| statements.swift:75:3:75:11 | var ... = ... | 0 | getImmediatePattern(0) | statements.swift:75:7:75:11 | ... as ... |
| statements.swift:75:7:75:7 | (unnamed function decl) | 0 | getImmediateSelfParam() | statements.swift:75:7:75:7 | self |
| statements.swift:75:7:75:7 | (unnamed function decl) | 2 | getImmediateBody() | statements.swift:75:7:75:7 | { ... } |
| statements.swift:75:7:75:7 | (unnamed function decl) | 1 | getImmediateBody() | statements.swift:75:7:75:7 | { ... } |
| statements.swift:75:7:75:7 | get | 0 | getImmediateSelfParam() | statements.swift:75:7:75:7 | self |
| statements.swift:75:7:75:7 | get | 2 | getImmediateBody() | statements.swift:75:7:75:7 | { ... } |
| statements.swift:75:7:75:7 | get | 1 | getImmediateBody() | statements.swift:75:7:75:7 | { ... } |
| statements.swift:75:7:75:7 | set | 0 | getImmediateSelfParam() | statements.swift:75:7:75:7 | self |
| statements.swift:75:7:75:7 | set | 1 | getImmediateParam(0) | statements.swift:75:7:75:7 | value |
| statements.swift:75:7:75:7 | set | 2 | getImmediateBody() | statements.swift:75:7:75:7 | { ... } |
@@ -1297,7 +1297,7 @@
| statements.swift:75:7:75:7 | { ... } | 0 | getImmediateElement(0) | statements.swift:75:7:75:7 | yield ... |
| statements.swift:75:7:75:11 | ... as ... | 0 | getImmediateSubPattern() | statements.swift:75:7:75:7 | x |
| statements.swift:75:7:75:11 | ... as ... | 1 | getImmediateTypeRepr() | statements.swift:75:11:75:11 | Int |
| statements.swift:76:3:84:3 | var ... = ... | 1 | getImmediatePattern(0) | statements.swift:76:7:76:19 | ... as ... |
| statements.swift:76:3:84:3 | var ... = ... | 0 | getImmediatePattern(0) | statements.swift:76:7:76:19 | ... as ... |
| statements.swift:76:7:76:7 | hasModify | 0 | getImmediateAccessorDecl(0) | statements.swift:77:5:79:5 | (unnamed function decl) |
| statements.swift:76:7:76:7 | hasModify | 1 | getImmediateAccessorDecl(1) | statements.swift:81:5:83:5 | get |
| statements.swift:76:7:76:7 | hasModify | 2 | getImmediateAccessorDecl(2) | statements.swift:76:7:76:7 | set |
@@ -1308,12 +1308,12 @@
| statements.swift:76:7:76:19 | ... as ... | 0 | getImmediateSubPattern() | statements.swift:76:7:76:7 | hasModify |
| statements.swift:76:7:76:19 | ... as ... | 1 | getImmediateTypeRepr() | statements.swift:76:19:76:19 | Int |
| statements.swift:77:5:79:5 | (unnamed function decl) | 0 | getImmediateSelfParam() | statements.swift:77:5:77:5 | self |
| statements.swift:77:5:79:5 | (unnamed function decl) | 2 | getImmediateBody() | statements.swift:77:13:79:5 | { ... } |
| statements.swift:77:5:79:5 | (unnamed function decl) | 1 | getImmediateBody() | statements.swift:77:13:79:5 | { ... } |
| statements.swift:77:13:79:5 | { ... } | 0 | getImmediateElement(0) | statements.swift:78:7:78:14 | yield ... |
| statements.swift:78:7:78:14 | yield ... | 0 | getImmediateResult(0) | statements.swift:78:13:78:14 | &... |
| statements.swift:78:13:78:14 | &... | 0 | getImmediateSubExpr() | statements.swift:78:14:78:14 | .x |
| statements.swift:78:14:78:14 | .x | 0 | getImmediateBase() | statements.swift:78:14:78:14 | self |
| statements.swift:81:5:83:5 | get | 0 | getImmediateSelfParam() | statements.swift:81:5:81:5 | self |
| statements.swift:81:5:83:5 | get | 2 | getImmediateBody() | statements.swift:81:9:83:5 | { ... } |
| statements.swift:81:5:83:5 | get | 1 | getImmediateBody() | statements.swift:81:9:83:5 | { ... } |
| statements.swift:81:9:83:5 | { ... } | 0 | getImmediateElement(0) | statements.swift:82:7:82:14 | return ... |
| statements.swift:82:7:82:14 | return ... | 0 | getImmediateResult() | statements.swift:82:14:82:14 | 0 |