Merge branch 'master' into fix-float-from-int

This commit is contained in:
Ilya Puchka
2018-01-01 14:26:27 +01:00
committed by GitHub
3 changed files with 116 additions and 6 deletions

View File

@@ -94,6 +94,22 @@ class ForNode : NodeType {
values = Array(range)
} else if let range = resolved as? CountableRange<Int> {
values = Array(range)
} else if let resolved = resolved {
let mirror = Mirror(reflecting: resolved)
switch mirror.displayStyle {
case .struct?, .tuple?:
values = Array(mirror.children)
case .class?:
var children = Array(mirror.children)
var currentMirror: Mirror? = mirror
while let superclassMirror = currentMirror?.superclassMirror {
children.append(contentsOf: superclassMirror.children)
currentMirror = superclassMirror
}
values = Array(children)
default:
values = []
}
} else {
values = []
}