[INFO] fetching crate fxrazen 0.1.4...
[INFO] testing fxrazen-0.1.4 against master#1871252fc8bb672d40787e67404e6eaae7059369 for pr-125151
[INFO] extracting crate fxrazen 0.1.4 into /workspace/builds/worker-6-tc1/source
[INFO] validating manifest of crates.io crate fxrazen 0.1.4 on toolchain 1871252fc8bb672d40787e67404e6eaae7059369
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1871252fc8bb672d40787e67404e6eaae7059369" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking crates.io crate fxrazen 0.1.4
[INFO] finished tweaking crates.io crate fxrazen 0.1.4
[INFO] tweaked toml for crates.io crate fxrazen 0.1.4 written to /workspace/builds/worker-6-tc1/source/Cargo.toml
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1871252fc8bb672d40787e67404e6eaae7059369" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]      Locking 42 packages to latest compatible versions
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1871252fc8bb672d40787e67404e6eaae7059369" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded by_address v1.2.1
[INFO] [stderr]   Downloaded lazy-regex v3.1.0
[INFO] [stderr]   Downloaded late_format v1.0.0
[INFO] [stderr]   Downloaded file_paths v1.0.0
[INFO] [stderr]   Downloaded lazy-regex-proc_macros v3.1.0
[INFO] [stderr]   Downloaded as3_parser v1.0.25
[INFO] [stderr]   Downloaded htmlentity v1.3.1
[INFO] [stderr]   Downloaded hydroper_source_text v1.0.3
[INFO] [stderr]   Downloaded unicode-general-category v0.6.0
[INFO] [stderr]   Downloaded smodel-proc v1.0.11
[INFO] [stderr]   Downloaded smodel v1.0.13
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:59a85a07ab18ca8720692f8e61effa1c651d9e2ca591e072c2b212bb91a6b8b5" "/opt/rustwide/cargo-home/bin/cargo" "+1871252fc8bb672d40787e67404e6eaae7059369" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 21c1e623fb6874c66597f78bc1a54f2b6f991d59475d0c09ccbee2b7267918f0
[INFO] running `Command { std: "docker" "start" "-a" "21c1e623fb6874c66597f78bc1a54f2b6f991d59475d0c09ccbee2b7267918f0", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "21c1e623fb6874c66597f78bc1a54f2b6f991d59475d0c09ccbee2b7267918f0", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "21c1e623fb6874c66597f78bc1a54f2b6f991d59475d0c09ccbee2b7267918f0", kill_on_drop: false }`
[INFO] [stdout] 21c1e623fb6874c66597f78bc1a54f2b6f991d59475d0c09ccbee2b7267918f0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:59a85a07ab18ca8720692f8e61effa1c651d9e2ca591e072c2b212bb91a6b8b5" "/opt/rustwide/cargo-home/bin/cargo" "+1871252fc8bb672d40787e67404e6eaae7059369" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 0484d0d6573c8fb16fb4d6db38693c750202ef61ab8ea4c266c39cb1a32d6f0e
[INFO] running `Command { std: "docker" "start" "-a" "0484d0d6573c8fb16fb4d6db38693c750202ef61ab8ea4c266c39cb1a32d6f0e", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.83
[INFO] [stderr]    Compiling memchr v2.7.2
[INFO] [stderr]    Compiling regex-syntax v0.8.3
[INFO] [stderr]    Compiling serde v1.0.202
[INFO] [stderr]    Compiling thiserror v1.0.61
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling anyhow v1.0.86
[INFO] [stderr]    Compiling unicode-general-category v0.6.0
[INFO] [stderr]    Compiling aho-corasick v1.1.3
[INFO] [stderr]    Compiling by_address v1.2.1
[INFO] [stderr]    Compiling custom_derive v0.1.7
[INFO] [stderr]    Compiling maplit v1.0.2
[INFO] [stderr]    Compiling conv v0.3.3
[INFO] [stderr]    Compiling quote v1.0.36
[INFO] [stderr]    Compiling hydroper_source_text v1.0.3
[INFO] [stderr]    Compiling bytes v1.6.0
[INFO] [stderr]    Compiling syn v2.0.66
[INFO] [stderr]    Compiling num-integer v0.1.46
[INFO] [stderr]    Compiling dotenvy v0.15.7
[INFO] [stderr]    Compiling num-bigint v0.4.5
[INFO] [stderr]    Compiling regex-automata v0.4.6
[INFO] [stderr]    Compiling serde_derive v1.0.202
[INFO] [stderr]    Compiling thiserror-impl v1.0.61
[INFO] [stderr]    Compiling num-derive v0.4.2
[INFO] [stderr]    Compiling smodel-proc v1.0.11
[INFO] [stderr]    Compiling regex v1.10.4
[INFO] [stderr]    Compiling lazy-regex-proc_macros v3.1.0
[INFO] [stderr]    Compiling htmlentity v1.3.1
[INFO] [stderr]    Compiling smodel v1.0.13
[INFO] [stderr]    Compiling lazy-regex v3.1.0
[INFO] [stderr]    Compiling late_format v1.0.0
[INFO] [stderr]    Compiling file_paths v1.0.0
[INFO] [stderr]    Compiling bitflags v2.5.0
[INFO] [stderr]    Compiling serde_json v1.0.117
[INFO] [stderr]    Compiling as3_parser v1.0.25
[INFO] [stderr]    Compiling fxrazen v0.1.4 (/opt/rustwide/workdir)
[INFO] [stdout] warning: methods `unused_things` and `add_unused_thing` are never used
[INFO] [stdout]    --> semantics/semantic_host.rs:330:19
[INFO] [stdout]     |
[INFO] [stdout] 58  | impl SemanticHost {
[INFO] [stdout]     | ----------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 330 |     pub(crate) fn unused_things(&self) -> std::cell::Ref<Vec<Thingy>> {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 334 |     pub(crate) fn add_unused_thing(&self, thing: &Thingy) {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 1 warning emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 31.61s
[INFO] running `Command { std: "docker" "inspect" "0484d0d6573c8fb16fb4d6db38693c750202ef61ab8ea4c266c39cb1a32d6f0e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "0484d0d6573c8fb16fb4d6db38693c750202ef61ab8ea4c266c39cb1a32d6f0e", kill_on_drop: false }`
[INFO] [stdout] 0484d0d6573c8fb16fb4d6db38693c750202ef61ab8ea4c266c39cb1a32d6f0e
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:59a85a07ab18ca8720692f8e61effa1c651d9e2ca591e072c2b212bb91a6b8b5" "/opt/rustwide/cargo-home/bin/cargo" "+1871252fc8bb672d40787e67404e6eaae7059369" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] affadefee074f0251b2421581125794bc9faa54543a9aacd2f8cbaede61b5c11
[INFO] running `Command { std: "docker" "start" "-a" "affadefee074f0251b2421581125794bc9faa54543a9aacd2f8cbaede61b5c11", kill_on_drop: false }`
[INFO] [stdout] warning: methods `unused_things` and `add_unused_thing` are never used
[INFO] [stdout]    --> semantics/semantic_host.rs:330:19
[INFO] [stdout]     |
[INFO] [stdout] 58  | impl SemanticHost {
[INFO] [stdout]     | ----------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 330 |     pub(crate) fn unused_things(&self) -> std::cell::Ref<Vec<Thingy>> {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 334 |     pub(crate) fn add_unused_thing(&self, thing: &Thingy) {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling fxrazen v0.1.4 (/opt/rustwide/workdir)
[INFO] [stdout] warning: 1 warning emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `unused_things` and `add_unused_thing` are never used
[INFO] [stdout]    --> semantics/semantic_host.rs:330:19
[INFO] [stdout]     |
[INFO] [stdout] 58  | impl SemanticHost {
[INFO] [stdout]     | ----------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 330 |     pub(crate) fn unused_things(&self) -> std::cell::Ref<Vec<Thingy>> {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 334 |     pub(crate) fn add_unused_thing(&self, thing: &Thingy) {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 1 warning emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 2.36s
[INFO] running `Command { std: "docker" "inspect" "affadefee074f0251b2421581125794bc9faa54543a9aacd2f8cbaede61b5c11", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "affadefee074f0251b2421581125794bc9faa54543a9aacd2f8cbaede61b5c11", kill_on_drop: false }`
[INFO] [stdout] affadefee074f0251b2421581125794bc9faa54543a9aacd2f8cbaede61b5c11
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:59a85a07ab18ca8720692f8e61effa1c651d9e2ca591e072c2b212bb91a6b8b5" "/opt/rustwide/cargo-home/bin/cargo" "+1871252fc8bb672d40787e67404e6eaae7059369" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 4324d83b7030f8f649f64df6f9d393000f9b2f9fd49eb6fdc87647b2a5f43e2b
[INFO] running `Command { std: "docker" "start" "-a" "4324d83b7030f8f649f64df6f9d393000f9b2f9fd49eb6fdc87647b2a5f43e2b", kill_on_drop: false }`
[INFO] [stderr] warning: methods `unused_things` and `add_unused_thing` are never used
[INFO] [stderr]    --> semantics/semantic_host.rs:330:19
[INFO] [stderr]     |
[INFO] [stderr] 58  | impl SemanticHost {
[INFO] [stderr]     | ----------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 330 |     pub(crate) fn unused_things(&self) -> std::cell::Ref<Vec<Thingy>> {
[INFO] [stderr]     |                   ^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 334 |     pub(crate) fn add_unused_thing(&self, thing: &Thingy) {
[INFO] [stderr]     |                   ^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(dead_code)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `fxrazen` (lib) generated 1 warning
[INFO] [stderr] warning: `fxrazen` (lib test) generated 1 warning (1 duplicate)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.04s
[INFO] [stderr]      Running unittests lib.rs (/opt/rustwide/target/debug/deps/fxrazen-3e38906896022496)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests fxrazen
[INFO] [stdout] 
[INFO] [stdout] running 2 tests
[INFO] [stdout] test semantics/name_map.rs - semantics::name_map::NameMap (line 20) ... ignored
[INFO] [stdout] test semantics/thingy_factory.rs - semantics::thingy_factory::ThingyFactory<'a>::create_package (line 73) ... ignored
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 2 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "4324d83b7030f8f649f64df6f9d393000f9b2f9fd49eb6fdc87647b2a5f43e2b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "4324d83b7030f8f649f64df6f9d393000f9b2f9fd49eb6fdc87647b2a5f43e2b", kill_on_drop: false }`
[INFO] [stdout] 4324d83b7030f8f649f64df6f9d393000f9b2f9fd49eb6fdc87647b2a5f43e2b
[INFO] testing fxrazen-0.1.4 against try#b642703cf9526da1e72c0b6755753b939a9c6b6d for pr-125151
[INFO] extracting crate fxrazen 0.1.4 into /workspace/builds/worker-6-tc2/source
[INFO] validating manifest of crates.io crate fxrazen 0.1.4 on toolchain b642703cf9526da1e72c0b6755753b939a9c6b6d
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+b642703cf9526da1e72c0b6755753b939a9c6b6d" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking crates.io crate fxrazen 0.1.4
[INFO] finished tweaking crates.io crate fxrazen 0.1.4
[INFO] tweaked toml for crates.io crate fxrazen 0.1.4 written to /workspace/builds/worker-6-tc2/source/Cargo.toml
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+b642703cf9526da1e72c0b6755753b939a9c6b6d" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]      Locking 42 packages to latest compatible versions
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+b642703cf9526da1e72c0b6755753b939a9c6b6d" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:59a85a07ab18ca8720692f8e61effa1c651d9e2ca591e072c2b212bb91a6b8b5" "/opt/rustwide/cargo-home/bin/cargo" "+b642703cf9526da1e72c0b6755753b939a9c6b6d" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] daf5629ddd88360cf6a8bc990c4dc7df72639bec122eec2a450b8c04c51d7d82
[INFO] running `Command { std: "docker" "start" "-a" "daf5629ddd88360cf6a8bc990c4dc7df72639bec122eec2a450b8c04c51d7d82", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "daf5629ddd88360cf6a8bc990c4dc7df72639bec122eec2a450b8c04c51d7d82", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "daf5629ddd88360cf6a8bc990c4dc7df72639bec122eec2a450b8c04c51d7d82", kill_on_drop: false }`
[INFO] [stdout] daf5629ddd88360cf6a8bc990c4dc7df72639bec122eec2a450b8c04c51d7d82
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:59a85a07ab18ca8720692f8e61effa1c651d9e2ca591e072c2b212bb91a6b8b5" "/opt/rustwide/cargo-home/bin/cargo" "+b642703cf9526da1e72c0b6755753b939a9c6b6d" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] ec4d1f0d561221122a40ba743b9b3bc2c899a686c144c7fdab6a859e3d4f8e5c
[INFO] running `Command { std: "docker" "start" "-a" "ec4d1f0d561221122a40ba743b9b3bc2c899a686c144c7fdab6a859e3d4f8e5c", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.83
[INFO] [stderr]    Compiling memchr v2.7.2
[INFO] [stderr]    Compiling regex-syntax v0.8.3
[INFO] [stderr]    Compiling serde v1.0.202
[INFO] [stderr]    Compiling thiserror v1.0.61
[INFO] [stderr]    Compiling anyhow v1.0.86
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling unicode-general-category v0.6.0
[INFO] [stderr]    Compiling by_address v1.2.1
[INFO] [stderr]    Compiling maplit v1.0.2
[INFO] [stderr]    Compiling custom_derive v0.1.7
[INFO] [stderr]    Compiling hydroper_source_text v1.0.3
[INFO] [stderr]    Compiling conv v0.3.3
[INFO] [stderr]    Compiling aho-corasick v1.1.3
[INFO] [stderr]    Compiling quote v1.0.36
[INFO] [stderr]    Compiling bytes v1.6.0
[INFO] [stderr]    Compiling syn v2.0.66
[INFO] [stderr]    Compiling dotenvy v0.15.7
[INFO] [stderr]    Compiling num-integer v0.1.46
[INFO] [stderr]    Compiling num-bigint v0.4.5
[INFO] [stderr]    Compiling regex-automata v0.4.6
[INFO] [stderr]    Compiling serde_derive v1.0.202
[INFO] [stderr]    Compiling thiserror-impl v1.0.61
[INFO] [stderr]    Compiling smodel-proc v1.0.11
[INFO] [stderr]    Compiling num-derive v0.4.2
[INFO] [stderr]    Compiling regex v1.10.4
[INFO] [stderr]    Compiling smodel v1.0.13
[INFO] [stderr]    Compiling htmlentity v1.3.1
[INFO] [stderr]    Compiling lazy-regex-proc_macros v3.1.0
[INFO] [stderr]    Compiling lazy-regex v3.1.0
[INFO] [stderr]    Compiling file_paths v1.0.0
[INFO] [stderr]    Compiling late_format v1.0.0
[INFO] [stderr]    Compiling bitflags v2.5.0
[INFO] [stderr]    Compiling serde_json v1.0.117
[INFO] [stderr]    Compiling as3_parser v1.0.25
[INFO] [stderr]    Compiling fxrazen v0.1.4 (/opt/rustwide/workdir)
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]     --> semantics/thingy.rs:5:1
[INFO] [stdout]      |
[INFO] [stdout] 5    | / smodel! {
[INFO] [stdout] 6    | |     type Arena = ThingyArena;
[INFO] [stdout] 7    | |
[INFO] [stdout] 8    | |     /// Unified semantic data type representing
[INFO] [stdout] ...    |
[INFO] [stdout] 3562 | |     }
[INFO] [stdout] 3563 | | }
[INFO] [stdout]      | | ^
[INFO] [stdout]      | | |
[INFO] [stdout]      | | temporary value is freed at the end of this statement
[INFO] [stdout]      | |_creates a temporary value which is freed while still in use
[INFO] [stdout]      |   borrow later used here
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]      = note: this error originates in the macro `smodel` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]     --> semantics/thingy.rs:5:1
[INFO] [stdout]      |
[INFO] [stdout] 5    | / smodel! {
[INFO] [stdout] 6    | |     type Arena = ThingyArena;
[INFO] [stdout] 7    | |
[INFO] [stdout] 8    | |     /// Unified semantic data type representing
[INFO] [stdout] ...    |
[INFO] [stdout] 3562 | |     }
[INFO] [stdout] 3563 | | }
[INFO] [stdout]      | | ^
[INFO] [stdout]      | | |
[INFO] [stdout]      | | temporary value is freed at the end of this statement
[INFO] [stdout]      | |_creates a temporary value which is freed while still in use
[INFO] [stdout]      |   borrow later used here
[INFO] [stdout]      |
[INFO] [stdout]      = note: this error originates in the macro `smodel` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: consider using a `let` binding to create a longer lived value
[INFO] [stdout]      |
[INFO] [stdout] 5    + let binding = smodel! {
[INFO] [stdout] 6    +     type Arena = ThingyArena;
[INFO] [stdout] 7    + 
[INFO] [stdout] 8    +     /// Unified semantic data type representing
[INFO] [stdout] 9    +     /// one of several ActionScript 3 variants,
[INFO] [stdout] 10   +     /// such as classes, variable slots, and reference values.
[INFO] [stdout] 11   +     pub struct Thingy {
[INFO] [stdout] 12   +         pub fn defer(&self) -> Result<Thingy, DeferError> {
[INFO] [stdout] 13   +             if self.is::<UnresolvedThingy>() {
[INFO] [stdout] 14   +                 Err(DeferError())
[INFO] [stdout] 15   +             } else {
[INFO] [stdout] 16   +                 Ok(self.clone())
[INFO] [stdout] 17   +             }
[INFO] [stdout] 18   +         }
[INFO] [stdout] 19   + 
[INFO] [stdout] 20   +         pub fn location(&self) -> Option<Location> {
[INFO] [stdout] 21   +             panic!();
[INFO] [stdout] 22   +         }
[INFO] [stdout] 23   + 
[INFO] [stdout] 24   +         pub fn set_location(&self, loc: Option<Location>) {
[INFO] [stdout] 25   +             panic!();
[INFO] [stdout] 26   +         }
[INFO] [stdout] 27   + 
[INFO] [stdout] 28   +         pub fn qualifier(&self) -> Option<Thingy> {
[INFO] [stdout] 29   +             panic!();
[INFO] [stdout] 30   +         }
[INFO] [stdout] 31   + 
[INFO] [stdout] 32   +         pub fn key(&self) -> Thingy {
[INFO] [stdout] 33   +             panic!();
[INFO] [stdout] 34   +         }
[INFO] [stdout] 35   + 
[INFO] [stdout] 36   +         /// Returns the static type of a property, whether for a type, variable, virtual or method slot or namespace,
[INFO] [stdout] 37   +         /// or act as identity of a value's static type.
[INFO] [stdout] 38   +         /// Possibly `UnresolvedThingy`.
[INFO] [stdout] 39   +         pub fn property_static_type(&self, host: &SemanticHost) -> Thingy {
[INFO] [stdout] 40   +             panic!();
[INFO] [stdout] 41   +         }
[INFO] [stdout] 42   + 
[INFO] [stdout] 43   +         pub fn is_dynamic_or_inherits_dynamic(&self, host: &SemanticHost) -> Result<bool, DeferError> {
[INFO] [stdout] 44   +             Ok(false)
[INFO] [stdout] 45   +         }
[INFO] [stdout] 46   + 
[INFO] [stdout] 47   +         pub fn tuple_index(&self) -> usize {
[INFO] [stdout] 48   +             0
[INFO] [stdout] 49   +         }
[INFO] [stdout] 50   + 
[INFO] [stdout] 51   +         pub fn system_ns_kind(&self) -> Option<SystemNamespaceKind> {
[INFO] [stdout] 52   +             None
[INFO] [stdout] 53   +         }
[INFO] [stdout] 54   + 
[INFO] [stdout] 55   +         pub fn asdoc(&self) -> Option<Rc<AsDoc>> {
[INFO] [stdout] 56   +             None
[INFO] [stdout] 57   +         }
[INFO] [stdout] 58   + 
[INFO] [stdout] 59   +         pub fn set_asdoc(&self, asdoc: Option<Rc<AsDoc>>) {}
[INFO] [stdout] 60   + 
[INFO] [stdout] 61   +         pub fn metadata(&self) -> SharedArray<Rc<Metadata>> {
[INFO] [stdout] 62   +             panic!();
[INFO] [stdout] 63   +         }
[INFO] [stdout] 64   + 
[INFO] [stdout] 65   +         /// Escapes out of a nullable type layer.
[INFO] [stdout] 66   +         pub fn escape_of_nullable(&self) -> Thingy {
[INFO] [stdout] 67   +             self.clone()
[INFO] [stdout] 68   +         }
[INFO] [stdout] 69   + 
[INFO] [stdout] 70   +         /// Escapes out of a non nullable type layer.
[INFO] [stdout] 71   +         pub fn escape_of_non_nullable(&self) -> Thingy {
[INFO] [stdout] 72   +             self.clone()
[INFO] [stdout] 73   +         }
[INFO] [stdout] 74   + 
[INFO] [stdout] 75   +         /// Escapes out of a nullable or non nullable type layer.
[INFO] [stdout] 76   +         pub fn escape_of_nullable_or_non_nullable(&self) -> Thingy {
[INFO] [stdout] 77   +             self.clone()
[INFO] [stdout] 78   +         }
[INFO] [stdout] 79   + 
[INFO] [stdout] 80   +         pub fn object(&self) -> Thingy {
[INFO] [stdout] 81   +             panic!();
[INFO] [stdout] 82   +         }
[INFO] [stdout] 83   + 
[INFO] [stdout] 84   +         pub fn uri(&self) -> String {
[INFO] [stdout] 85   +             "".into()
[INFO] [stdout] 86   +         }
[INFO] [stdout] 87   + 
[INFO] [stdout] 88   +         pub fn open_ns_set(&self) -> SharedArray<Thingy> {
[INFO] [stdout] 89   +             panic!();
[INFO] [stdout] 90   +         }
[INFO] [stdout] 91   + 
[INFO] [stdout] 92   +         pub fn import_list(&self) -> SharedArray<Thingy> {
[INFO] [stdout] 93   +             panic!();
[INFO] [stdout] 94   +         }
[INFO] [stdout] 95   + 
[INFO] [stdout] 96   +         pub fn is_class_or_equivalent(&self) -> bool {
[INFO] [stdout] 97   +             self.is_class_type_possibly_after_sub()
[INFO] [stdout] 98   +             || self.is::<EnumType>()
[INFO] [stdout] 99   +             || self.is::<TupleType>()
[INFO] [stdout] 100  +             || self.is::<FunctionType>()
[INFO] [stdout] 101  +         }
[INFO] [stdout] 102  + 
[INFO] [stdout] 103  +         pub fn local_name(&self) -> String {
[INFO] [stdout] 104  +             "".into()
[INFO] [stdout] 105  +         }
[INFO] [stdout] 106  + 
[INFO] [stdout] 107  +         pub fn class(&self) -> Thingy {
[INFO] [stdout] 108  +             panic!();
[INFO] [stdout] 109  +         }
[INFO] [stdout] 110  + 
[INFO] [stdout] 111  +         pub fn interface(&self) -> Thingy {
[INFO] [stdout] 112  +             panic!();
[INFO] [stdout] 113  +         }
[INFO] [stdout] 114  + 
[INFO] [stdout] 115  +         pub fn package(&self) -> Thingy {
[INFO] [stdout] 116  +             panic!();
[INFO] [stdout] 117  +         }
[INFO] [stdout] 118  + 
[INFO] [stdout] 119  +         pub fn of_method(&self) -> Thingy {
[INFO] [stdout] 120  +             panic!();
[INFO] [stdout] 121  +         }
[INFO] [stdout] 122  +         
[INFO] [stdout] 123  +         pub fn search_activation(&self) -> Option<Thingy> {
[INFO] [stdout] 124  +             for scope in self.descending_scope_hierarchy() {
[INFO] [stdout] 125  +                 if scope.is::<Activation>() {
[INFO] [stdout] 126  +                     return Some(scope);
[INFO] [stdout] 127  +                 }
[INFO] [stdout] 128  +             }
[INFO] [stdout] 129  +             return None
[INFO] [stdout] 130  +         }
[INFO] [stdout] 131  + 
[INFO] [stdout] 132  +         pub fn this(&self) -> Option<Thingy> {
[INFO] [stdout] 133  +             panic!();
[INFO] [stdout] 134  +         }
[INFO] [stdout] 135  +         
[INFO] [stdout] 136  +         pub fn set_this(&self, this: Option<Thingy>) {
[INFO] [stdout] 137  +             panic!();
[INFO] [stdout] 138  +         }
[INFO] [stdout] 139  +         
[INFO] [stdout] 140  +         pub fn property_has_capture(&self, property: &Thingy) -> bool {
[INFO] [stdout] 141  +             panic!();
[INFO] [stdout] 142  +         }
[INFO] [stdout] 143  +         
[INFO] [stdout] 144  +         pub fn set_property_has_capture(&self, property: &Thingy, value: bool) {
[INFO] [stdout] 145  +             panic!();
[INFO] [stdout] 146  +         }
[INFO] [stdout] 147  + 
[INFO] [stdout] 148  +         pub fn referenced_type(&self) -> Thingy {
[INFO] [stdout] 149  +             panic!();
[INFO] [stdout] 150  +         }
[INFO] [stdout] 151  + 
[INFO] [stdout] 152  +         pub fn referenced_ns(&self) -> Thingy {
[INFO] [stdout] 153  +             panic!();
[INFO] [stdout] 154  +         }
[INFO] [stdout] 155  + 
[INFO] [stdout] 156  +         pub fn parent(&self) -> Option<Thingy> {
[INFO] [stdout] 157  +             panic!();
[INFO] [stdout] 158  +         }
[INFO] [stdout] 159  + 
[INFO] [stdout] 160  +         pub fn set_parent(&self, p: Option<Thingy>) {
[INFO] [stdout] 161  +             panic!();
[INFO] [stdout] 162  +         }
[INFO] [stdout] 163  + 
[INFO] [stdout] 164  +         pub fn package_concats(&self) -> SharedArray<Thingy> {
[INFO] [stdout] 165  +             panic!();
[INFO] [stdout] 166  +         }
[INFO] [stdout] 167  + 
[INFO] [stdout] 168  +         pub fn public_ns(&self) -> Option<Thingy> {
[INFO] [stdout] 169  +             panic!();
[INFO] [stdout] 170  +         }
[INFO] [stdout] 171  + 
[INFO] [stdout] 172  +         pub fn set_public_ns(&self, ns: Option<Thingy>) {
[INFO] [stdout] 173  +             panic!();
[INFO] [stdout] 174  +         }
[INFO] [stdout] 175  + 
[INFO] [stdout] 176  +         pub fn private_ns(&self) -> Option<Thingy> {
[INFO] [stdout] 177  +             panic!();
[INFO] [stdout] 178  +         }
[INFO] [stdout] 179  + 
[INFO] [stdout] 180  +         pub fn set_private_ns(&self, ns: Option<Thingy>) {
[INFO] [stdout] 181  +             panic!();
[INFO] [stdout] 182  +         }
[INFO] [stdout] 183  + 
[INFO] [stdout] 184  +         pub fn protected_ns(&self) -> Option<Thingy> {
[INFO] [stdout] 185  +             panic!();
[INFO] [stdout] 186  +         }
[INFO] [stdout] 187  + 
[INFO] [stdout] 188  +         pub fn set_protected_ns(&self, ns: Option<Thingy>) {
[INFO] [stdout] 189  +             panic!();
[INFO] [stdout] 190  +         }
[INFO] [stdout] 191  + 
[INFO] [stdout] 192  +         pub fn static_protected_ns(&self) -> Option<Thingy> {
[INFO] [stdout] 193  +             panic!();
[INFO] [stdout] 194  +         }
[INFO] [stdout] 195  + 
[INFO] [stdout] 196  +         pub fn set_static_protected_ns(&self, ns: Option<Thingy>) {
[INFO] [stdout] 197  +             panic!();
[INFO] [stdout] 198  +         }
[INFO] [stdout] 199  + 
[INFO] [stdout] 200  +         pub fn internal_ns(&self) -> Option<Thingy> {
[INFO] [stdout] 201  +             panic!();
[INFO] [stdout] 202  +         }
[INFO] [stdout] 203  + 
[INFO] [stdout] 204  +         pub fn set_internal_ns(&self, ns: Option<Thingy>) {
[INFO] [stdout] 205  +             panic!();
[INFO] [stdout] 206  +         }
[INFO] [stdout] 207  + 
[INFO] [stdout] 208  +         pub fn is_public_ns(&self) -> bool {
[INFO] [stdout] 209  +             false
[INFO] [stdout] 210  +         }
[INFO] [stdout] 211  + 
[INFO] [stdout] 212  +         pub fn is_private_ns(&self) -> bool {
[INFO] [stdout] 213  +             false
[INFO] [stdout] 214  +         }
[INFO] [stdout] 215  + 
[INFO] [stdout] 216  +         pub fn is_protected_ns(&self) -> bool {
[INFO] [stdout] 217  +             false
[INFO] [stdout] 218  +         }
[INFO] [stdout] 219  + 
[INFO] [stdout] 220  +         pub fn is_internal_ns(&self) -> bool {
[INFO] [stdout] 221  +             false
[INFO] [stdout] 222  +         }
[INFO] [stdout] 223  + 
[INFO] [stdout] 224  +         pub fn is_static_protected_ns(&self) -> bool {
[INFO] [stdout] 225  +             false
[INFO] [stdout] 226  +         }
[INFO] [stdout] 227  + 
[INFO] [stdout] 228  +         pub fn is_parameterized_type_or_type_after_sub(&self) -> bool {
[INFO] [stdout] 229  +             if self.is::<ClassType>() || self.is::<InterfaceType>() {
[INFO] [stdout] 230  +                 self.type_params().is_some()
[INFO] [stdout] 231  +             } else {
[INFO] [stdout] 232  +                 self.is::<TypeAfterSubstitution>()
[INFO] [stdout] 233  +             }
[INFO] [stdout] 234  +         }
[INFO] [stdout] 235  + 
[INFO] [stdout] 236  +         pub fn number_value(&self) -> NumberVariant {
[INFO] [stdout] 237  +             panic!();
[INFO] [stdout] 238  +         }
[INFO] [stdout] 239  + 
[INFO] [stdout] 240  +         pub fn string_value(&self) -> String {
[INFO] [stdout] 241  +             panic!();
[INFO] [stdout] 242  +         }
[INFO] [stdout] 243  + 
[INFO] [stdout] 244  +         pub fn boolean_value(&self) -> bool {
[INFO] [stdout] 245  +             panic!();
[INFO] [stdout] 246  +         }
[INFO] [stdout] 247  + 
[INFO] [stdout] 248  +         pub fn type_default_value(&self, host: &SemanticHost) -> Result<Option<Thingy>, DeferError> {
[INFO] [stdout] 249  +             panic!();
[INFO] [stdout] 250  +         }
[INFO] [stdout] 251  + 
[INFO] [stdout] 252  +         pub fn conversion_variant(&self) -> TypeConversionVariant {
[INFO] [stdout] 253  +             panic!();
[INFO] [stdout] 254  +         }
[INFO] [stdout] 255  + 
[INFO] [stdout] 256  +         pub fn conversion_is_opt(&self) -> bool {
[INFO] [stdout] 257  +             panic!();
[INFO] [stdout] 258  +         }
[INFO] [stdout] 259  + 
[INFO] [stdout] 260  +         pub fn conversion_target(&self) -> Thingy {
[INFO] [stdout] 261  +             panic!();
[INFO] [stdout] 262  +         }
[INFO] [stdout] 263  + 
[INFO] [stdout] 264  +         /// Returns whether a type is a class, whether
[INFO] [stdout] 265  +         /// original or after substitution.
[INFO] [stdout] 266  +         pub fn is_class_type_possibly_after_sub(&self) -> bool {
[INFO] [stdout] 267  +             false
[INFO] [stdout] 268  +         }
[INFO] [stdout] 269  + 
[INFO] [stdout] 270  +         /// Returns whether a type is an interface, whether
[INFO] [stdout] 271  +         /// original or after substitution.
[INFO] [stdout] 272  +         pub fn is_interface_type_possibly_after_sub(&self) -> bool {
[INFO] [stdout] 273  +             false
[INFO] [stdout] 274  +         }
[INFO] [stdout] 275  + 
[INFO] [stdout] 276  +         /// Event mapping from `[Event(name="eventName", type="T")]` meta-data.
[INFO] [stdout] 277  +         pub fn flex_events(&self) -> SharedMap<String, Thingy> {
[INFO] [stdout] 278  +             panic!();
[INFO] [stdout] 279  +         }
[INFO] [stdout] 280  + 
[INFO] [stdout] 281  +         pub fn bindable_event(&self) -> Option<String> {
[INFO] [stdout] 282  +             panic!();
[INFO] [stdout] 283  +         }
[INFO] [stdout] 284  + 
[INFO] [stdout] 285  +         pub fn set_bindable_event(&self, name: Option<String>) {
[INFO] [stdout] 286  +             panic!();
[INFO] [stdout] 287  +         }
[INFO] [stdout] 288  + 
[INFO] [stdout] 289  +         pub fn getter(&self, host: &SemanticHost) -> Option<Thingy> {
[INFO] [stdout] 290  +             panic!();
[INFO] [stdout] 291  +         }
[INFO] [stdout] 292  + 
[INFO] [stdout] 293  +         pub fn set_getter(&self, m: Option<Thingy>) {
[INFO] [stdout] 294  +             panic!();
[INFO] [stdout] 295  +         }
[INFO] [stdout] 296  + 
[INFO] [stdout] 297  +         pub fn setter(&self, host: &SemanticHost) -> Option<Thingy> {
[INFO] [stdout] 298  +             panic!();
[INFO] [stdout] 299  +         }
[INFO] [stdout] 300  + 
[INFO] [stdout] 301  +         pub fn set_setter(&self, m: Option<Thingy>) {
[INFO] [stdout] 302  +             panic!();
[INFO] [stdout] 303  +         }
[INFO] [stdout] 304  + 
[INFO] [stdout] 305  +         pub fn static_type(&self, host: &SemanticHost) -> Thingy {
[INFO] [stdout] 306  +             panic!();
[INFO] [stdout] 307  +         }
[INFO] [stdout] 308  + 
[INFO] [stdout] 309  +         pub fn set_static_type(&self, value: Thingy) {
[INFO] [stdout] 310  +             panic!();
[INFO] [stdout] 311  +         }
[INFO] [stdout] 312  + 
[INFO] [stdout] 313  +         pub fn clone_constant(&self, host: &SemanticHost) -> Thingy {
[INFO] [stdout] 314  +             panic!();
[INFO] [stdout] 315  +         }
[INFO] [stdout] 316  + 
[INFO] [stdout] 317  +         pub fn is_external(&self) -> bool {
[INFO] [stdout] 318  +             false
[INFO] [stdout] 319  +         }
[INFO] [stdout] 320  + 
[INFO] [stdout] 321  +         pub fn set_is_external(&self, value: bool) {
[INFO] [stdout] 322  +         }
[INFO] [stdout] 323  + 
[INFO] [stdout] 324  +         pub fn is_abstract(&self) -> bool {
[INFO] [stdout] 325  +             false
[INFO] [stdout] 326  +         }
[INFO] [stdout] 327  + 
[INFO] [stdout] 328  +         pub fn set_is_abstract(&self, value: bool) {
[INFO] [stdout] 329  +         }
[INFO] [stdout] 330  + 
[INFO] [stdout] 331  +         pub fn is_final(&self) -> bool {
[INFO] [stdout] 332  +             false
[INFO] [stdout] 333  +         }
[INFO] [stdout] 334  + 
[INFO] [stdout] 335  +         pub fn set_is_final(&self, value: bool) {
[INFO] [stdout] 336  +         }
[INFO] [stdout] 337  + 
[INFO] [stdout] 338  +         pub fn is_dynamic(&self) -> bool {
[INFO] [stdout] 339  +             false
[INFO] [stdout] 340  +         }
[INFO] [stdout] 341  + 
[INFO] [stdout] 342  +         pub fn set_is_dynamic(&self, value: bool) {
[INFO] [stdout] 343  +         }
[INFO] [stdout] 344  + 
[INFO] [stdout] 345  +         pub fn is_options_class(&self) -> bool {
[INFO] [stdout] 346  +             false
[INFO] [stdout] 347  +         }
[INFO] [stdout] 348  + 
[INFO] [stdout] 349  +         pub fn set_is_options_class(&self, value: bool) {
[INFO] [stdout] 350  +         }
[INFO] [stdout] 351  + 
[INFO] [stdout] 352  +         pub fn is_static(&self) -> bool {
[INFO] [stdout] 353  +             false
[INFO] [stdout] 354  +         }
[INFO] [stdout] 355  + 
[INFO] [stdout] 356  +         pub fn set_is_static(&self, value: bool) {
[INFO] [stdout] 357  +         }
[INFO] [stdout] 358  + 
[INFO] [stdout] 359  +         pub fn is_overriding(&self) -> bool {
[INFO] [stdout] 360  +             false
[INFO] [stdout] 361  +         }
[INFO] [stdout] 362  + 
[INFO] [stdout] 363  +         pub fn set_is_overriding(&self, value: bool) {
[INFO] [stdout] 364  +         }
[INFO] [stdout] 365  + 
[INFO] [stdout] 366  +         pub fn is_async(&self) -> bool {
[INFO] [stdout] 367  +             false
[INFO] [stdout] 368  +         }
[INFO] [stdout] 369  + 
[INFO] [stdout] 370  +         pub fn set_is_async(&self, value: bool) {
[INFO] [stdout] 371  +         }
[INFO] [stdout] 372  + 
[INFO] [stdout] 373  +         pub fn is_generator(&self) -> bool {
[INFO] [stdout] 374  +             false
[INFO] [stdout] 375  +         }
[INFO] [stdout] 376  + 
[INFO] [stdout] 377  +         pub fn set_is_generator(&self, value: bool) {
[INFO] [stdout] 378  +         }
[INFO] [stdout] 379  + 
[INFO] [stdout] 380  +         pub fn signature(&self, host: &SemanticHost) -> Thingy {
[INFO] [stdout] 381  +             panic!();
[INFO] [stdout] 382  +         }
[INFO] [stdout] 383  + 
[INFO] [stdout] 384  +         pub fn set_signature(&self, signature: &Thingy) {
[INFO] [stdout] 385  +             panic!();
[INFO] [stdout] 386  +         }
[INFO] [stdout] 387  + 
[INFO] [stdout] 388  +         /// If a type is `[T]`, returns `T`, either as an origin type parameter
[INFO] [stdout] 389  +         /// or as a substitute type.
[INFO] [stdout] 390  +         pub fn array_element_type(&self, host: &SemanticHost) -> Result<Option<Thingy>, DeferError> {
[INFO] [stdout] 391  +             let array_type = host.array_type().defer()?;
[INFO] [stdout] 392  +             if self == &array_type {
[INFO] [stdout] 393  +                 Ok(Some(array_type.type_params().unwrap().get(0).unwrap()))
[INFO] [stdout] 394  +             } else if self.type_after_sub_has_origin(&array_type) {
[INFO] [stdout] 395  +                 Ok(Some(self.substitute_types().get(0).unwrap()))
[INFO] [stdout] 396  +             } else {
[INFO] [stdout] 397  +                 Ok(None)
[INFO] [stdout] 398  +             }
[INFO] [stdout] 399  +         }
[INFO] [stdout] 400  + 
[INFO] [stdout] 401  +         /// If a type is `Vector.<T>`, returns `T`, either as an origin type parameter
[INFO] [stdout] 402  +         /// or as a substitute type.
[INFO] [stdout] 403  +         pub fn vector_element_type(&self, host: &SemanticHost) -> Result<Option<Thingy>, DeferError> {
[INFO] [stdout] 404  +             let vec_type = host.vector_type().defer()?;
[INFO] [stdout] 405  +             if self == &vec_type {
[INFO] [stdout] 406  +                 Ok(Some(vec_type.type_params().unwrap().get(0).unwrap()))
[INFO] [stdout] 407  +             } else if self.type_after_sub_has_origin(&vec_type) {
[INFO] [stdout] 408  +                 Ok(Some(self.substitute_types().get(0).unwrap()))
[INFO] [stdout] 409  +             } else {
[INFO] [stdout] 410  +                 Ok(None)
[INFO] [stdout] 411  +             }
[INFO] [stdout] 412  +         }
[INFO] [stdout] 413  + 
[INFO] [stdout] 414  +         pub fn type_after_sub_has_origin(&self, origin: &Thingy) -> bool {
[INFO] [stdout] 415  +             self.is::<TypeAfterSubstitution>() && &self.origin() == origin
[INFO] [stdout] 416  +         }
[INFO] [stdout] 417  + 
[INFO] [stdout] 418  +         pub fn is_type_or_type_after_sub_has_origin(&self, type_or_origin: &Thingy) -> bool {
[INFO] [stdout] 419  +             self == type_or_origin || self.type_after_sub_has_origin(type_or_origin)
[INFO] [stdout] 420  +         }
[INFO] [stdout] 421  + 
[INFO] [stdout] 422  +         pub fn origin_or_parameterized_type_identity(&self) -> Option<Thingy> {
[INFO] [stdout] 423  +             if self.is::<TypeAfterSubstitution>() {
[INFO] [stdout] 424  +                 Some(self.origin())
[INFO] [stdout] 425  +             } else if self.type_params().is_some() {
[INFO] [stdout] 426  +                 Some(self.clone())
[INFO] [stdout] 427  +             } else {
[INFO] [stdout] 428  +                 None
[INFO] [stdout] 429  +             }
[INFO] [stdout] 430  +         }
[INFO] [stdout] 431  + 
[INFO] [stdout] 432  +         /// Iterator over a descending class hierarchy.
[INFO] [stdout] 433  +         pub fn descending_class_hierarchy<'a>(&self, host: &'a SemanticHost) -> DescendingClassHierarchy<'a> {
[INFO] [stdout] 434  +             DescendingClassHierarchy(Some(self.clone()), host)
[INFO] [stdout] 435  +         }
[INFO] [stdout] 436  + 
[INFO] [stdout] 437  +         /// Iterator over a descending scope hierarchy.
[INFO] [stdout] 438  +         pub fn descending_scope_hierarchy(&self) -> DescendingScopeHierarchy {
[INFO] [stdout] 439  +             DescendingScopeHierarchy(Some(self.clone()))
[INFO] [stdout] 440  +         }
[INFO] [stdout] 441  + 
[INFO] [stdout] 442  +         /// Iterator over a descending definition hierarchy.
[INFO] [stdout] 443  +         pub fn descending_definition_hierarchy(&self) -> DescendingDefinitionHierarchy {
[INFO] [stdout] 444  +             DescendingDefinitionHierarchy(Some(self.clone()))
[INFO] [stdout] 445  +         }
[INFO] [stdout] 446  + 
[INFO] [stdout] 447  +         pub fn is_namespace_or_ns_reference(&self) -> bool {
[INFO] [stdout] 448  +             false
[INFO] [stdout] 449  +         }
[INFO] [stdout] 450  + 
[INFO] [stdout] 451  +         pub fn wrap_property_reference(&self, host: &SemanticHost) -> Result<Thingy, DeferError> {
[INFO] [stdout] 452  +             if self.is::<Value>() {
[INFO] [stdout] 453  +                 return Ok(self.clone());
[INFO] [stdout] 454  +             }
[INFO] [stdout] 455  +             if self.is::<Type>() && (self.is::<VoidType>() || self.is::<AnyType>() || self.is::<FunctionType>() || self.is::<TupleType>() || self.is::<NullableType>() || self.is::<NonNullableType>()) {
[INFO] [stdout] 456  +                 return host.factory().create_type_as_reference_value(self);
[INFO] [stdout] 457  +             }
[INFO] [stdout] 458  +             if self.is::<Namespace>() {
[INFO] [stdout] 459  +                 return host.factory().create_namespace_as_reference_value(self);
[INFO] [stdout] 460  +             }
[INFO] [stdout] 461  +             if self.is::<InvalidationThingy>() {
[INFO] [stdout] 462  +                 return Ok(self.clone());
[INFO] [stdout] 463  +             }
[INFO] [stdout] 464  +             let parent = self.parent().unwrap();
[INFO] [stdout] 465  +             if parent.is::<ClassType>() || parent.is::<EnumType>() {
[INFO] [stdout] 466  +                 return host.factory().create_static_reference_value(&parent, self);
[INFO] [stdout] 467  +             }
[INFO] [stdout] 468  +             if parent.is::<Package>() {
[INFO] [stdout] 469  +                 return host.factory().create_package_reference_value(&parent, self);
[INFO] [stdout] 470  +             }
[INFO] [stdout] 471  +             assert!(parent.is::<Scope>());
[INFO] [stdout] 472  +             return host.factory().create_scope_reference_value(&parent, self);
[INFO] [stdout] 473  +         }
[INFO] [stdout] 474  + 
[INFO] [stdout] 475  +         pub fn activation(&self) -> Option<Thingy> {
[INFO] [stdout] 476  +             panic!();
[INFO] [stdout] 477  +         }
[INFO] [stdout] 478  + 
[INFO] [stdout] 479  +         pub fn set_activation(&self, activation: Option<Thingy>) {
[INFO] [stdout] 480  +             panic!();
[INFO] [stdout] 481  +         }
[INFO] [stdout] 482  + 
[INFO] [stdout] 483  +         pub fn of_virtual_slot(&self, host: &SemanticHost) -> Option<Thingy> {
[INFO] [stdout] 484  +             panic!();
[INFO] [stdout] 485  +         }
[INFO] [stdout] 486  + 
[INFO] [stdout] 487  +         pub fn set_of_virtual_slot(&self, virtual_slot: Option<Thingy>) {
[INFO] [stdout] 488  +             panic!();
[INFO] [stdout] 489  +         }
[INFO] [stdout] 490  + 
[INFO] [stdout] 491  +         pub fn overriden_by(&self, host: &SemanticHost) -> SharedArray<Thingy> {
[INFO] [stdout] 492  +             panic!();
[INFO] [stdout] 493  +         }
[INFO] [stdout] 494  + 
[INFO] [stdout] 495  +         pub fn overrides_method(&self, host: &SemanticHost) -> Option<Thingy> {
[INFO] [stdout] 496  +             panic!();
[INFO] [stdout] 497  +         }
[INFO] [stdout] 498  + 
[INFO] [stdout] 499  +         pub fn set_overrides_method(&self, method: Option<Thingy>) {
[INFO] [stdout] 500  +             panic!();
[INFO] [stdout] 501  +         }
[INFO] [stdout] 502  + 
[INFO] [stdout] 503  +         pub fn is_constructor(&self) -> bool {
[INFO] [stdout] 504  +             false
[INFO] [stdout] 505  +         }
[INFO] [stdout] 506  + 
[INFO] [stdout] 507  +         pub fn set_is_constructor(&self, value: bool) {
[INFO] [stdout] 508  +         }
[INFO] [stdout] 509  + 
[INFO] [stdout] 510  +         pub fn constructor_method(&self, host: &SemanticHost) -> Option<Thingy> {
[INFO] [stdout] 511  +             panic!();
[INFO] [stdout] 512  +         }
[INFO] [stdout] 513  + 
[INFO] [stdout] 514  +         pub fn set_constructor_method(&self, m: Option<Thingy>) {}
[INFO] [stdout] 515  + 
[INFO] [stdout] 516  +         pub fn known_subclasses(&self) -> SharedArray<Thingy> {
[INFO] [stdout] 517  +             panic!();
[INFO] [stdout] 518  +         }
[INFO] [stdout] 519  + 
[INFO] [stdout] 520  +         /// Includes possibly unresolved.
[INFO] [stdout] 521  +         pub fn implements(&self, host: &SemanticHost) -> SharedArray<Thingy> {
[INFO] [stdout] 522  +             panic!();
[INFO] [stdout] 523  +         }
[INFO] [stdout] 524  + 
[INFO] [stdout] 525  +         /// Possibly unresolved.
[INFO] [stdout] 526  +         pub fn extends_class(&self, host: &SemanticHost) -> Option<Thingy> {
[INFO] [stdout] 527  +             panic!();
[INFO] [stdout] 528  +         }
[INFO] [stdout] 529  + 
[INFO] [stdout] 530  +         pub fn set_extends_class(&self, entity: Option<Thingy>) {
[INFO] [stdout] 531  +             panic!();
[INFO] [stdout] 532  +         }
[INFO] [stdout] 533  + 
[INFO] [stdout] 534  +         pub fn prototype(&self, host: &SemanticHost) -> NameMap {
[INFO] [stdout] 535  +             panic!();
[INFO] [stdout] 536  +         }
[INFO] [stdout] 537  + 
[INFO] [stdout] 538  +         pub fn properties(&self, host: &SemanticHost) -> NameMap {
[INFO] [stdout] 539  +             panic!();
[INFO] [stdout] 540  +         }
[INFO] [stdout] 541  + 
[INFO] [stdout] 542  +         pub fn subpackages(&self) -> SharedMap<String, Thingy> {
[INFO] [stdout] 543  +             panic!();
[INFO] [stdout] 544  +         }
[INFO] [stdout] 545  + 
[INFO] [stdout] 546  +         pub fn alias_of(&self) -> Thingy {
[INFO] [stdout] 547  +             panic!();
[INFO] [stdout] 548  +         }
[INFO] [stdout] 549  + 
[INFO] [stdout] 550  +         pub fn resolve_alias(&self) -> Thingy {
[INFO] [stdout] 551  +             self.clone()
[INFO] [stdout] 552  +         }
[INFO] [stdout] 553  + 
[INFO] [stdout] 554  +         pub fn property(&self) -> Thingy {
[INFO] [stdout] 555  +             panic!();
[INFO] [stdout] 556  +         }
[INFO] [stdout] 557  + 
[INFO] [stdout] 558  +         pub fn includes_undefined(&self, host: &SemanticHost) -> Result<bool, DeferError> {
[INFO] [stdout] 559  +             panic!();
[INFO] [stdout] 560  +         }
[INFO] [stdout] 561  + 
[INFO] [stdout] 562  +         pub fn includes_null(&self, host: &SemanticHost) -> Result<bool, DeferError> {
[INFO] [stdout] 563  +             panic!();
[INFO] [stdout] 564  +         }
[INFO] [stdout] 565  + 
[INFO] [stdout] 566  +         pub fn name(&self) -> QName {
[INFO] [stdout] 567  +             panic!();
[INFO] [stdout] 568  +         }
[INFO] [stdout] 569  + 
[INFO] [stdout] 570  +         pub fn fully_qualified_name(&self) -> String {
[INFO] [stdout] 571  +             self.fully_qualified_name_list().join(".").replace("__AS3__.vec.Vector", "Vector")
[INFO] [stdout] 572  +         }
[INFO] [stdout] 573  +     
[INFO] [stdout] 574  +         pub fn fully_qualified_name_list(&self) -> Vec<String> {
[INFO] [stdout] 575  +             let mut r: Vec<String> = vec![];
[INFO] [stdout] 576  +             let mut p = Some(self.clone());
[INFO] [stdout] 577  +             while let Some(p1) = p {
[INFO] [stdout] 578  +                 let name = if p1.is::<Package>() {
[INFO] [stdout] 579  +                     p1.local_name()
[INFO] [stdout] 580  +                 } else {
[INFO] [stdout] 581  +                     p1.name().to_string()
[INFO] [stdout] 582  +                 };
[INFO] [stdout] 583  +                 if !name.is_empty() {
[INFO] [stdout] 584  +                     r.insert(0, name);
[INFO] [stdout] 585  +                 }
[INFO] [stdout] 586  +                 p = p1.parent();
[INFO] [stdout] 587  +             }
[INFO] [stdout] 588  +             r
[INFO] [stdout] 589  +         }
[INFO] [stdout] 590  + 
[INFO] [stdout] 591  +         pub fn type_params(&self) -> Option<SharedArray<Thingy>> {
[INFO] [stdout] 592  +             None
[INFO] [stdout] 593  +         }
[INFO] [stdout] 594  + 
[INFO] [stdout] 595  +         pub fn set_type_params(&self, list: Option<SharedArray<Thingy>>) {
[INFO] [stdout] 596  +         }
[INFO] [stdout] 597  + 
[INFO] [stdout] 598  +         pub fn enum_members(&self) -> SharedMap<String, NumberVariant> {
[INFO] [stdout] 599  +             panic!();
[INFO] [stdout] 600  +         }
[INFO] [stdout] 601  + 
[INFO] [stdout] 602  +         pub fn known_implementors(&self) -> SharedArray<Thingy> {
[INFO] [stdout] 603  +             panic!();
[INFO] [stdout] 604  +         }
[INFO] [stdout] 605  + 
[INFO] [stdout] 606  +         /// Includes possibly unresolved.
[INFO] [stdout] 607  +         pub fn extends_interfaces(&self, host: &SemanticHost) -> SharedArray<Thingy> {
[INFO] [stdout] 608  +             panic!();
[INFO] [stdout] 609  +         }
[INFO] [stdout] 610  + 
[INFO] [stdout] 611  +         pub fn origin(&self) -> Thingy {
[INFO] [stdout] 612  +             panic!();
[INFO] [stdout] 613  +         }
[INFO] [stdout] 614  + 
[INFO] [stdout] 615  +         pub fn substitute_types(&self) -> SharedArray<Thingy> {
[INFO] [stdout] 616  +             panic!();
[INFO] [stdout] 617  +         }
[INFO] [stdout] 618  + 
[INFO] [stdout] 619  +         pub fn indirect_type_params(&self) -> SharedArray<Thingy> {
[INFO] [stdout] 620  +             panic!();
[INFO] [stdout] 621  +         }
[INFO] [stdout] 622  + 
[INFO] [stdout] 623  +         pub fn indirect_substitute_types(&self) -> SharedArray<Thingy> {
[INFO] [stdout] 624  +             panic!();
[INFO] [stdout] 625  +         }
[INFO] [stdout] 626  + 
[INFO] [stdout] 627  +         pub fn element_types(&self) -> SharedArray<Thingy> {
[INFO] [stdout] 628  +             panic!();
[INFO] [stdout] 629  +         }
[INFO] [stdout] 630  + 
[INFO] [stdout] 631  +         pub fn params(&self) -> SharedArray<Rc<SemanticFunctionTypeParameter>> {
[INFO] [stdout] 632  +             panic!();
[INFO] [stdout] 633  +         }
[INFO] [stdout] 634  + 
[INFO] [stdout] 635  +         pub fn result_type(&self) -> Thingy {
[INFO] [stdout] 636  +             panic!();
[INFO] [stdout] 637  +         }
[INFO] [stdout] 638  + 
[INFO] [stdout] 639  +         pub fn base(&self) -> Thingy {
[INFO] [stdout] 640  +             panic!();
[INFO] [stdout] 641  +         }
[INFO] [stdout] 642  + 
[INFO] [stdout] 643  +         /// Performs type substitution.
[INFO] [stdout] 644  +         pub fn type_substitution(&self, host: &SemanticHost, type_params: &SharedArray<Thingy>, substitute_types: &SharedArray<Thingy>) -> Thingy {
[INFO] [stdout] 645  +             TypeSubstitution(host).exec(self, type_params, substitute_types)
[INFO] [stdout] 646  +         }
[INFO] [stdout] 647  + 
[INFO] [stdout] 648  +         pub fn read_only(&self, host: &SemanticHost) -> bool {
[INFO] [stdout] 649  +             true
[INFO] [stdout] 650  +         }
[INFO] [stdout] 651  + 
[INFO] [stdout] 652  +         pub fn set_read_only(&self, value: bool) {
[INFO] [stdout] 653  +             panic!();
[INFO] [stdout] 654  +         }
[INFO] [stdout] 655  + 
[INFO] [stdout] 656  +         pub fn write_only(&self, host: &SemanticHost) -> bool {
[INFO] [stdout] 657  +             false
[INFO] [stdout] 658  +         }
[INFO] [stdout] 659  + 
[INFO] [stdout] 660  +         pub fn set_write_only(&self, value: bool) {
[INFO] [stdout] 661  +             panic!();
[INFO] [stdout] 662  +         }
[INFO] [stdout] 663  + 
[INFO] [stdout] 664  +         pub fn deletable(&self, host: &SemanticHost) -> bool {
[INFO] [stdout] 665  +             false
[INFO] [stdout] 666  +         }
[INFO] [stdout] 667  + 
[INFO] [stdout] 668  +         pub fn var_constant(&self) -> Option<Thingy> {
[INFO] [stdout] 669  +             panic!();
[INFO] [stdout] 670  +         }
[INFO] [stdout] 671  + 
[INFO] [stdout] 672  +         pub fn set_var_constant(&self, k: Option<Thingy>) {
[INFO] [stdout] 673  +             panic!();
[INFO] [stdout] 674  +         }
[INFO] [stdout] 675  + 
[INFO] [stdout] 676  +         pub fn is_ascending_type_of(&self, possibly_subtype: &Thingy, host: &SemanticHost) -> Result<bool, DeferError> {
[INFO] [stdout] 677  +             possibly_subtype.is_subtype_of(self, host)
[INFO] [stdout] 678  +         }
[INFO] [stdout] 679  +     
[INFO] [stdout] 680  +         pub fn is_subtype_of(&self, possibly_ascending_type: &Thingy, host: &SemanticHost) -> Result<bool, DeferError> {
[INFO] [stdout] 681  +             if possibly_ascending_type.is::<AnyType>() {
[INFO] [stdout] 682  +                 return Ok(true);
[INFO] [stdout] 683  +             }
[INFO] [stdout] 684  +             for t in self.all_ascending_types(host) {
[INFO] [stdout] 685  +                 // Defer if unresolved
[INFO] [stdout] 686  +                 t.defer()?;
[INFO] [stdout] 687  + 
[INFO] [stdout] 688  +                 if &t == possibly_ascending_type {
[INFO] [stdout] 689  +                     return Ok(true);
[INFO] [stdout] 690  +                 }
[INFO] [stdout] 691  +             }
[INFO] [stdout] 692  +             Ok(false)
[INFO] [stdout] 693  +         }
[INFO] [stdout] 694  +     
[INFO] [stdout] 695  +         pub fn is_equals_or_subtype_of(&self, other: &Thingy, host: &SemanticHost) -> Result<bool, DeferError> {
[INFO] [stdout] 696  +             Ok(self == other || self.is_subtype_of(other, host)?)
[INFO] [stdout] 697  +         }
[INFO] [stdout] 698  +     
[INFO] [stdout] 699  +         /// Returns all ascending types of a type in ascending type order,
[INFO] [stdout] 700  +         /// each possibly unresolved.
[INFO] [stdout] 701  +         pub fn all_ascending_types(&self, host: &SemanticHost) -> Vec<Thingy> {
[INFO] [stdout] 702  +             let mut r = vec![];
[INFO] [stdout] 703  +             let mut r2 = vec![];
[INFO] [stdout] 704  +             for type_thing in self.direct_ascending_types(host) {
[INFO] [stdout] 705  +                 if !type_thing.is::<UnresolvedThingy>() {
[INFO] [stdout] 706  +                     for type_symbol in type_thing.all_ascending_types(host) {
[INFO] [stdout] 707  +                         if !r.contains(&type_thing) {
[INFO] [stdout] 708  +                             r.push(type_thing.clone());
[INFO] [stdout] 709  +                         }
[INFO] [stdout] 710  +                     }
[INFO] [stdout] 711  +                 }
[INFO] [stdout] 712  +                 if !r.contains(&type_thing) {
[INFO] [stdout] 713  +                     r2.push(type_thing.clone());
[INFO] [stdout] 714  +                 }
[INFO] [stdout] 715  +             }
[INFO] [stdout] 716  +             r.extend(r2);
[INFO] [stdout] 717  +             r
[INFO] [stdout] 718  +         }
[INFO] [stdout] 719  +     
[INFO] [stdout] 720  +         /// Returns direct ascending types of a type, each possibly unresolved.
[INFO] [stdout] 721  +         pub fn direct_ascending_types(&self, host: &SemanticHost) -> Vec<Thingy> {
[INFO] [stdout] 722  +             if self.is::<ClassType>() {
[INFO] [stdout] 723  +                 let mut r: Vec<Thingy> = self.implements(host).iter().collect();
[INFO] [stdout] 724  +                 if let Some(ascending_class) = self.extends_class(host) {
[INFO] [stdout] 725  +                     r.push(ascending_class);
[INFO] [stdout] 726  +                 }
[INFO] [stdout] 727  +                 return r;
[INFO] [stdout] 728  +             } else if self.is::<EnumType>() {
[INFO] [stdout] 729  +                 return vec![self.extends_class(host).unwrap()];
[INFO] [stdout] 730  +             } else if self.is::<InterfaceType>() {
[INFO] [stdout] 731  +                 return self.extends_interfaces(host).iter().collect();
[INFO] [stdout] 732  +             } else if self.is::<FunctionType>() {
[INFO] [stdout] 733  +                 return vec![host.function_type()];
[INFO] [stdout] 734  +             } else if self.is::<TupleType>() {
[INFO] [stdout] 735  +                 return vec![host.array_type()];
[INFO] [stdout] 736  +             }
[INFO] [stdout] 737  +             return vec![];
[INFO] [stdout] 738  +         }
[INFO] [stdout] 739  +     
[INFO] [stdout] 740  +         pub(crate) fn not_overriden_abstract_getter(&self, getter_from_base_class: &Thingy, subclass: &Thingy, host: &SemanticHost) -> bool {
[INFO] [stdout] 741  +             if getter_from_base_class.is_abstract() {
[INFO] [stdout] 742  +                 let name = &getter_from_base_class.name();
[INFO] [stdout] 743  +                 let prop2 = if name.namespace().is::<SystemNamespace>() {
[INFO] [stdout] 744  +                     subclass.prototype(host).get_in_system_ns_kind(name.namespace().system_ns_kind().unwrap(), &name.local_name()).ok().unwrap_or(None)
[INFO] [stdout] 745  +                 } else {
[INFO] [stdout] 746  +                     subclass.prototype(host).get(name)
[INFO] [stdout] 747  +                 };
[INFO] [stdout] 748  +                 prop2.is_none() || !prop2.clone().unwrap().is::<VirtualSlot>() || prop2.unwrap().getter(host).is_none()
[INFO] [stdout] 749  +             } else {
[INFO] [stdout] 750  +                 false
[INFO] [stdout] 751  +             }
[INFO] [stdout] 752  +         }
[INFO] [stdout] 753  +     
[INFO] [stdout] 754  +         pub(crate) fn not_overriden_abstract_setter(&self, setter_from_base_class: &Thingy, subclass: &Thingy, host: &SemanticHost) -> bool {
[INFO] [stdout] 755  +             if setter_from_base_class.is_abstract() {
[INFO] [stdout] 756  +                 let name = &setter_from_base_class.name();
[INFO] [stdout] 757  +                 let prop2 = if name.namespace().is::<SystemNamespace>() {
[INFO] [stdout] 758  +                     subclass.prototype(host).get_in_system_ns_kind(name.namespace().system_ns_kind().unwrap(), &name.local_name()).ok().unwrap_or(None)
[INFO] [stdout] 759  +                 } else {
[INFO] [stdout] 760  +                     subclass.prototype(host).get(name)
[INFO] [stdout] 761  +                 };
[INFO] [stdout] 762  +                 prop2.is_none() || !prop2.clone().unwrap().is::<VirtualSlot>() || prop2.unwrap().setter(host).is_none()
[INFO] [stdout] 763  +             } else {
[INFO] [stdout] 764  +                 false
[INFO] [stdout] 765  +             }
[INFO] [stdout] 766  +         }
[INFO] [stdout] 767  + 
[INFO] [stdout] 768  +         pub fn expect_type(&self) -> Result<Thingy, TypeExpectError> {
[INFO] [stdout] 769  +             if self.is::<TypeAsReferenceValue>() {
[INFO] [stdout] 770  +                 return Ok(self.referenced_type());
[INFO] [stdout] 771  +             }
[INFO] [stdout] 772  +             if self.is::<PackageReferenceValue>() || self.is::<ScopeReferenceValue>() {
[INFO] [stdout] 773  +                 return self.property().expect_type();
[INFO] [stdout] 774  +             }
[INFO] [stdout] 775  +             if self.is::<Type>() {
[INFO] [stdout] 776  +                 Ok(self.clone())
[INFO] [stdout] 777  +             } else {
[INFO] [stdout] 778  +                 Err(TypeExpectError())
[INFO] [stdout] 779  +             }
[INFO] [stdout] 780  +         }
[INFO] [stdout] 781  + 
[INFO] [stdout] 782  +         /// Lookups property in an object.
[INFO] [stdout] 783  +         pub fn lookup_in_object(&self, host: &SemanticHost, open_ns_set: &SharedArray<Thingy>, qual: Option<Thingy>, key: &PropertyLookupKey) -> Result<Option<Thingy>, PropertyLookupError> {
[INFO] [stdout] 784  +             PropertyLookup(host).lookup_in_object(self, open_ns_set, qual, key)
[INFO] [stdout] 785  +         }
[INFO] [stdout] 786  + 
[INFO] [stdout] 787  +         /// Lookups property in the scope chain.
[INFO] [stdout] 788  +         pub fn lookup_in_scope_chain(&self, host: &SemanticHost, qual: Option<Thingy>, key: &PropertyLookupKey) -> Result<Option<Thingy>, PropertyLookupError> {
[INFO] [stdout] 789  +             PropertyLookup(host).lookup_in_scope_chain(self, qual, key)
[INFO] [stdout] 790  +         }
[INFO] [stdout] 791  + 
[INFO] [stdout] 792  +         fn to_string_1(&self) -> String {
[INFO] [stdout] 793  +             "".into()
[INFO] [stdout] 794  +         }
[INFO] [stdout] 795  +     }
[INFO] [stdout] 796  + 
[INFO] [stdout] 797  +     pub struct UnresolvedThingy: Thingy {
[INFO] [stdout] 798  +         pub(crate) fn UnresolvedThingy() {
[INFO] [stdout] 799  +             super();
[INFO] [stdout] 800  +         }
[INFO] [stdout] 801  +     }
[INFO] [stdout] 802  + 
[INFO] [stdout] 803  +     /// Thingy used to indicate that an entity is invalidated.
[INFO] [stdout] 804  +     pub struct InvalidationThingy: Thingy {
[INFO] [stdout] 805  +         pub(crate) fn InvalidationThingy() {
[INFO] [stdout] 806  +             super();
[INFO] [stdout] 807  +         }
[INFO] [stdout] 808  + 
[INFO] [stdout] 809  +         #[inheritdoc]
[INFO] [stdout] 810  +         pub override fn property_static_type(&self, host: &SemanticHost) -> Thingy {
[INFO] [stdout] 811  +             host.any_type()
[INFO] [stdout] 812  +         }
[INFO] [stdout] 813  +     }
[INFO] [stdout] 814  + 
[INFO] [stdout] 815  +     pub struct Namespace: Thingy {
[INFO] [stdout] 816  +         pub(crate) fn Namespace() {
[INFO] [stdout] 817  +             super();
[INFO] [stdout] 818  +         }
[INFO] [stdout] 819  + 
[INFO] [stdout] 820  +         #[inheritdoc]
[INFO] [stdout] 821  +         pub override fn property_static_type(&self, host: &SemanticHost) -> Thingy {
[INFO] [stdout] 822  +             host.namespace_type()
[INFO] [stdout] 823  +         }
[INFO] [stdout] 824  + 
[INFO] [stdout] 825  +         pub override fn is_namespace_or_ns_reference(&self) -> bool {
[INFO] [stdout] 826  +             true
[INFO] [stdout] 827  +         }
[INFO] [stdout] 828  +     }
[INFO] [stdout] 829  + 
[INFO] [stdout] 830  +     pub struct SystemNamespace: Namespace {
[INFO] [stdout] 831  +         let m_kind: SystemNamespaceKind = SystemNamespaceKind::Public;
[INFO] [stdout] 832  +         let ref m_parent: Option<Thingy> = None;
[INFO] [stdout] 833  + 
[INFO] [stdout] 834  +         pub(crate) fn SystemNamespace(kind: SystemNamespaceKind, parent: Option<Thingy>) {
[INFO] [stdout] 835  +             super();
[INFO] [stdout] 836  +             self.set_m_kind(kind);
[INFO] [stdout] 837  +             self.set_m_parent(parent);
[INFO] [stdout] 838  +         }
[INFO] [stdout] 839  + 
[INFO] [stdout] 840  +         pub override fn system_ns_kind(&self) -> Option<SystemNamespaceKind> {
[INFO] [stdout] 841  +             Some(self.m_kind())
[INFO] [stdout] 842  +         }
[INFO] [stdout] 843  + 
[INFO] [stdout] 844  +         pub override fn is_public_ns(&self) -> bool {
[INFO] [stdout] 845  +             self.m_kind() == SystemNamespaceKind::Public
[INFO] [stdout] 846  +         }
[INFO] [stdout] 847  + 
[INFO] [stdout] 848  +         pub override fn is_private_ns(&self) -> bool {
[INFO] [stdout] 849  +             self.m_kind() == SystemNamespaceKind::Private
[INFO] [stdout] 850  +         }
[INFO] [stdout] 851  + 
[INFO] [stdout] 852  +         pub override fn is_protected_ns(&self) -> bool {
[INFO] [stdout] 853  +             self.m_kind() == SystemNamespaceKind::Protected
[INFO] [stdout] 854  +         }
[INFO] [stdout] 855  + 
[INFO] [stdout] 856  +         pub override fn is_internal_ns(&self) -> bool {
[INFO] [stdout] 857  +             self.m_kind() == SystemNamespaceKind::Internal
[INFO] [stdout] 858  +         }
[INFO] [stdout] 859  + 
[INFO] [stdout] 860  +         pub override fn is_static_protected_ns(&self) -> bool {
[INFO] [stdout] 861  +             self.m_kind() == SystemNamespaceKind::StaticProtected
[INFO] [stdout] 862  +         }
[INFO] [stdout] 863  + 
[INFO] [stdout] 864  +         pub override fn parent(&self) -> Option<Thingy> {
[INFO] [stdout] 865  +             self.m_parent()
[INFO] [stdout] 866  +         }
[INFO] [stdout] 867  + 
[INFO] [stdout] 868  +         override fn to_string_1(&self) -> String {
[INFO] [stdout] 869  +             self.m_kind().to_string()
[INFO] [stdout] 870  +         }
[INFO] [stdout] 871  +     }
[INFO] [stdout] 872  + 
[INFO] [stdout] 873  +     pub struct UserNamespace: Namespace {
[INFO] [stdout] 874  +         let ref m_uri: String = "".into();
[INFO] [stdout] 875  + 
[INFO] [stdout] 876  +         pub(crate) fn UserNamespace(uri: String) {
[INFO] [stdout] 877  +             super();
[INFO] [stdout] 878  +             self.set_m_uri(uri);
[INFO] [stdout] 879  +         }
[INFO] [stdout] 880  + 
[INFO] [stdout] 881  +         pub override fn uri(&self) -> String {
[INFO] [stdout] 882  +             self.m_uri()
[INFO] [stdout] 883  +         }
[INFO] [stdout] 884  + 
[INFO] [stdout] 885  +         override fn to_string_1(&self) -> String {
[INFO] [stdout] 886  +             self.m_uri()
[INFO] [stdout] 887  +         }
[INFO] [stdout] 888  +     }
[INFO] [stdout] 889  + 
[INFO] [stdout] 890  +     pub struct ExplicitNamespace: Namespace {
[INFO] [stdout] 891  +         let ref m_uri: String = "".into();
[INFO] [stdout] 892  + 
[INFO] [stdout] 893  +         pub(crate) fn ExplicitNamespace(uri: String) {
[INFO] [stdout] 894  +             super();
[INFO] [stdout] 895  +             self.set_m_uri(uri);
[INFO] [stdout] 896  +         }
[INFO] [stdout] 897  + 
[INFO] [stdout] 898  +         pub override fn uri(&self) -> String {
[INFO] [stdout] 899  +             self.m_uri()
[INFO] [stdout] 900  +         }
[INFO] [stdout] 901  + 
[INFO] [stdout] 902  +         override fn to_string_1(&self) -> String {
[INFO] [stdout] 903  +             self.m_uri()
[INFO] [stdout] 904  +         }
[INFO] [stdout] 905  +     }
[INFO] [stdout] 906  + 
[INFO] [stdout] 907  +     /// A package consists of a local name, two namespaces, `public` and `internal`,
[INFO] [stdout] 908  +     /// and a mapping of subpackages.
[INFO] [stdout] 909  +     pub struct Package: Thingy {
[INFO] [stdout] 910  +         let ref m_name: String = "".into();
[INFO] [stdout] 911  +         let ref m_parent: Option<Thingy> = None;
[INFO] [stdout] 912  +         let ref m_public_ns: Option<Thingy> = None;
[INFO] [stdout] 913  +         let ref m_internal_ns: Option<Thingy> = None;
[INFO] [stdout] 914  +         let ref m_properties: NameMap = NameMap::new();
[INFO] [stdout] 915  +         let ref m_subpackages: SharedMap<String, Thingy> = SharedMap::new();
[INFO] [stdout] 916  +         let ref m_package_concats: SharedArray<Thingy> = SharedArray::new();
[INFO] [stdout] 917  +         let ref m_asdoc: Option<Rc<AsDoc>> = None;
[INFO] [stdout] 918  + 
[INFO] [stdout] 919  +         pub(crate) fn Package(name: String) {
[INFO] [stdout] 920  +             super();
[INFO] [stdout] 921  +             self.set_m_name(name);
[INFO] [stdout] 922  +         }
[INFO] [stdout] 923  + 
[INFO] [stdout] 924  +         /// The local name of the package. For the top-level package
[INFO] [stdout] 925  +         /// this is the empty string.
[INFO] [stdout] 926  +         pub override fn local_name(&self) -> String {
[INFO] [stdout] 927  +             self.m_name()
[INFO] [stdout] 928  +         }
[INFO] [stdout] 929  + 
[INFO] [stdout] 930  +         pub override fn parent(&self) -> Option<Thingy> {
[INFO] [stdout] 931  +             self.m_parent()
[INFO] [stdout] 932  +         }
[INFO] [stdout] 933  + 
[INFO] [stdout] 934  +         pub override fn set_parent(&self, p: Option<Thingy>) {
[INFO] [stdout] 935  +             self.set_m_parent(p);
[INFO] [stdout] 936  +         }
[INFO] [stdout] 937  + 
[INFO] [stdout] 938  +         /// Concatenated packages.
[INFO] [stdout] 939  +         pub override fn package_concats(&self) -> SharedArray<Thingy> {
[INFO] [stdout] 940  +             self.m_package_concats()
[INFO] [stdout] 941  +         }
[INFO] [stdout] 942  + 
[INFO] [stdout] 943  +         pub override fn public_ns(&self) -> Option<Thingy> {
[INFO] [stdout] 944  +             self.m_public_ns()
[INFO] [stdout] 945  +         }
[INFO] [stdout] 946  + 
[INFO] [stdout] 947  +         pub override fn set_public_ns(&self, ns: Option<Thingy>) {
[INFO] [stdout] 948  +             self.set_m_public_ns(ns);
[INFO] [stdout] 949  +         }
[INFO] [stdout] 950  + 
[INFO] [stdout] 951  +         pub override fn internal_ns(&self) -> Option<Thingy> {
[INFO] [stdout] 952  +             self.m_internal_ns()
[INFO] [stdout] 953  +         }
[INFO] [stdout] 954  + 
[INFO] [stdout] 955  +         pub override fn set_internal_ns(&self, ns: Option<Thingy>) {
[INFO] [stdout] 956  +             self.set_m_internal_ns(ns);
[INFO] [stdout] 957  +         }
[INFO] [stdout] 958  + 
[INFO] [stdout] 959  +         pub override fn properties(&self, host: &SemanticHost) -> NameMap {
[INFO] [stdout] 960  +             self.m_properties()
[INFO] [stdout] 961  +         }
[INFO] [stdout] 962  + 
[INFO] [stdout] 963  +         pub override fn subpackages(&self) -> SharedMap<String, Thingy> {
[INFO] [stdout] 964  +             self.m_subpackages()
[INFO] [stdout] 965  +         }
[INFO] [stdout] 966  + 
[INFO] [stdout] 967  +         pub override fn asdoc(&self) -> Option<Rc<AsDoc>> {
[INFO] [stdout] 968  +             self.m_asdoc()
[INFO] [stdout] 969  +         }
[INFO] [stdout] 970  + 
[INFO] [stdout] 971  +         pub override fn set_asdoc(&self, asdoc: Option<Rc<AsDoc>>) {
[INFO] [stdout] 972  +             self.set_m_asdoc(asdoc);
[INFO] [stdout] 973  +         }
[INFO] [stdout] 974  + 
[INFO] [stdout] 975  +         override fn to_string_1(&self) -> String {
[INFO] [stdout] 976  +             self.fully_qualified_name()
[INFO] [stdout] 977  +         }
[INFO] [stdout] 978  +     }
[INFO] [stdout] 979  + 
[INFO] [stdout] 980  +     pub struct Alias: Thingy {
[INFO] [stdout] 981  +         let ref m_name: Option<QName> = None;
[INFO] [stdout] 982  +         let ref m_alias_of: Option<Thingy> = None;
[INFO] [stdout] 983  +         let m_is_external: bool = false;
[INFO] [stdout] 984  +         let ref m_parent: Option<Thingy> = None;
[INFO] [stdout] 985  +         let ref m_location: Option<Location> = None;
[INFO] [stdout] 986  + 
[INFO] [stdout] 987  +         pub(crate) fn Alias(name: QName, alias_of: Thingy) {
[INFO] [stdout] 988  +             super();
[INFO] [stdout] 989  +             self.set_m_name(Some(name));
[INFO] [stdout] 990  +             self.set_m_alias_of(Some(alias_of));
[INFO] [stdout] 991  +         }
[INFO] [stdout] 992  + 
[INFO] [stdout] 993  +         pub override fn name(&self) -> QName {
[INFO] [stdout] 994  +             self.m_name().unwrap()
[INFO] [stdout] 995  +         }
[INFO] [stdout] 996  + 
[INFO] [stdout] 997  +         pub override fn alias_of(&self) -> Thingy {
[INFO] [stdout] 998  +             self.m_alias_of().unwrap()
[INFO] [stdout] 999  +         }
[INFO] [stdout] 1000 + 
[INFO] [stdout] 1001 +         pub override fn is_external(&self) -> bool {
[INFO] [stdout] 1002 +             self.m_is_external()
[INFO] [stdout] 1003 +         }
[INFO] [stdout] 1004 + 
[INFO] [stdout] 1005 +         pub override fn set_is_external(&self, value: bool) {
[INFO] [stdout] 1006 +             self.set_m_is_external(value);
[INFO] [stdout] 1007 +         }
[INFO] [stdout] 1008 + 
[INFO] [stdout] 1009 +         pub override fn location(&self) -> Option<Location> {
[INFO] [stdout] 1010 +             self.m_location()
[INFO] [stdout] 1011 +         }
[INFO] [stdout] 1012 + 
[INFO] [stdout] 1013 +         pub override fn set_location(&self, loc: Option<Location>) {
[INFO] [stdout] 1014 +             self.set_m_location(loc);
[INFO] [stdout] 1015 +         }
[INFO] [stdout] 1016 + 
[INFO] [stdout] 1017 +         pub override fn resolve_alias(&self) -> Thingy {
[INFO] [stdout] 1018 +             self.alias_of().resolve_alias()
[INFO] [stdout] 1019 +         }
[INFO] [stdout] 1020 + 
[INFO] [stdout] 1021 +         pub override fn parent(&self) -> Option<Thingy> {
[INFO] [stdout] 1022 +             self.m_parent()
[INFO] [stdout] 1023 +         }
[INFO] [stdout] 1024 + 
[INFO] [stdout] 1025 +         pub override fn set_parent(&self, p: Option<Thingy>) {
[INFO] [stdout] 1026 +             self.set_m_parent(p);
[INFO] [stdout] 1027 +         }
[INFO] [stdout] 1028 + 
[INFO] [stdout] 1029 +         override fn to_string_1(&self) -> String {
[INFO] [stdout] 1030 +             self.alias_of().to_string_1()
[INFO] [stdout] 1031 +         }
[INFO] [stdout] 1032 +     }
[INFO] [stdout] 1033 + 
[INFO] [stdout] 1034 +     pub struct Type: Thingy {
[INFO] [stdout] 1035 +         pub override fn includes_undefined(&self, host: &SemanticHost) -> Result<bool, DeferError> {
[INFO] [stdout] 1036 +             Ok(true)
[INFO] [stdout] 1037 +         }
[INFO] [stdout] 1038 + 
[INFO] [stdout] 1039 +         pub override fn includes_null(&self, host: &SemanticHost) -> Result<bool, DeferError> {
[INFO] [stdout] 1040 +             Ok(false)
[INFO] [stdout] 1041 +         }
[INFO] [stdout] 1042 + 
[INFO] [stdout] 1043 +         #[inheritdoc]
[INFO] [stdout] 1044 +         pub override fn property_static_type(&self, host: &SemanticHost) -> Thingy {
[INFO] [stdout] 1045 +             host.class_type()
[INFO] [stdout] 1046 +         }
[INFO] [stdout] 1047 + 
[INFO] [stdout] 1048 +         pub override fn type_default_value(&self, host: &SemanticHost) -> Result<Option<Thingy>, DeferError> {
[INFO] [stdout] 1049 +             if self.includes_undefined(host)? {
[INFO] [stdout] 1050 +                 Ok(Some(host.factory().create_undefined_constant(self)))
[INFO] [stdout] 1051 +             } else if self.includes_null(host)? {
[INFO] [stdout] 1052 +                 Ok(Some(host.factory().create_null_constant(self)))
[INFO] [stdout] 1053 +             } else if host.numeric_types()?.contains(self) {
[INFO] [stdout] 1054 +                 if host.floating_point_types()?.contains(self) {
[INFO] [stdout] 1055 +                     let v = NumberVariant::nan(self, host);
[INFO] [stdout] 1056 +                     return Ok(Some(host.factory().create_number_constant(v, self)));
[INFO] [stdout] 1057 +                 }
[INFO] [stdout] 1058 +                 let v = NumberVariant::zero(self, host);
[INFO] [stdout] 1059 +                 Ok(Some(host.factory().create_number_constant(v, self)))
[INFO] [stdout] 1060 +             } else if <Type as Into<Thingy>>::into(self.clone()) == host.boolean_type().defer()? {
[INFO] [stdout] 1061 +                 Ok(Some(host.factory().create_boolean_constant(false, self)))
[INFO] [stdout] 1062 +             } else {
[INFO] [stdout] 1063 +                 Ok(None)
[INFO] [stdout] 1064 +             }
[INFO] [stdout] 1065 +         }
[INFO] [stdout] 1066 +     }
[INFO] [stdout] 1067 + 
[INFO] [stdout] 1068 +     pub struct AnyType : Type {
[INFO] [stdout] 1069 +         pub(crate) fn AnyType() {
[INFO] [stdout] 1070 +             super();
[INFO] [stdout] 1071 +         }
[INFO] [stdout] 1072 + 
[INFO] [stdout] 1073 +         pub override fn includes_undefined(&self, host: &SemanticHost) -> Result<bool, DeferError> {
[INFO] [stdout] 1074 +             Ok(true)
[INFO] [stdout] 1075 +         }
[INFO] [stdout] 1076 + 
[INFO] [stdout] 1077 +         pub override fn includes_null(&self, host: &SemanticHost) -> Result<bool, DeferError> {
[INFO] [stdout] 1078 +             Ok(true)
[INFO] [stdout] 1079 +         }
[INFO] [stdout] 1080 + 
[INFO] [stdout] 1081 +         override fn to_string_1(&self) -> String {
[INFO] [stdout] 1082 +             "*".into()
[INFO] [stdout] 1083 +         }
[INFO] [stdout] 1084 +     }
[INFO] [stdout] 1085 + 
[INFO] [stdout] 1086 +     pub struct VoidType : Type {
[INFO] [stdout] 1087 +         pub(crate) fn VoidType() {
[INFO] [stdout] 1088 +             super();
[INFO] [stdout] 1089 +         }
[INFO] [stdout] 1090 + 
[INFO] [stdout] 1091 +         pub override fn includes_undefined(&self, host: &SemanticHost) -> Result<bool, DeferError> {
[INFO] [stdout] 1092 +             Ok(true)
[INFO] [stdout] 1093 +         }
[INFO] [stdout] 1094 + 
[INFO] [stdout] 1095 +         pub override fn includes_null(&self, host: &SemanticHost) -> Result<bool, DeferError> {
[INFO] [stdout] 1096 +             Ok(false)
[INFO] [stdout] 1097 +         }
[INFO] [stdout] 1098 + 
[INFO] [stdout] 1099 +         override fn to_string_1(&self) -> String {
[INFO] [stdout] 1100 +             "void".into()
[INFO] [stdout] 1101 +         }
[INFO] [stdout] 1102 +     }
[INFO] [stdout] 1103 + 
[INFO] [stdout] 1104 +     pub struct ClassType: Type {
[INFO] [stdout] 1105 +         let ref m_name: Option<QName> = None;
[INFO] [stdout] 1106 +         let m_flags: ClassTypeFlags = ClassTypeFlags::empty();
[INFO] [stdout] 1107 +         let ref m_type_params: Option<SharedArray<Thingy>> = None;
[INFO] [stdout] 1108 +         let ref m_extends_class: Option<Thingy> = None;
[INFO] [stdout] 1109 +         let ref m_implements: SharedArray<Thingy> = SharedArray::new();
[INFO] [stdout] 1110 +         let ref m_known_subclasses: SharedArray<Thingy> = SharedArray::new();
[INFO] [stdout] 1111 +         let ref m_constructor_method: Option<Thingy> = None;
[INFO] [stdout] 1112 +         let ref m_parent: Option<Thingy> = None;
[INFO] [stdout] 1113 +         let ref m_private_ns: Option<Thingy> = None;
[INFO] [stdout] 1114 +         let ref m_protected_ns: Option<Thingy> = None;
[INFO] [stdout] 1115 +         let ref m_static_protected_ns: Option<Thingy> = None;
[INFO] [stdout] 1116 +         let ref m_properties: NameMap = NameMap::new();
[INFO] [stdout] 1117 +         let ref m_prototype: NameMap = NameMap::new();
[INFO] [stdout] 1118 +         let ref m_flex_events: SharedMap<String, Thingy> = SharedMap::new();
[INFO] [stdout] 1119 +         let ref m_asdoc: Option<Rc<AsDoc>> = None;
[INFO] [stdout] 1120 +         let ref m_metadata: SharedArray<Rc<Metadata>> = SharedArray::new();
[INFO] [stdout] 1121 +         let ref m_location: Option<Location> = None;
[INFO] [stdout] 1122 + 
[INFO] [stdout] 1123 +         pub(crate) fn ClassType(name: QName) {
[INFO] [stdout] 1124 +             super();
[INFO] [stdout] 1125 +             self.set_m_name(Some(name));
[INFO] [stdout] 1126 +         }
[INFO] [stdout] 1127 + 
[INFO] [stdout] 1128 +         pub override fn is_class_type_possibly_after_sub(&self) -> bool {
[INFO] [stdout] 1129 +             true
[INFO] [stdout] 1130 +         }
[INFO] [stdout] 1131 + 
[INFO] [stdout] 1132 +         pub override fn name(&self) -> QName {
[INFO] [stdout] 1133 +             self.m_name().unwrap()
[INFO] [stdout] 1134 +         }
[INFO] [stdout] 1135 + 
[INFO] [stdout] 1136 +         pub override fn location(&self) -> Option<Location> {
[INFO] [stdout] 1137 +             self.m_location()
[INFO] [stdout] 1138 +         }
[INFO] [stdout] 1139 + 
[INFO] [stdout] 1140 +         pub override fn set_location(&self, loc: Option<Location>) {
[INFO] [stdout] 1141 +             self.set_m_location(loc);
[INFO] [stdout] 1142 +         }
[INFO] [stdout] 1143 + 
[INFO] [stdout] 1144 +         #[inheritdoc]
[INFO] [stdout] 1145 +         pub override fn flex_events(&self) -> SharedMap<String, Thingy> {
[INFO] [stdout] 1146 +             self.m_flex_events()
[INFO] [stdout] 1147 +         }
[INFO] [stdout] 1148 + 
[INFO] [stdout] 1149 +         pub override fn private_ns(&self) -> Option<Thingy> {
[INFO] [stdout] 1150 +             self.m_private_ns()
[INFO] [stdout] 1151 +         }
[INFO] [stdout] 1152 + 
[INFO] [stdout] 1153 +         pub override fn set_private_ns(&self, ns: Option<Thingy>) {
[INFO] [stdout] 1154 +             self.set_m_private_ns(ns);
[INFO] [stdout] 1155 +         }
[INFO] [stdout] 1156 + 
[INFO] [stdout] 1157 +         pub override fn protected_ns(&self) -> Option<Thingy> {
[INFO] [stdout] 1158 +             self.m_protected_ns()
[INFO] [stdout] 1159 +         }
[INFO] [stdout] 1160 + 
[INFO] [stdout] 1161 +         pub override fn set_protected_ns(&self, ns: Option<Thingy>) {
[INFO] [stdout] 1162 +             self.set_m_protected_ns(ns);
[INFO] [stdout] 1163 +         }
[INFO] [stdout] 1164 + 
[INFO] [stdout] 1165 +         pub override fn static_protected_ns(&self) -> Option<Thingy> {
[INFO] [stdout] 1166 +             self.m_static_protected_ns()
[INFO] [stdout] 1167 +         }
[INFO] [stdout] 1168 + 
[INFO] [stdout] 1169 +         pub override fn set_static_protected_ns(&self, ns: Option<Thingy>) {
[INFO] [stdout] 1170 +             self.set_m_static_protected_ns(ns);
[INFO] [stdout] 1171 +         }
[INFO] [stdout] 1172 + 
[INFO] [stdout] 1173 +         pub override fn type_params(&self) -> Option<SharedArray<Thingy>> {
[INFO] [stdout] 1174 +             self.m_type_params()
[INFO] [stdout] 1175 +         }
[INFO] [stdout] 1176 + 
[INFO] [stdout] 1177 +         pub override fn set_type_params(&self, list: Option<SharedArray<Thingy>>) {
[INFO] [stdout] 1178 +             self.set_m_type_params(list);
[INFO] [stdout] 1179 +         }
[INFO] [stdout] 1180 + 
[INFO] [stdout] 1181 +         pub override fn is_abstract(&self) -> bool {
[INFO] [stdout] 1182 +             self.m_flags().contains(ClassTypeFlags::IS_ABSTRACT)
[INFO] [stdout] 1183 +         }
[INFO] [stdout] 1184 + 
[INFO] [stdout] 1185 +         pub override fn set_is_abstract(&self, value: bool) {
[INFO] [stdout] 1186 +             let mut v = self.m_flags();
[INFO] [stdout] 1187 +             v.set(ClassTypeFlags::IS_ABSTRACT, value);
[INFO] [stdout] 1188 +             self.set_m_flags(v);
[INFO] [stdout] 1189 +         }
[INFO] [stdout] 1190 + 
[INFO] [stdout] 1191 +         pub override fn is_final(&self) -> bool {
[INFO] [stdout] 1192 +             self.m_flags().contains(ClassTypeFlags::IS_FINAL)
[INFO] [stdout] 1193 +         }
[INFO] [stdout] 1194 + 
[INFO] [stdout] 1195 +         pub override fn set_is_final(&self, value: bool) {
[INFO] [stdout] 1196 +             let mut v = self.m_flags();
[INFO] [stdout] 1197 +             v.set(ClassTypeFlags::IS_FINAL, value);
[INFO] [stdout] 1198 +             self.set_m_flags(v);
[INFO] [stdout] 1199 +         }
[INFO] [stdout] 1200 + 
[INFO] [stdout] 1201 +         pub override fn is_static(&self) -> bool {
[INFO] [stdout] 1202 +             self.m_flags().contains(ClassTypeFlags::IS_STATIC)
[INFO] [stdout] 1203 +         }
[INFO] [stdout] 1204 + 
[INFO] [stdout] 1205 +         pub override fn set_is_static(&self, value: bool) {
[INFO] [stdout] 1206 +             let mut v = self.m_flags();
[INFO] [stdout] 1207 +             v.set(ClassTypeFlags::IS_STATIC, value);
[INFO] [stdout] 1208 +             self.set_m_flags(v);
[INFO] [stdout] 1209 +         }
[INFO] [stdout] 1210 + 
[INFO] [stdout] 1211 +         pub override fn is_dynamic(&self) -> bool {
[INFO] [stdout] 1212 +             self.m_flags().contains(ClassTypeFlags::IS_DYNAMIC)
[INFO] [stdout] 1213 +         }
[INFO] [stdout] 1214 + 
[INFO] [stdout] 1215 +         pub override fn set_is_dynamic(&self, value: bool) {
[INFO] [stdout] 1216 +             let mut v = self.m_flags();
[INFO] [stdout] 1217 +             v.set(ClassTypeFlags::IS_DYNAMIC, value);
[INFO] [stdout] 1218 +             self.set_m_flags(v);
[INFO] [stdout] 1219 +         }
[INFO] [stdout] 1220 + 
[INFO] [stdout] 1221 +         pub override fn is_dynamic_or_inherits_dynamic(&self, host: &SemanticHost) -> Result<bool, DeferError> {
[INFO] [stdout] 1222 +             if self.is_dynamic() {
[INFO] [stdout] 1223 +                 return Ok(true);
[INFO] [stdout] 1224 +             }
[INFO] [stdout] 1225 +             if let Some(cb) = self.extends_class(host) {
[INFO] [stdout] 1226 +                 cb.is_dynamic_or_inherits_dynamic(host)
[INFO] [stdout] 1227 +             } else {
[INFO] [stdout] 1228 +                 Ok(false)
[INFO] [stdout] 1229 +             }
[INFO] [stdout] 1230 +         }
[INFO] [stdout] 1231 + 
[INFO] [stdout] 1232 +         /// Whether the class is an `[Options]` class.
[INFO] [stdout] 1233 +         pub override fn is_options_class(&self) -> bool {
[INFO] [stdout] 1234 +             self.m_flags().contains(ClassTypeFlags::IS_OPTIONS_CLASS)
[INFO] [stdout] 1235 +         }
[INFO] [stdout] 1236 + 
[INFO] [stdout] 1237 +         pub override fn set_is_options_class(&self, value: bool) {
[INFO] [stdout] 1238 +             let mut v = self.m_flags();
[INFO] [stdout] 1239 +             v.set(ClassTypeFlags::IS_OPTIONS_CLASS, value);
[INFO] [stdout] 1240 +             self.set_m_flags(v);
[INFO] [stdout] 1241 +         }
[INFO] [stdout] 1242 + 
[INFO] [stdout] 1243 +         pub override fn is_external(&self) -> bool {
[INFO] [stdout] 1244 +             self.m_flags().contains(ClassTypeFlags::IS_EXTERNAL)
[INFO] [stdout] 1245 +         }
[INFO] [stdout] 1246 + 
[INFO] [stdout] 1247 +         pub override fn set_is_external(&self, value: bool) {
[INFO] [stdout] 1248 +             let mut v = self.m_flags();
[INFO] [stdout] 1249 +             v.set(ClassTypeFlags::IS_EXTERNAL, value);
[INFO] [stdout] 1250 +             self.set_m_flags(v);
[INFO] [stdout] 1251 +         }
[INFO] [stdout] 1252 + 
[INFO] [stdout] 1253 +         pub override fn known_subclasses(&self) -> SharedArray<Thingy> {
[INFO] [stdout] 1254 +             self.m_known_subclasses()
[INFO] [stdout] 1255 +         }
[INFO] [stdout] 1256 + 
[INFO] [stdout] 1257 +         #[inheritdoc]
[INFO] [stdout] 1258 +         pub override fn implements(&self, host: &SemanticHost) -> SharedArray<Thingy> {
[INFO] [stdout] 1259 +             self.m_implements()
[INFO] [stdout] 1260 +         }
[INFO] [stdout] 1261 + 
[INFO] [stdout] 1262 +         #[inheritdoc]
[INFO] [stdout] 1263 +         pub override fn extends_class(&self, host: &SemanticHost) -> Option<Thingy> {
[INFO] [stdout] 1264 +             self.m_extends_class()
[INFO] [stdout] 1265 +         }
[INFO] [stdout] 1266 + 
[INFO] [stdout] 1267 +         pub override fn set_extends_class(&self, entity: Option<Thingy>) {
[INFO] [stdout] 1268 +             self.set_m_extends_class(entity);
[INFO] [stdout] 1269 +         }
[INFO] [stdout] 1270 + 
[INFO] [stdout] 1271 +         pub override fn properties(&self, host: &SemanticHost) -> NameMap {
[INFO] [stdout] 1272 +             self.m_properties()
[INFO] [stdout] 1273 +         }
[INFO] [stdout] 1274 + 
[INFO] [stdout] 1275 +         pub override fn prototype(&self, host: &SemanticHost) -> NameMap {
[INFO] [stdout] 1276 +             self.m_prototype()
[INFO] [stdout] 1277 +         }
[INFO] [stdout] 1278 + 
[INFO] [stdout] 1279 +         pub override fn constructor_method(&self, host: &SemanticHost) -> Option<Thingy> {
[INFO] [stdout] 1280 +             self.m_constructor_method()
[INFO] [stdout] 1281 +         }
[INFO] [stdout] 1282 + 
[INFO] [stdout] 1283 +         pub override fn set_constructor_method(&self, m: Option<Thingy>) {
[INFO] [stdout] 1284 +             self.set_m_constructor_method(m);
[INFO] [stdout] 1285 +         }
[INFO] [stdout] 1286 + 
[INFO] [stdout] 1287 +         pub override fn parent(&self) -> Option<Thingy> {
[INFO] [stdout] 1288 +             self.m_parent()
[INFO] [stdout] 1289 +         }
[INFO] [stdout] 1290 + 
[INFO] [stdout] 1291 +         pub override fn set_parent(&self, p: Option<Thingy>) {
[INFO] [stdout] 1292 +             self.set_m_parent(p);
[INFO] [stdout] 1293 +         }
[INFO] [stdout] 1294 + 
[INFO] [stdout] 1295 +         pub override fn asdoc(&self) -> Option<Rc<AsDoc>> {
[INFO] [stdout] 1296 +             self.m_asdoc()
[INFO] [stdout] 1297 +         }
[INFO] [stdout] 1298 + 
[INFO] [stdout] 1299 +         pub override fn set_asdoc(&self, asdoc: Option<Rc<AsDoc>>) {
[INFO] [stdout] 1300 +             self.set_m_asdoc(asdoc);
[INFO] [stdout] 1301 +         }
[INFO] [stdout] 1302 + 
[INFO] [stdout] 1303 +         pub override fn metadata(&self) -> SharedArray<Rc<Metadata>> {
[INFO] [stdout] 1304 +             self.m_metadata()
[INFO] [stdout] 1305 +         }
[INFO] [stdout] 1306 + 
[INFO] [stdout] 1307 +         pub override fn includes_undefined(&self, host: &SemanticHost) -> Result<bool, DeferError> {
[INFO] [stdout] 1308 +             Ok(false)
[INFO] [stdout] 1309 +         }
[INFO] [stdout] 1310 + 
[INFO] [stdout] 1311 +         pub override fn includes_null(&self, host: &SemanticHost) -> Result<bool, DeferError> {
[INFO] [stdout] 1312 +             Ok(!host.non_null_primitive_types()?.contains(&self.clone().into()))
[INFO] [stdout] 1313 +         }
[INFO] [stdout] 1314 + 
[INFO] [stdout] 1315 +         override fn to_string_1(&self) -> String {
[INFO] [stdout] 1316 +             let name_1 = self.fully_qualified_name();
[INFO] [stdout] 1317 +             let mut p = String::new();
[INFO] [stdout] 1318 +             if let Some(type_params) = self.type_params() {
[INFO] [stdout] 1319 +                 p = ".<".to_owned() + &type_params.iter().map(|p| p.to_string()).collect::<Vec<String>>().join(", ") + ">";
[INFO] [stdout] 1320 +             }
[INFO] [stdout] 1321 +             name_1 + &p
[INFO] [stdout] 1322 +         }
[INFO] [stdout] 1323 +     }
[INFO] [stdout] 1324 +     
[INFO] [stdout] 1325 +     pub struct EnumType: Type {
[INFO] [stdout] 1326 +         let ref m_name: Option<QName> = None;
[INFO] [stdout] 1327 +         let ref m_parent: Option<Thingy> = None;
[INFO] [stdout] 1328 +         let m_is_external: bool = false;
[INFO] [stdout] 1329 +         let ref m_private_ns: Option<Thingy> = None;
[INFO] [stdout] 1330 +         let ref m_properties: NameMap = NameMap::new();
[INFO] [stdout] 1331 +         let ref m_prototype: NameMap = NameMap::new();
[INFO] [stdout] 1332 +         let ref m_members: SharedMap<String, NumberVariant> = SharedMap::new();
[INFO] [stdout] 1333 +         let ref m_asdoc: Option<Rc<AsDoc>> = None;
[INFO] [stdout] 1334 +         let ref m_metadata: SharedArray<Rc<Metadata>> = SharedArray::new();
[INFO] [stdout] 1335 +         let ref m_location: Option<Location> = None;
[INFO] [stdout] 1336 + 
[INFO] [stdout] 1337 +         pub(crate) fn EnumType(name: QName) {
[INFO] [stdout] 1338 +             super();
[INFO] [stdout] 1339 +             self.set_m_name(Some(name));
[INFO] [stdout] 1340 +         }
[INFO] [stdout] 1341 + 
[INFO] [stdout] 1342 +         pub override fn name(&self) -> QName {
[INFO] [stdout] 1343 +             self.m_name().unwrap()
[INFO] [stdout] 1344 +         }
[INFO] [stdout] 1345 + 
[INFO] [stdout] 1346 +         pub override fn enum_members(&self) -> SharedMap<String, NumberVariant> {
[INFO] [stdout] 1347 +             self.m_members()
[INFO] [stdout] 1348 +         }
[INFO] [stdout] 1349 + 
[INFO] [stdout] 1350 +         pub override fn location(&self) -> Option<Location> {
[INFO] [stdout] 1351 +             self.m_location()
[INFO] [stdout] 1352 +         }
[INFO] [stdout] 1353 + 
[INFO] [stdout] 1354 +         pub override fn set_location(&self, loc: Option<Location>) {
[INFO] [stdout] 1355 +             self.set_m_location(loc);
[INFO] [stdout] 1356 +         }
[INFO] [stdout] 1357 + 
[INFO] [stdout] 1358 +         pub override fn private_ns(&self) -> Option<Thingy> {
[INFO] [stdout] 1359 +             self.m_private_ns()
[INFO] [stdout] 1360 +         }
[INFO] [stdout] 1361 + 
[INFO] [stdout] 1362 +         pub override fn set_private_ns(&self, ns: Option<Thingy>) {
[INFO] [stdout] 1363 +             self.set_m_private_ns(ns);
[INFO] [stdout] 1364 +         }
[INFO] [stdout] 1365 + 
[INFO] [stdout] 1366 +         pub override fn is_abstract(&self) -> bool {
[INFO] [stdout] 1367 +             false
[INFO] [stdout] 1368 +         }
[INFO] [stdout] 1369 + 
[INFO] [stdout] 1370 +         pub override fn is_final(&self) -> bool {
[INFO] [stdout] 1371 +             true
[INFO] [stdout] 1372 +         }
[INFO] [stdout] 1373 + 
[INFO] [stdout] 1374 +         pub override fn is_dynamic(&self) -> bool {
[INFO] [stdout] 1375 +             false
[INFO] [stdout] 1376 +         }
[INFO] [stdout] 1377 + 
[INFO] [stdout] 1378 +         pub override fn is_options_class(&self) -> bool {
[INFO] [stdout] 1379 +             false
[INFO] [stdout] 1380 +         }
[INFO] [stdout] 1381 + 
[INFO] [stdout] 1382 +         pub override fn is_external(&self) -> bool {
[INFO] [stdout] 1383 +             self.m_is_external()
[INFO] [stdout] 1384 +         }
[INFO] [stdout] 1385 + 
[INFO] [stdout] 1386 +         pub override fn set_is_external(&self, value: bool) {
[INFO] [stdout] 1387 +             self.set_m_is_external(value);
[INFO] [stdout] 1388 +         }
[INFO] [stdout] 1389 + 
[INFO] [stdout] 1390 +         #[inheritdoc]
[INFO] [stdout] 1391 +         pub override fn extends_class(&self, host: &SemanticHost) -> Option<Thingy> {
[INFO] [stdout] 1392 +             Some(host.object_type())
[INFO] [stdout] 1393 +         }
[INFO] [stdout] 1394 + 
[INFO] [stdout] 1395 +         pub override fn properties(&self, host: &SemanticHost) -> NameMap {
[INFO] [stdout] 1396 +             self.m_properties()
[INFO] [stdout] 1397 +         }
[INFO] [stdout] 1398 + 
[INFO] [stdout] 1399 +         pub override fn prototype(&self, host: &SemanticHost) -> NameMap {
[INFO] [stdout] 1400 +             self.m_prototype()
[INFO] [stdout] 1401 +         }
[INFO] [stdout] 1402 + 
[INFO] [stdout] 1403 +         pub override fn parent(&self) -> Option<Thingy> {
[INFO] [stdout] 1404 +             self.m_parent()
[INFO] [stdout] 1405 +         }
[INFO] [stdout] 1406 + 
[INFO] [stdout] 1407 +         pub override fn set_parent(&self, p: Option<Thingy>) {
[INFO] [stdout] 1408 +             self.set_m_parent(p);
[INFO] [stdout] 1409 +         }
[INFO] [stdout] 1410 + 
[INFO] [stdout] 1411 +         pub override fn asdoc(&self) -> Option<Rc<AsDoc>> {
[INFO] [stdout] 1412 +             self.m_asdoc()
[INFO] [stdout] 1413 +         }
[INFO] [stdout] 1414 + 
[INFO] [stdout] 1415 +         pub override fn set_asdoc(&self, asdoc: Option<Rc<AsDoc>>) {
[INFO] [stdout] 1416 +             self.set_m_asdoc(asdoc);
[INFO] [stdout] 1417 +         }
[INFO] [stdout] 1418 + 
[INFO] [stdout] 1419 +         pub override fn metadata(&self) -> SharedArray<Rc<Metadata>> {
[INFO] [stdout] 1420 +             self.m_metadata()
[INFO] [stdout] 1421 +         }
[INFO] [stdout] 1422 + 
[INFO] [stdout] 1423 +         pub override fn includes_undefined(&self, host: &SemanticHost) -> Result<bool, DeferError> {
[INFO] [stdout] 1424 +             Ok(false)
[INFO] [stdout] 1425 +         }
[INFO] [stdout] 1426 + 
[INFO] [stdout] 1427 +         pub override fn includes_null(&self, host: &SemanticHost) -> Result<bool, DeferError> {
[INFO] [stdout] 1428 +             Ok(true)
[INFO] [stdout] 1429 +         }
[INFO] [stdout] 1430 + 
[INFO] [stdout] 1431 +         override fn to_string_1(&self) -> String {
[INFO] [stdout] 1432 +             self.fully_qualified_name()
[INFO] [stdout] 1433 +         }
[INFO] [stdout] 1434 +     }
[INFO] [stdout] 1435 + 
[INFO] [stdout] 1436 +     pub struct InterfaceType: Type {
[INFO] [stdout] 1437 +         let ref m_name: Option<QName> = None;
[INFO] [stdout] 1438 +         let ref m_type_params: Option<SharedArray<Thingy>> = None;
[INFO] [stdout] 1439 +         let m_is_external: bool = false;
[INFO] [stdout] 1440 +         let ref m_extends_interfaces: SharedArray<Thingy> = SharedArray::new();
[INFO] [stdout] 1441 +         let ref m_known_implementors: SharedArray<Thingy> = SharedArray::new();
[INFO] [stdout] 1442 +         let ref m_parent: Option<Thingy> = None;
[INFO] [stdout] 1443 +         let ref m_prototype: NameMap = NameMap::new();
[INFO] [stdout] 1444 +         let ref m_asdoc: Option<Rc<AsDoc>> = None;
[INFO] [stdout] 1445 +         let ref m_metadata: SharedArray<Rc<Metadata>> = SharedArray::new();
[INFO] [stdout] 1446 +         let ref m_location: Option<Location> = None;
[INFO] [stdout] 1447 + 
[INFO] [stdout] 1448 +         pub(crate) fn InterfaceType(name: QName) {
[INFO] [stdout] 1449 +             super();
[INFO] [stdout] 1450 +             self.set_m_name(Some(name));
[INFO] [stdout] 1451 +         }
[INFO] [stdout] 1452 + 
[INFO] [stdout] 1453 +         pub override fn is_interface_type_possibly_after_sub(&self) -> bool {
[INFO] [stdout] 1454 +             true
[INFO] [stdout] 1455 +         }
[INFO] [stdout] 1456 + 
[INFO] [stdout] 1457 +         pub override fn name(&self) -> QName {
[INFO] [stdout] 1458 +             self.m_name().unwrap()
[INFO] [stdout] 1459 +         }
[INFO] [stdout] 1460 + 
[INFO] [stdout] 1461 +         pub override fn location(&self) -> Option<Location> {
[INFO] [stdout] 1462 +             self.m_location()
[INFO] [stdout] 1463 +         }
[INFO] [stdout] 1464 + 
[INFO] [stdout] 1465 +         pub override fn set_location(&self, loc: Option<Location>) {
[INFO] [stdout] 1466 +             self.set_m_location(loc);
[INFO] [stdout] 1467 +         }
[INFO] [stdout] 1468 + 
[INFO] [stdout] 1469 +         pub override fn is_external(&self) -> bool {
[INFO] [stdout] 1470 +             self.m_is_external()
[INFO] [stdout] 1471 +         }
[INFO] [stdout] 1472 + 
[INFO] [stdout] 1473 +         pub override fn set_is_external(&self, value: bool) {
[INFO] [stdout] 1474 +             self.set_m_is_external(value);
[INFO] [stdout] 1475 +         }
[INFO] [stdout] 1476 + 
[INFO] [stdout] 1477 +         pub override fn type_params(&self) -> Option<SharedArray<Thingy>> {
[INFO] [stdout] 1478 +             self.m_type_params()
[INFO] [stdout] 1479 +         }
[INFO] [stdout] 1480 + 
[INFO] [stdout] 1481 +         pub override fn set_type_params(&self, list: Option<SharedArray<Thingy>>) {
[INFO] [stdout] 1482 +             self.set_m_type_params(list);
[INFO] [stdout] 1483 +         }
[INFO] [stdout] 1484 + 
[INFO] [stdout] 1485 +         pub override fn known_implementors(&self) -> SharedArray<Thingy> {
[INFO] [stdout] 1486 +             self.m_known_implementors()
[INFO] [stdout] 1487 +         }
[INFO] [stdout] 1488 + 
[INFO] [stdout] 1489 +         #[inheritdoc]
[INFO] [stdout] 1490 +         pub override fn extends_interfaces(&self, host: &SemanticHost) -> SharedArray<Thingy> {
[INFO] [stdout] 1491 +             self.m_extends_interfaces()
[INFO] [stdout] 1492 +         }
[INFO] [stdout] 1493 + 
[INFO] [stdout] 1494 +         pub override fn prototype(&self, host: &SemanticHost) -> NameMap {
[INFO] [stdout] 1495 +             self.m_prototype()
[INFO] [stdout] 1496 +         }
[INFO] [stdout] 1497 + 
[INFO] [stdout] 1498 +         pub override fn parent(&self) -> Option<Thingy> {
[INFO] [stdout] 1499 +             self.m_parent()
[INFO] [stdout] 1500 +         }
[INFO] [stdout] 1501 + 
[INFO] [stdout] 1502 +         pub override fn set_parent(&self, p: Option<Thingy>) {
[INFO] [stdout] 1503 +             self.set_m_parent(p);
[INFO] [stdout] 1504 +         }
[INFO] [stdout] 1505 + 
[INFO] [stdout] 1506 +         pub override fn asdoc(&self) -> Option<Rc<AsDoc>> {
[INFO] [stdout] 1507 +             self.m_asdoc()
[INFO] [stdout] 1508 +         }
[INFO] [stdout] 1509 + 
[INFO] [stdout] 1510 +         pub override fn set_asdoc(&self, asdoc: Option<Rc<AsDoc>>) {
[INFO] [stdout] 1511 +             self.set_m_asdoc(asdoc);
[INFO] [stdout] 1512 +         }
[INFO] [stdout] 1513 + 
[INFO] [stdout] 1514 +         pub override fn metadata(&self) -> SharedArray<Rc<Metadata>> {
[INFO] [stdout] 1515 +             self.m_metadata()
[INFO] [stdout] 1516 +         }
[INFO] [stdout] 1517 + 
[INFO] [stdout] 1518 +         pub override fn includes_undefined(&self, host: &SemanticHost) -> Result<bool, DeferError> {
[INFO] [stdout] 1519 +             Ok(false)
[INFO] [stdout] 1520 +         }
[INFO] [stdout] 1521 + 
[INFO] [stdout] 1522 +         pub override fn includes_null(&self, host: &SemanticHost) -> Result<bool, DeferError> {
[INFO] [stdout] 1523 +             Ok(true)
[INFO] [stdout] 1524 +         }
[INFO] [stdout] 1525 + 
[INFO] [stdout] 1526 +         override fn to_string_1(&self) -> String {
[INFO] [stdout] 1527 +             let name_1 = self.fully_qualified_name();
[INFO] [stdout] 1528 +             let mut p = String::new();
[INFO] [stdout] 1529 +             if let Some(type_params) = self.type_params() {
[INFO] [stdout] 1530 +                 p = ".<".to_owned() + &type_params.iter().map(|p| p.to_string()).collect::<Vec<String>>().join(", ") + ">";
[INFO] [stdout] 1531 +             }
[INFO] [stdout] 1532 +             name_1 + &p
[INFO] [stdout] 1533 +         }
[INFO] [stdout] 1534 +     }
[INFO] [stdout] 1535 + 
[INFO] [stdout] 1536 +     /// Type after substitution, whose origin is either
[INFO] [stdout] 1537 +     /// a class or an interface. Other types, after substitution,
[INFO] [stdout] 1538 +     /// such as structural types, are represented by their
[INFO] [stdout] 1539 +     /// same type with substitution in compound parts.
[INFO] [stdout] 1540 +     pub struct TypeAfterSubstitution: Type {
[INFO] [stdout] 1541 +         let ref m_origin: Option<Thingy> = None;
[INFO] [stdout] 1542 +         let ref m_substitute_types: SharedArray<Thingy> = SharedArray::new();
[INFO] [stdout] 1543 +         let ref m_extends_class: Option<Thingy> = None;
[INFO] [stdout] 1544 +         let ref m_implements: Option<SharedArray<Thingy>> = None;
[INFO] [stdout] 1545 +         let ref m_extends_interfaces: Option<SharedArray<Thingy>> = None;
[INFO] [stdout] 1546 +         let ref m_properties: Option<NameMap> = None;
[INFO] [stdout] 1547 +         let ref m_prototype: Option<NameMap> = None;
[INFO] [stdout] 1548 +         let ref m_constructor_method: Option<Thingy> = None;
[INFO] [stdout] 1549 + 
[INFO] [stdout] 1550 +         pub(crate) fn TypeAfterSubstitution(origin: Thingy, substitute_types: SharedArray<Thingy>) {
[INFO] [stdout] 1551 +             super();
[INFO] [stdout] 1552 +             self.set_m_origin(Some(origin));
[INFO] [stdout] 1553 +             self.set_m_substitute_types(substitute_types);
[INFO] [stdout] 1554 +         }
[INFO] [stdout] 1555 + 
[INFO] [stdout] 1556 +         pub override fn is_class_type_possibly_after_sub(&self) -> bool {
[INFO] [stdout] 1557 +             self.origin().is_class_type_possibly_after_sub()
[INFO] [stdout] 1558 +         }
[INFO] [stdout] 1559 + 
[INFO] [stdout] 1560 +         pub override fn is_interface_type_possibly_after_sub(&self) -> bool {
[INFO] [stdout] 1561 +             self.origin().is_interface_type_possibly_after_sub()
[INFO] [stdout] 1562 +         }
[INFO] [stdout] 1563 + 
[INFO] [stdout] 1564 +         pub override fn origin(&self) -> Thingy {
[INFO] [stdout] 1565 +             self.m_origin().unwrap()
[INFO] [stdout] 1566 +         }
[INFO] [stdout] 1567 + 
[INFO] [stdout] 1568 +         pub override fn substitute_types(&self) -> SharedArray<Thingy> {
[INFO] [stdout] 1569 +             self.m_substitute_types()
[INFO] [stdout] 1570 +         }
[INFO] [stdout] 1571 +         
[INFO] [stdout] 1572 +         pub override fn name(&self) -> QName {
[INFO] [stdout] 1573 +             self.origin().name()
[INFO] [stdout] 1574 +         }
[INFO] [stdout] 1575 + 
[INFO] [stdout] 1576 +         pub override fn flex_events(&self) -> SharedMap<String, Thingy> {
[INFO] [stdout] 1577 +             self.origin().flex_events()
[INFO] [stdout] 1578 +         }
[INFO] [stdout] 1579 + 
[INFO] [stdout] 1580 +         pub override fn is_abstract(&self) -> bool {
[INFO] [stdout] 1581 +             self.origin().is_abstract()
[INFO] [stdout] 1582 +         }
[INFO] [stdout] 1583 + 
[INFO] [stdout] 1584 +         pub override fn is_static(&self) -> bool {
[INFO] [stdout] 1585 +             self.origin().is_static()
[INFO] [stdout] 1586 +         }
[INFO] [stdout] 1587 + 
[INFO] [stdout] 1588 +         pub override fn is_final(&self) -> bool {
[INFO] [stdout] 1589 +             self.origin().is_final()
[INFO] [stdout] 1590 +         }
[INFO] [stdout] 1591 + 
[INFO] [stdout] 1592 +         pub override fn is_dynamic(&self) -> bool {
[INFO] [stdout] 1593 +             self.origin().is_dynamic()
[INFO] [stdout] 1594 +         }
[INFO] [stdout] 1595 + 
[INFO] [stdout] 1596 +         pub override fn is_dynamic_or_inherits_dynamic(&self, host: &SemanticHost) -> Result<bool, DeferError> {
[INFO] [stdout] 1597 +             self.origin().is_dynamic_or_inherits_dynamic(host)
[INFO] [stdout] 1598 +         }
[INFO] [stdout] 1599 + 
[INFO] [stdout] 1600 +         pub override fn is_options_class(&self) -> bool {
[INFO] [stdout] 1601 +             self.origin().is_options_class()
[INFO] [stdout] 1602 +         }
[INFO] [stdout] 1603 + 
[INFO] [stdout] 1604 +         #[inheritdoc]
[INFO] [stdout] 1605 +         pub override fn extends_class(&self, host: &SemanticHost) -> Option<Thingy> {
[INFO] [stdout] 1606 +             if let Some(r) = self.m_extends_class() {
[INFO] [stdout] 1607 +                 return Some(r.clone());
[INFO] [stdout] 1608 +             }
[INFO] [stdout] 1609 +             let origin = self.origin();
[INFO] [stdout] 1610 +             let r = origin.extends_class(host);
[INFO] [stdout] 1611 +             if r.is_none() {
[INFO] [stdout] 1612 +                 return None;
[INFO] [stdout] 1613 +             }
[INFO] [stdout] 1614 +             let r = r.unwrap();
[INFO] [stdout] 1615 +             if r.is::<UnresolvedThingy>() {
[INFO] [stdout] 1616 +                 return Some(r.clone());
[INFO] [stdout] 1617 +             }
[INFO] [stdout] 1618 +             let r = TypeSubstitution(host).exec(&r, &origin.type_params().unwrap(), &self.m_substitute_types());
[INFO] [stdout] 1619 +             self.set_m_extends_class(Some(r.clone()));
[INFO] [stdout] 1620 +             Some(r)
[INFO] [stdout] 1621 +         }
[INFO] [stdout] 1622 + 
[INFO] [stdout] 1623 +         #[inheritdoc]
[INFO] [stdout] 1624 +         pub override fn implements(&self, host: &SemanticHost) -> SharedArray<Thingy> {
[INFO] [stdout] 1625 +             if let Some(r) = self.m_implements() {
[INFO] [stdout] 1626 +                 return r;
[INFO] [stdout] 1627 +             }
[INFO] [stdout] 1628 +             let origin = self.origin();
[INFO] [stdout] 1629 +             let r: SharedArray<Thingy> = origin.implements(host).iter().map(|t| TypeSubstitution(host).exec(&t, &origin.type_params().unwrap(), &self.m_substitute_types())).collect();
[INFO] [stdout] 1630 +             self.set_m_implements(Some(r.clone()));
[INFO] [stdout] 1631 +             r
[INFO] [stdout] 1632 +         }
[INFO] [stdout] 1633 + 
[INFO] [stdout] 1634 +         #[inheritdoc]
[INFO] [stdout] 1635 +         pub override fn extends_interfaces(&self, host: &SemanticHost) -> SharedArray<Thingy> {
[INFO] [stdout] 1636 +             if let Some(r) = self.m_extends_interfaces() {
[INFO] [stdout] 1637 +                 return r;
[INFO] [stdout] 1638 +             }
[INFO] [stdout] 1639 +             let origin = self.origin();
[INFO] [stdout] 1640 +             let r: SharedArray<Thingy> = origin.extends_interfaces(host).iter().map(|t| TypeSubstitution(host).exec(&t, &origin.type_params().unwrap(), &self.m_substitute_types())).collect();
[INFO] [stdout] 1641 +             self.set_m_extends_interfaces(Some(r.clone()));
[INFO] [stdout] 1642 +             r
[INFO] [stdout] 1643 +         }
[INFO] [stdout] 1644 + 
[INFO] [stdout] 1645 +         pub override fn prototype(&self, host: &SemanticHost) -> NameMap {
[INFO] [stdout] 1646 +             if let Some(r) = self.m_prototype() {
[INFO] [stdout] 1647 +                 return r;
[INFO] [stdout] 1648 +             }
[INFO] [stdout] 1649 +             let origin = self.origin();
[INFO] [stdout] 1650 +             let mut r = NameMap::new();
[INFO] [stdout] 1651 +             for (name, thingy) in origin.prototype(host).borrow().iter() {
[INFO] [stdout] 1652 +                 let thingy = TypeSubstitution(host).exec(&thingy, &origin.type_params().unwrap(), &self.m_substitute_types());
[INFO] [stdout] 1653 +                 r.set(name.clone(), thingy)
[INFO] [stdout] 1654 +             }
[INFO] [stdout] 1655 +             self.set_m_prototype(Some(r.clone()));
[INFO] [stdout] 1656 +             r
[INFO] [stdout] 1657 +         }
[INFO] [stdout] 1658 + 
[INFO] [stdout] 1659 +         pub override fn properties(&self, host: &SemanticHost) -> NameMap {
[INFO] [stdout] 1660 +             if let Some(r) = self.m_properties() {
[INFO] [stdout] 1661 +                 return r;
[INFO] [stdout] 1662 +             }
[INFO] [stdout] 1663 +             let origin = self.origin();
[INFO] [stdout] 1664 +             let mut r = NameMap::new();
[INFO] [stdout] 1665 +             for (name, thingy) in origin.properties(host).borrow().iter() {
[INFO] [stdout] 1666 +                 let thingy = TypeSubstitution(host).exec(&thingy, &origin.type_params().unwrap(), &self.m_substitute_types());
[INFO] [stdout] 1667 +                 r.set(name.clone(), thingy)
[INFO] [stdout] 1668 +             }
[INFO] [stdout] 1669 +             self.set_m_properties(Some(r.clone()));
[INFO] [stdout] 1670 +             r
[INFO] [stdout] 1671 +         }
[INFO] [stdout] 1672 + 
[INFO] [stdout] 1673 +         pub override fn constructor_method(&self, host: &SemanticHost) -> Option<Thingy> {
[INFO] [stdout] 1674 +             if let Some(r) = self.m_constructor_method() {
[INFO] [stdout] 1675 +                 return Some(r.clone());
[INFO] [stdout] 1676 +             }
[INFO] [stdout] 1677 +             let origin = self.origin();
[INFO] [stdout] 1678 +             let r = origin.constructor_method(host);
[INFO] [stdout] 1679 +             if r.is_none() {
[INFO] [stdout] 1680 +                 return None;
[INFO] [stdout] 1681 +             }
[INFO] [stdout] 1682 +             let r = r.unwrap();
[INFO] [stdout] 1683 +             let r = TypeSubstitution(host).exec(&r, &origin.type_params().unwrap(), &self.m_substitute_types());
[INFO] [stdout] 1684 +             self.set_m_constructor_method(Some(r.clone()));
[INFO] [stdout] 1685 +             Some(r)
[INFO] [stdout] 1686 +         }
[INFO] [stdout] 1687 + 
[INFO] [stdout] 1688 +         pub override fn parent(&self) -> Option<Thingy> {
[INFO] [stdout] 1689 +             self.origin().parent()
[INFO] [stdout] 1690 +         }
[INFO] [stdout] 1691 + 
[INFO] [stdout] 1692 +         pub override fn asdoc(&self) -> Option<Rc<AsDoc>> {
[INFO] [stdout] 1693 +             self.origin().asdoc()
[INFO] [stdout] 1694 +         }
[INFO] [stdout] 1695 + 
[INFO] [stdout] 1696 +         pub override fn metadata(&self) -> SharedArray<Rc<Metadata>> {
[INFO] [stdout] 1697 +             self.origin().metadata()
[INFO] [stdout] 1698 +         }
[INFO] [stdout] 1699 + 
[INFO] [stdout] 1700 +         pub override fn includes_undefined(&self, host: &SemanticHost) -> Result<bool, DeferError> {
[INFO] [stdout] 1701 +             Ok(false)
[INFO] [stdout] 1702 +         }
[INFO] [stdout] 1703 + 
[INFO] [stdout] 1704 +         pub override fn includes_null(&self, host: &SemanticHost) -> Result<bool, DeferError> {
[INFO] [stdout] 1705 +             Ok(true)
[INFO] [stdout] 1706 +         }
[INFO] [stdout] 1707 + 
[INFO] [stdout] 1708 +         pub override fn location(&self) -> Option<Location> {
[INFO] [stdout] 1709 +             None
[INFO] [stdout] 1710 +         }
[INFO] [stdout] 1711 + 
[INFO] [stdout] 1712 +         override fn to_string_1(&self) -> String {
[INFO] [stdout] 1713 +             let name_1 = self.fully_qualified_name();
[INFO] [stdout] 1714 +             let a = self.m_substitute_types();
[INFO] [stdout] 1715 +             let p = ".<".to_owned() + &a.iter().map(|a| a.to_string()).collect::<Vec<String>>().join(", ") + ">";
[INFO] [stdout] 1716 +             name_1 + &p
[INFO] [stdout] 1717 +         }
[INFO] [stdout] 1718 +     }
[INFO] [stdout] 1719 + 
[INFO] [stdout] 1720 +     /// Tuple type. The tuple type is equivalent to
[INFO] [stdout] 1721 +     /// `Array` with type safety for its element types.
[INFO] [stdout] 1722 +     pub struct TupleType: Type {
[INFO] [stdout] 1723 +         let ref m_elements: SharedArray<Thingy> = SharedArray::new();
[INFO] [stdout] 1724 + 
[INFO] [stdout] 1725 +         pub(crate) fn TupleType(elements: SharedArray<Thingy>) {
[INFO] [stdout] 1726 +             super();
[INFO] [stdout] 1727 +             self.set_m_elements(elements);
[INFO] [stdout] 1728 +         }
[INFO] [stdout] 1729 +         
[INFO] [stdout] 1730 +         pub override fn element_types(&self) -> SharedArray<Thingy> {
[INFO] [stdout] 1731 +             self.m_elements()
[INFO] [stdout] 1732 +         }
[INFO] [stdout] 1733 + 
[INFO] [stdout] 1734 +         pub override fn is_abstract(&self) -> bool {
[INFO] [stdout] 1735 +             false
[INFO] [stdout] 1736 +         }
[INFO] [stdout] 1737 + 
[INFO] [stdout] 1738 +         pub override fn is_final(&self) -> bool {
[INFO] [stdout] 1739 +             true
[INFO] [stdout] 1740 +         }
[INFO] [stdout] 1741 + 
[INFO] [stdout] 1742 +         pub override fn is_dynamic(&self) -> bool {
[INFO] [stdout] 1743 +             true
[INFO] [stdout] 1744 +         }
[INFO] [stdout] 1745 + 
[INFO] [stdout] 1746 +         pub override fn is_dynamic_or_inherits_dynamic(&self, host: &SemanticHost) -> Result<bool, DeferError> {
[INFO] [stdout] 1747 +             Ok(self.is_dynamic())
[INFO] [stdout] 1748 +         }
[INFO] [stdout] 1749 + 
[INFO] [stdout] 1750 +         pub override fn is_options_class(&self) -> bool {
[INFO] [stdout] 1751 +             false
[INFO] [stdout] 1752 +         }
[INFO] [stdout] 1753 + 
[INFO] [stdout] 1754 +         #[inheritdoc]
[INFO] [stdout] 1755 +         pub override fn extends_class(&self, host: &SemanticHost) -> Option<Thingy> {
[INFO] [stdout] 1756 +             Some(host.array_type())
[INFO] [stdout] 1757 +         }
[INFO] [stdout] 1758 + 
[INFO] [stdout] 1759 +         pub override fn includes_undefined(&self, host: &SemanticHost) -> Result<bool, DeferError> {
[INFO] [stdout] 1760 +             Ok(false)
[INFO] [stdout] 1761 +         }
[INFO] [stdout] 1762 + 
[INFO] [stdout] 1763 +         pub override fn includes_null(&self, host: &SemanticHost) -> Result<bool, DeferError> {
[INFO] [stdout] 1764 +             Ok(true)
[INFO] [stdout] 1765 +         }
[INFO] [stdout] 1766 + 
[INFO] [stdout] 1767 +         override fn to_string_1(&self) -> String {
[INFO] [stdout] 1768 +             format!("[{}]", self.element_types().iter().map(|e| e.to_string()).collect::<Vec<String>>().join(", "))
[INFO] [stdout] 1769 +         }
[INFO] [stdout] 1770 +     }
[INFO] [stdout] 1771 + 
[INFO] [stdout] 1772 +     /// Structural function type. This type is equivalent to `Function`
[INFO] [stdout] 1773 +     /// with type safety.
[INFO] [stdout] 1774 +     pub struct FunctionType: Type {
[INFO] [stdout] 1775 +         let ref m_params: SharedArray<Rc<SemanticFunctionTypeParameter>> = SharedArray::new();
[INFO] [stdout] 1776 +         let ref m_result_type: Option<Thingy> = None;
[INFO] [stdout] 1777 + 
[INFO] [stdout] 1778 +         pub(crate) fn FunctionType(params: SharedArray<Rc<SemanticFunctionTypeParameter>>, result_type: Thingy) {
[INFO] [stdout] 1779 +             super();
[INFO] [stdout] 1780 +             self.set_m_params(params);
[INFO] [stdout] 1781 +             self.set_m_result_type(Some(result_type));
[INFO] [stdout] 1782 +         }
[INFO] [stdout] 1783 +         
[INFO] [stdout] 1784 +         pub override fn params(&self) -> SharedArray<Rc<SemanticFunctionTypeParameter>> {
[INFO] [stdout] 1785 +             self.m_params()
[INFO] [stdout] 1786 +         }
[INFO] [stdout] 1787 + 
[INFO] [stdout] 1788 +         pub override fn result_type(&self) -> Thingy {
[INFO] [stdout] 1789 +             self.m_result_type().unwrap()
[INFO] [stdout] 1790 +         }
[INFO] [stdout] 1791 + 
[INFO] [stdout] 1792 +         pub override fn is_abstract(&self) -> bool {
[INFO] [stdout] 1793 +             false
[INFO] [stdout] 1794 +         }
[INFO] [stdout] 1795 + 
[INFO] [stdout] 1796 +         pub override fn is_final(&self) -> bool {
[INFO] [stdout] 1797 +             true
[INFO] [stdout] 1798 +         }
[INFO] [stdout] 1799 + 
[INFO] [stdout] 1800 +         pub override fn is_dynamic(&self) -> bool {
[INFO] [stdout] 1801 +             false
[INFO] [stdout] 1802 +         }
[INFO] [stdout] 1803 + 
[INFO] [stdout] 1804 +         pub override fn is_dynamic_or_inherits_dynamic(&self, host: &SemanticHost) -> Result<bool, DeferError> {
[INFO] [stdout] 1805 +             Ok(self.is_dynamic())
[INFO] [stdout] 1806 +         }
[INFO] [stdout] 1807 + 
[INFO] [stdout] 1808 +         pub override fn is_options_class(&self) -> bool {
[INFO] [stdout] 1809 +             false
[INFO] [stdout] 1810 +         }
[INFO] [stdout] 1811 + 
[INFO] [stdout] 1812 +         #[inheritdoc]
[INFO] [stdout] 1813 +         pub override fn extends_class(&self, host: &SemanticHost) -> Option<Thingy> {
[INFO] [stdout] 1814 +             Some(host.function_type())
[INFO] [stdout] 1815 +         }
[INFO] [stdout] 1816 + 
[INFO] [stdout] 1817 +         pub override fn includes_undefined(&self, host: &SemanticHost) -> Result<bool, DeferError> {
[INFO] [stdout] 1818 +             Ok(false)
[INFO] [stdout] 1819 +         }
[INFO] [stdout] 1820 + 
[INFO] [stdout] 1821 +         pub override fn includes_null(&self, host: &SemanticHost) -> Result<bool, DeferError> {
[INFO] [stdout] 1822 +             Ok(true)
[INFO] [stdout] 1823 +         }
[INFO] [stdout] 1824 + 
[INFO] [stdout] 1825 +         override fn to_string_1(&self) -> String {
[INFO] [stdout] 1826 +             let mut p = Vec::<String>::new();
[INFO] [stdout] 1827 +             for p1 in self.params().iter() {
[INFO] [stdout] 1828 +                 match p1.kind {
[INFO] [stdout] 1829 +                     ParameterKind::Required => {
[INFO] [stdout] 1830 +                         p.push(p1.static_type.to_string());
[INFO] [stdout] 1831 +                     },
[INFO] [stdout] 1832 +                     ParameterKind::Optional => {
[INFO] [stdout] 1833 +                         p.push(p1.static_type.to_string() + &"=".to_owned());
[INFO] [stdout] 1834 +                     },
[INFO] [stdout] 1835 +                     ParameterKind::Rest => {
[INFO] [stdout] 1836 +                         p.push("...".to_owned() + &p1.static_type.to_string());
[INFO] [stdout] 1837 +                     },
[INFO] [stdout] 1838 +                 }
[INFO] [stdout] 1839 +             }
[INFO] [stdout] 1840 +             format!("function({}) : {}", p.join(", "), self.result_type().to_string())
[INFO] [stdout] 1841 +         }
[INFO] [stdout] 1842 +     }
[INFO] [stdout] 1843 + 
[INFO] [stdout] 1844 +     /// The nullable type `T?`. It is equivalent to either
[INFO] [stdout] 1845 +     /// `T` or `*` (for all primitive types but String).
[INFO] [stdout] 1846 +     pub struct NullableType: Type {
[INFO] [stdout] 1847 +         let ref m_base: Option<Thingy> = None;
[INFO] [stdout] 1848 + 
[INFO] [stdout] 1849 +         pub(crate) fn NullableType(base: Thingy) {
[INFO] [stdout] 1850 +             super();
[INFO] [stdout] 1851 +             self.set_m_base(Some(base));
[INFO] [stdout] 1852 +         }
[INFO] [stdout] 1853 + 
[INFO] [stdout] 1854 +         /// The type that is made nullable.
[INFO] [stdout] 1855 +         pub override fn base(&self) -> Thingy {
[INFO] [stdout] 1856 +             self.m_base().unwrap()
[INFO] [stdout] 1857 +         }
[INFO] [stdout] 1858 + 
[INFO] [stdout] 1859 +         pub override fn includes_undefined(&self) -> Result<bool, DeferError> {
[INFO] [stdout] 1860 +             Ok(false)
[INFO] [stdout] 1861 +         }
[INFO] [stdout] 1862 + 
[INFO] [stdout] 1863 +         pub override fn includes_null(&self) -> Result<bool, DeferError> {
[INFO] [stdout] 1864 +             Ok(true)
[INFO] [stdout] 1865 +         }
[INFO] [stdout] 1866 + 
[INFO] [stdout] 1867 +         #[inheritdoc]
[INFO] [stdout] 1868 +         pub override fn escape_of_nullable(&self) -> Thingy {
[INFO] [stdout] 1869 +             self.base()
[INFO] [stdout] 1870 +         }
[INFO] [stdout] 1871 + 
[INFO] [stdout] 1872 +         pub override fn escape_of_nullable_or_non_nullable(&self) -> Thingy {
[INFO] [stdout] 1873 +             self.base()
[INFO] [stdout] 1874 +         }
[INFO] [stdout] 1875 + 
[INFO] [stdout] 1876 +         override fn to_string_1(&self) -> String {
[INFO] [stdout] 1877 +             if let Ok(ft) = self.base().to::<FunctionType>() {
[INFO] [stdout] 1878 +                 format!("?{}", ft.to_string())
[INFO] [stdout] 1879 +             } else {
[INFO] [stdout] 1880 +                 format!("{}?", self.base().to_string())
[INFO] [stdout] 1881 +             }
[INFO] [stdout] 1882 +         }
[INFO] [stdout] 1883 +     }
[INFO] [stdout] 1884 + 
[INFO] [stdout] 1885 +     pub struct NonNullableType: Type {
[INFO] [stdout] 1886 +         let ref m_base: Option<Thingy> = None;
[INFO] [stdout] 1887 + 
[INFO] [stdout] 1888 +         pub(crate) fn NonNullableType(base: Thingy) {
[INFO] [stdout] 1889 +             super();
[INFO] [stdout] 1890 +             self.set_m_base(Some(base));
[INFO] [stdout] 1891 +         }
[INFO] [stdout] 1892 + 
[INFO] [stdout] 1893 +         /// The type that is made non-nullable.
[INFO] [stdout] 1894 +         pub override fn base(&self) -> Thingy {
[INFO] [stdout] 1895 +             self.m_base().unwrap()
[INFO] [stdout] 1896 +         }
[INFO] [stdout] 1897 + 
[INFO] [stdout] 1898 +         pub override fn includes_undefined(&self) -> Result<bool, DeferError> {
[INFO] [stdout] 1899 +             Ok(false)
[INFO] [stdout] 1900 +         }
[INFO] [stdout] 1901 + 
[INFO] [stdout] 1902 +         pub override fn includes_null(&self) -> Result<bool, DeferError> {
[INFO] [stdout] 1903 +             Ok(false)
[INFO] [stdout] 1904 +         }
[INFO] [stdout] 1905 + 
[INFO] [stdout] 1906 +         #[inheritdoc]
[INFO] [stdout] 1907 +         pub override fn escape_of_non_nullable(&self) -> Thingy {
[INFO] [stdout] 1908 +             self.base()
[INFO] [stdout] 1909 +         }
[INFO] [stdout] 1910 + 
[INFO] [stdout] 1911 +         pub override fn escape_of_nullable_or_non_nullable(&self) -> Thingy {
[INFO] [stdout] 1912 +             self.base()
[INFO] [stdout] 1913 +         }
[INFO] [stdout] 1914 + 
[INFO] [stdout] 1915 +         override fn to_string_1(&self) -> String {
[INFO] [stdout] 1916 +             if let Ok(ft) = self.base().to::<FunctionType>() {
[INFO] [stdout] 1917 +                 format!("({})!", ft.to_string())
[INFO] [stdout] 1918 +             } else {
[INFO] [stdout] 1919 +                 format!("{}!", self.base().to_string())
[INFO] [stdout] 1920 +             }
[INFO] [stdout] 1921 +         }
[INFO] [stdout] 1922 +     }
[INFO] [stdout] 1923 + 
[INFO] [stdout] 1924 +     pub struct TypeParameterType: Type {
[INFO] [stdout] 1925 +         let ref m_name: Option<QName> = None;
[INFO] [stdout] 1926 +         let ref m_location: Option<Location> = None;
[INFO] [stdout] 1927 + 
[INFO] [stdout] 1928 +         pub(crate) fn TypeParameterType(name: QName) {
[INFO] [stdout] 1929 +             super();
[INFO] [stdout] 1930 +             self.set_m_name(Some(name));
[INFO] [stdout] 1931 +         }
[INFO] [stdout] 1932 + 
[INFO] [stdout] 1933 +         pub override fn name(&self) -> QName {
[INFO] [stdout] 1934 +             self.m_name().unwrap()
[INFO] [stdout] 1935 +         }
[INFO] [stdout] 1936 + 
[INFO] [stdout] 1937 +         pub override fn location(&self) -> Option<Location> {
[INFO] [stdout] 1938 +             self.m_location()
[INFO] [stdout] 1939 +         }
[INFO] [stdout] 1940 + 
[INFO] [stdout] 1941 +         pub override fn set_location(&self, loc: Option<Location>) {
[INFO] [stdout] 1942 +             self.set_m_location(loc);
[INFO] [stdout] 1943 +         }
[INFO] [stdout] 1944 + 
[INFO] [stdout] 1945 +         pub override fn includes_undefined(&self) -> Result<bool, DeferError> {
[INFO] [stdout] 1946 +             Ok(false)
[INFO] [stdout] 1947 +         }
[INFO] [stdout] 1948 + 
[INFO] [stdout] 1949 +         pub override fn includes_null(&self) -> Result<bool, DeferError> {
[INFO] [stdout] 1950 +             Ok(false)
[INFO] [stdout] 1951 +         }
[INFO] [stdout] 1952 + 
[INFO] [stdout] 1953 +         override fn to_string_1(&self) -> String {
[INFO] [stdout] 1954 +             self.name().to_string()
[INFO] [stdout] 1955 +         }
[INFO] [stdout] 1956 +     }
[INFO] [stdout] 1957 + 
[INFO] [stdout] 1958 +     /// Either an *original* variable slot, or a variable slot after substitution.
[INFO] [stdout] 1959 +     pub struct VariableSlot: Thingy {
[INFO] [stdout] 1960 +         fn VariableSlot() {
[INFO] [stdout] 1961 +             super();
[INFO] [stdout] 1962 +         }
[INFO] [stdout] 1963 + 
[INFO] [stdout] 1964 +         #[inheritdoc]
[INFO] [stdout] 1965 +         pub override fn property_static_type(&self, host: &SemanticHost) -> Thingy {
[INFO] [stdout] 1966 +             self.static_type(host)
[INFO] [stdout] 1967 +         }
[INFO] [stdout] 1968 +     }
[INFO] [stdout] 1969 + 
[INFO] [stdout] 1970 +     pub struct OriginalVariableSlot: VariableSlot {
[INFO] [stdout] 1971 +         let ref m_name: Option<QName> = None;
[INFO] [stdout] 1972 +         let ref m_location: Option<Location> = None;
[INFO] [stdout] 1973 +         let ref m_asdoc: Option<Rc<AsDoc>> = None;
[INFO] [stdout] 1974 +         let ref m_metadata: SharedArray<Rc<Metadata>> = SharedArray::new();
[INFO] [stdout] 1975 +         let ref m_constant: Option<Thingy> = None;
[INFO] [stdout] 1976 +         let ref m_static_type: Option<Thingy> = None;
[INFO] [stdout] 1977 +         let ref m_parent: Option<Thingy> = None;
[INFO] [stdout] 1978 +         let m_flags: VariableSlotFlags = VariableSlotFlags::empty();
[INFO] [stdout] 1979 +         let ref m_bindable_event: Option<String> = None;
[INFO] [stdout] 1980 + 
[INFO] [stdout] 1981 +         pub(crate) fn OriginalVariableSlot(name: &QName, read_only: bool, static_type: &Thingy) {
[INFO] [stdout] 1982 +             super();
[INFO] [stdout] 1983 +             self.set_m_name(Some(name.clone()));
[INFO] [stdout] 1984 +             self.set_read_only(read_only);
[INFO] [stdout] 1985 +             self.set_m_static_type(Some(static_type.clone()));
[INFO] [stdout] 1986 +         }
[INFO] [stdout] 1987 + 
[INFO] [stdout] 1988 +         pub override fn name(&self) -> QName {
[INFO] [stdout] 1989 +             self.m_name().unwrap()
[INFO] [stdout] 1990 +         }
[INFO] [stdout] 1991 + 
[INFO] [stdout] 1992 +         /// The constant initially assigned to that variable slot.
[INFO] [stdout] 1993 +         pub override fn var_constant(&self) -> Option<Thingy> {
[INFO] [stdout] 1994 +             self.m_constant()
[INFO] [stdout] 1995 +         }
[INFO] [stdout] 1996 + 
[INFO] [stdout] 1997 +         /// The constant initially assigned to that variable slot.
[INFO] [stdout] 1998 +         pub override fn set_var_constant(&self, k: Option<Thingy>) {
[INFO] [stdout] 1999 +             self.set_m_constant(k);
[INFO] [stdout] 2000 +         }
[INFO] [stdout] 2001 + 
[INFO] [stdout] 2002 +         pub override fn is_external(&self) -> bool {
[INFO] [stdout] 2003 +             self.m_flags().contains(VariableSlotFlags::IS_EXTERNAL)
[INFO] [stdout] 2004 +         }
[INFO] [stdout] 2005 + 
[INFO] [stdout] 2006 +         pub override fn set_is_external(&self, value: bool) {
[INFO] [stdout] 2007 +             let mut v = self.m_flags();
[INFO] [stdout] 2008 +             v.set(VariableSlotFlags::IS_EXTERNAL, value);
[INFO] [stdout] 2009 +             self.set_m_flags(v);
[INFO] [stdout] 2010 +         }
[INFO] [stdout] 2011 + 
[INFO] [stdout] 2012 +         pub override fn read_only(&self, host: &SemanticHost) -> bool {
[INFO] [stdout] 2013 +             self.m_flags().contains(VariableSlotFlags::READ_ONLY)
[INFO] [stdout] 2014 +         }
[INFO] [stdout] 2015 + 
[INFO] [stdout] 2016 +         pub override fn set_read_only(&self, value: bool) {
[INFO] [stdout] 2017 +             let mut v = self.m_flags();
[INFO] [stdout] 2018 +             v.set(VariableSlotFlags::READ_ONLY, value);
[INFO] [stdout] 2019 +             self.set_m_flags(v);
[INFO] [stdout] 2020 +         }
[INFO] [stdout] 2021 + 
[INFO] [stdout] 2022 +         pub override fn write_only(&self, host: &SemanticHost) -> bool {
[INFO] [stdout] 2023 +             false
[INFO] [stdout] 2024 +         }
[INFO] [stdout] 2025 + 
[INFO] [stdout] 2026 +         pub override fn static_type(&self, host: &SemanticHost) -> Thingy {
[INFO] [stdout] 2027 +             self.m_static_type().unwrap()
[INFO] [stdout] 2028 +         }
[INFO] [stdout] 2029 + 
[INFO] [stdout] 2030 +         pub override fn set_static_type(&self, value: Thingy) {
[INFO] [stdout] 2031 +             self.set_m_static_type(Some(value));
[INFO] [stdout] 2032 +         }
[INFO] [stdout] 2033 + 
[INFO] [stdout] 2034 +         pub override fn location(&self) -> Option<Location> {
[INFO] [stdout] 2035 +             self.m_location()
[INFO] [stdout] 2036 +         }
[INFO] [stdout] 2037 + 
[INFO] [stdout] 2038 +         pub override fn set_location(&self, loc: Option<Location>) {
[INFO] [stdout] 2039 +             self.set_m_location(loc);
[INFO] [stdout] 2040 +         }
[INFO] [stdout] 2041 + 
[INFO] [stdout] 2042 +         /// The event name indicated by a `[Bindable]` meta-data tag.
[INFO] [stdout] 2043 +         pub override fn bindable_event(&self) -> Option<String> {
[INFO] [stdout] 2044 +             self.m_bindable_event()
[INFO] [stdout] 2045 +         }
[INFO] [stdout] 2046 + 
[INFO] [stdout] 2047 +         pub override fn set_bindable_event(&self, name: Option<String>) {
[INFO] [stdout] 2048 +             self.set_m_bindable_event(name);
[INFO] [stdout] 2049 +         }
[INFO] [stdout] 2050 + 
[INFO] [stdout] 2051 +         pub override fn parent(&self) -> Option<Thingy> {
[INFO] [stdout] 2052 +             self.m_parent()
[INFO] [stdout] 2053 +         }
[INFO] [stdout] 2054 + 
[INFO] [stdout] 2055 +         pub override fn set_parent(&self, p: Option<Thingy>) {
[INFO] [stdout] 2056 +             self.set_m_parent(p);
[INFO] [stdout] 2057 +         }
[INFO] [stdout] 2058 + 
[INFO] [stdout] 2059 +         pub override fn asdoc(&self) -> Option<Rc<AsDoc>> {
[INFO] [stdout] 2060 +             self.m_asdoc()
[INFO] [stdout] 2061 +         }
[INFO] [stdout] 2062 + 
[INFO] [stdout] 2063 +         pub override fn set_asdoc(&self, asdoc: Option<Rc<AsDoc>>) {
[INFO] [stdout] 2064 +             self.set_m_asdoc(asdoc);
[INFO] [stdout] 2065 +         }
[INFO] [stdout] 2066 + 
[INFO] [stdout] 2067 +         pub override fn metadata(&self) -> SharedArray<Rc<Metadata>> {
[INFO] [stdout] 2068 +             self.m_metadata()
[INFO] [stdout] 2069 +         }
[INFO] [stdout] 2070 + 
[INFO] [stdout] 2071 +         override fn to_string_1(&self) -> String {
[INFO] [stdout] 2072 +             self.fully_qualified_name()
[INFO] [stdout] 2073 +         }
[INFO] [stdout] 2074 +     }
[INFO] [stdout] 2075 + 
[INFO] [stdout] 2076 +     /// Variable slot after indirect substitution.
[INFO] [stdout] 2077 +     pub struct VariableSlotAfterSubstitution: VariableSlot {
[INFO] [stdout] 2078 +         let ref m_origin: Option<Thingy> = None;
[INFO] [stdout] 2079 +         let ref m_indirect_type_params: SharedArray<Thingy> = SharedArray::new();
[INFO] [stdout] 2080 +         let ref m_indirect_substitute_types: SharedArray<Thingy> = SharedArray::new();
[INFO] [stdout] 2081 +         let ref m_static_type: Option<Thingy> = None;
[INFO] [stdout] 2082 + 
[INFO] [stdout] 2083 +         pub(crate) fn VariableSlotAfterSubstitution(origin: &Thingy, indirect_type_params: &SharedArray<Thingy>, indirect_substitute_types: &SharedArray<Thingy>) {
[INFO] [stdout] 2084 +             super();
[INFO] [stdout] 2085 +             self.set_m_origin(Some(origin.clone()));
[INFO] [stdout] 2086 +             self.set_m_indirect_type_params(indirect_type_params.clone());
[INFO] [stdout] 2087 +             self.set_m_indirect_substitute_types(indirect_substitute_types.clone());
[INFO] [stdout] 2088 +         }
[INFO] [stdout] 2089 + 
[INFO] [stdout] 2090 +         pub override fn origin(&self) -> Thingy {
[INFO] [stdout] 2091 +             self.m_origin().unwrap()
[INFO] [stdout] 2092 +         }
[INFO] [stdout] 2093 + 
[INFO] [stdout] 2094 +         pub override fn indirect_type_params(&self) -> SharedArray<Thingy> {
[INFO] [stdout] 2095 +             self.m_indirect_type_params()
[INFO] [stdout] 2096 +         }
[INFO] [stdout] 2097 + 
[INFO] [stdout] 2098 +         pub override fn indirect_substitute_types(&self) -> SharedArray<Thingy> {
[INFO] [stdout] 2099 +             self.m_indirect_substitute_types()
[INFO] [stdout] 2100 +         }
[INFO] [stdout] 2101 + 
[INFO] [stdout] 2102 +         pub override fn name(&self) -> QName {
[INFO] [stdout] 2103 +             self.origin().name()
[INFO] [stdout] 2104 +         }
[INFO] [stdout] 2105 + 
[INFO] [stdout] 2106 +         /// The constant initially assigned to that variable slot.
[INFO] [stdout] 2107 +         pub override fn var_constant(&self) -> Option<Thingy> {
[INFO] [stdout] 2108 +             None
[INFO] [stdout] 2109 +         }
[INFO] [stdout] 2110 + 
[INFO] [stdout] 2111 +         pub override fn is_external(&self) -> bool {
[INFO] [stdout] 2112 +             self.origin().is_external()
[INFO] [stdout] 2113 +         }
[INFO] [stdout] 2114 + 
[INFO] [stdout] 2115 +         pub override fn read_only(&self, host: &SemanticHost) -> bool {
[INFO] [stdout] 2116 +             self.origin().read_only(host)
[INFO] [stdout] 2117 +         }
[INFO] [stdout] 2118 + 
[INFO] [stdout] 2119 +         pub override fn write_only(&self, host: &SemanticHost) -> bool {
[INFO] [stdout] 2120 +             false
[INFO] [stdout] 2121 +         }
[INFO] [stdout] 2122 + 
[INFO] [stdout] 2123 +         pub override fn static_type(&self, host: &SemanticHost) -> Thingy {
[INFO] [stdout] 2124 +             if let Some(r) = self.m_static_type() {
[INFO] [stdout] 2125 +                 return r.clone();
[INFO] [stdout] 2126 +             }
[INFO] [stdout] 2127 +             let r = self.origin().static_type(host);
[INFO] [stdout] 2128 +             if r.is::<UnresolvedThingy>() {
[INFO] [stdout] 2129 +                 return r.clone();
[INFO] [stdout] 2130 +             }
[INFO] [stdout] 2131 +             let r = TypeSubstitution(host).exec(&r, &self.m_indirect_type_params(), &self.m_indirect_substitute_types());
[INFO] [stdout] 2132 +             self.set_m_static_type(Some(r.clone()));
[INFO] [stdout] 2133 +             r
[INFO] [stdout] 2134 +         }
[INFO] [stdout] 2135 + 
[INFO] [stdout] 2136 +         pub override fn location(&self) -> Option<Location> {
[INFO] [stdout] 2137 +             None
[INFO] [stdout] 2138 +         }
[INFO] [stdout] 2139 + 
[INFO] [stdout] 2140 +         /// The event name indicated by a `[Bindable]` meta-data tag.
[INFO] [stdout] 2141 +         pub override fn bindable_event(&self) -> Option<String> {
[INFO] [stdout] 2142 +             self.origin().bindable_event()
[INFO] [stdout] 2143 +         }
[INFO] [stdout] 2144 + 
[INFO] [stdout] 2145 +         pub override fn parent(&self) -> Option<Thingy> {
[INFO] [stdout] 2146 +             self.origin().parent()
[INFO] [stdout] 2147 +         }
[INFO] [stdout] 2148 + 
[INFO] [stdout] 2149 +         pub override fn asdoc(&self) -> Option<Rc<AsDoc>> {
[INFO] [stdout] 2150 +             self.origin().asdoc()
[INFO] [stdout] 2151 +         }
[INFO] [stdout] 2152 + 
[INFO] [stdout] 2153 +         pub override fn metadata(&self) -> SharedArray<Rc<Metadata>> {
[INFO] [stdout] 2154 +             self.origin().metadata()
[INFO] [stdout] 2155 +         }
[INFO] [stdout] 2156 + 
[INFO] [stdout] 2157 +         override fn to_string_1(&self) -> String {
[INFO] [stdout] 2158 +             self.fully_qualified_name()
[INFO] [stdout] 2159 +         }
[INFO] [stdout] 2160 +     }
[INFO] [stdout] 2161 + 
[INFO] [stdout] 2162 +     /// Either an *original* virtual slot, or a virtual slot after substitution.
[INFO] [stdout] 2163 +     pub struct VirtualSlot: Thingy {
[INFO] [stdout] 2164 +         fn VirtualSlot() {
[INFO] [stdout] 2165 +             super();
[INFO] [stdout] 2166 +         }
[INFO] [stdout] 2167 + 
[INFO] [stdout] 2168 +         #[inheritdoc]
[INFO] [stdout] 2169 +         pub override fn property_static_type(&self, host: &SemanticHost) -> Thingy {
[INFO] [stdout] 2170 +             self.static_type(host)
[INFO] [stdout] 2171 +         }
[INFO] [stdout] 2172 +     }
[INFO] [stdout] 2173 + 
[INFO] [stdout] 2174 +     pub struct OriginalVirtualSlot: VirtualSlot {
[INFO] [stdout] 2175 +         let ref m_name: Option<QName> = None;
[INFO] [stdout] 2176 +         let ref m_location: Option<Location> = None;
[INFO] [stdout] 2177 +         let ref m_asdoc: Option<Rc<AsDoc>> = None;
[INFO] [stdout] 2178 +         let ref m_getter: Option<Thingy> = None;
[INFO] [stdout] 2179 +         let ref m_setter: Option<Thingy> = None;
[INFO] [stdout] 2180 +         let ref m_static_type: Option<Thingy> = None;
[INFO] [stdout] 2181 +         let ref m_parent: Option<Thingy> = None;
[INFO] [stdout] 2182 +         let m_flags: VirtualSlotFlags = VirtualSlotFlags::empty();
[INFO] [stdout] 2183 +         let ref m_bindable_event: Option<String> = None;
[INFO] [stdout] 2184 + 
[INFO] [stdout] 2185 +         pub(crate) fn OriginalVirtualSlot(name: &QName) {
[INFO] [stdout] 2186 +             super();
[INFO] [stdout] 2187 +             self.set_m_name(Some(name.clone()));
[INFO] [stdout] 2188 +         }
[INFO] [stdout] 2189 + 
[INFO] [stdout] 2190 +         pub override fn name(&self) -> QName {
[INFO] [stdout] 2191 +             self.m_name().unwrap()
[INFO] [stdout] 2192 +         }
[INFO] [stdout] 2193 + 
[INFO] [stdout] 2194 +         pub override fn getter(&self, host: &SemanticHost) -> Option<Thingy> {
[INFO] [stdout] 2195 +             self.m_getter()
[INFO] [stdout] 2196 +         }
[INFO] [stdout] 2197 + 
[INFO] [stdout] 2198 +         pub override fn set_getter(&self, m: Option<Thingy>) {
[INFO] [stdout] 2199 +             self.set_m_getter(m);
[INFO] [stdout] 2200 +         }
[INFO] [stdout] 2201 + 
[INFO] [stdout] 2202 +         pub override fn setter(&self, host: &SemanticHost) -> Option<Thingy> {
[INFO] [stdout] 2203 +             self.m_setter()
[INFO] [stdout] 2204 +         }
[INFO] [stdout] 2205 + 
[INFO] [stdout] 2206 +         pub override fn set_setter(&self, m: Option<Thingy>) {
[INFO] [stdout] 2207 +             self.set_m_setter(m);
[INFO] [stdout] 2208 +         }
[INFO] [stdout] 2209 + 
[INFO] [stdout] 2210 +         pub override fn is_external(&self) -> bool {
[INFO] [stdout] 2211 +             self.m_flags().contains(VirtualSlotFlags::IS_EXTERNAL)
[INFO] [stdout] 2212 +         }
[INFO] [stdout] 2213 + 
[INFO] [stdout] 2214 +         pub override fn set_is_external(&self, value: bool) {
[INFO] [stdout] 2215 +             let mut v = self.m_flags();
[INFO] [stdout] 2216 +             v.set(VirtualSlotFlags::IS_EXTERNAL, value);
[INFO] [stdout] 2217 +             self.set_m_flags(v);
[INFO] [stdout] 2218 +         }
[INFO] [stdout] 2219 + 
[INFO] [stdout] 2220 +         pub override fn read_only(&self, host: &SemanticHost) -> bool {
[INFO] [stdout] 2221 +             self.setter(host).is_none()
[INFO] [stdout] 2222 +         }
[INFO] [stdout] 2223 + 
[INFO] [stdout] 2224 +         pub override fn write_only(&self, host: &SemanticHost) -> bool {
[INFO] [stdout] 2225 +             self.getter(host).is_none()
[INFO] [stdout] 2226 +         }
[INFO] [stdout] 2227 + 
[INFO] [stdout] 2228 +         pub override fn static_type(&self, host: &SemanticHost) -> Thingy {
[INFO] [stdout] 2229 +             if let Some(r) = self.m_static_type() {
[INFO] [stdout] 2230 +                 return r.clone();
[INFO] [stdout] 2231 +             }
[INFO] [stdout] 2232 + 
[INFO] [stdout] 2233 +             let mut deduced_type: Option<Thingy> = None;
[INFO] [stdout] 2234 + 
[INFO] [stdout] 2235 +             // Deduce type from getter
[INFO] [stdout] 2236 +             if let Some(getter) = self.m_getter() {
[INFO] [stdout] 2237 +                 let signature: Thingy = getter.signature(host);
[INFO] [stdout] 2238 +                 if !signature.is::<UnresolvedThingy>() {
[INFO] [stdout] 2239 +                     deduced_type = Some(signature.result_type());
[INFO] [stdout] 2240 +                 }
[INFO] [stdout] 2241 +             }
[INFO] [stdout] 2242 + 
[INFO] [stdout] 2243 +             // Deduce type from setter
[INFO] [stdout] 2244 +             if let Some(setter) = self.m_setter() {
[INFO] [stdout] 2245 +                 let signature: Thingy = setter.signature(host);
[INFO] [stdout] 2246 +                 if !signature.is::<UnresolvedThingy>() {
[INFO] [stdout] 2247 +                     deduced_type = Some(signature.params().get(0).unwrap().static_type.clone());
[INFO] [stdout] 2248 +                 }
[INFO] [stdout] 2249 +             }
[INFO] [stdout] 2250 + 
[INFO] [stdout] 2251 +             if deduced_type.is_none() {
[INFO] [stdout] 2252 +                 return host.unresolved_thingy();
[INFO] [stdout] 2253 +             }
[INFO] [stdout] 2254 + 
[INFO] [stdout] 2255 +             self.set_m_static_type(deduced_type.clone());
[INFO] [stdout] 2256 +             deduced_type.unwrap()
[INFO] [stdout] 2257 +         }
[INFO] [stdout] 2258 + 
[INFO] [stdout] 2259 +         pub override fn location(&self) -> Option<Location> {
[INFO] [stdout] 2260 +             self.m_location()
[INFO] [stdout] 2261 +         }
[INFO] [stdout] 2262 + 
[INFO] [stdout] 2263 +         pub override fn set_location(&self, loc: Option<Location>) {
[INFO] [stdout] 2264 +             self.set_m_location(loc);
[INFO] [stdout] 2265 +         }
[INFO] [stdout] 2266 + 
[INFO] [stdout] 2267 +         /// The event name indicated by a `[Bindable]` meta-data tag.
[INFO] [stdout] 2268 +         pub override fn bindable_event(&self) -> Option<String> {
[INFO] [stdout] 2269 +             self.m_bindable_event()
[INFO] [stdout] 2270 +         }
[INFO] [stdout] 2271 + 
[INFO] [stdout] 2272 +         pub override fn set_bindable_event(&self, name: Option<String>) {
[INFO] [stdout] 2273 +             self.set_m_bindable_event(name);
[INFO] [stdout] 2274 +         }
[INFO] [stdout] 2275 + 
[INFO] [stdout] 2276 +         pub override fn parent(&self) -> Option<Thingy> {
[INFO] [stdout] 2277 +             self.m_parent()
[INFO] [stdout] 2278 +         }
[INFO] [stdout] 2279 + 
[INFO] [stdout] 2280 +         pub override fn set_parent(&self, p: Option<Thingy>) {
[INFO] [stdout] 2281 +             self.set_m_parent(p);
[INFO] [stdout] 2282 +         }
[INFO] [stdout] 2283 + 
[INFO] [stdout] 2284 +         pub override fn asdoc(&self) -> Option<Rc<AsDoc>> {
[INFO] [stdout] 2285 +             self.m_asdoc()
[INFO] [stdout] 2286 +         }
[INFO] [stdout] 2287 + 
[INFO] [stdout] 2288 +         pub override fn set_asdoc(&self, asdoc: Option<Rc<AsDoc>>) {
[INFO] [stdout] 2289 +             self.set_m_asdoc(asdoc);
[INFO] [stdout] 2290 +         }
[INFO] [stdout] 2291 + 
[INFO] [stdout] 2292 +         override fn to_string_1(&self) -> String {
[INFO] [stdout] 2293 +             self.fully_qualified_name()
[INFO] [stdout] 2294 +         }
[INFO] [stdout] 2295 +     }
[INFO] [stdout] 2296 + 
[INFO] [stdout] 2297 +     pub struct VirtualSlotAfterSubstitution: VirtualSlot {
[INFO] [stdout] 2298 +         let ref m_origin: Option<Thingy> = None;
[INFO] [stdout] 2299 +         let ref m_indirect_type_params: SharedArray<Thingy> = SharedArray::new();
[INFO] [stdout] 2300 +         let ref m_indirect_substitute_types: SharedArray<Thingy> = SharedArray::new();
[INFO] [stdout] 2301 +         let ref m_getter: Option<Thingy> = None;
[INFO] [stdout] 2302 +         let ref m_setter: Option<Thingy> = None;
[INFO] [stdout] 2303 +         let ref m_static_type: Option<Thingy> = None;
[INFO] [stdout] 2304 + 
[INFO] [stdout] 2305 +         pub(crate) fn VirtualSlotAfterSubstitution(origin: &Thingy, indirect_type_params: &SharedArray<Thingy>, indirect_substitute_types: &SharedArray<Thingy>) {
[INFO] [stdout] 2306 +             super();
[INFO] [stdout] 2307 +             self.set_m_origin(Some(origin.clone()));
[INFO] [stdout] 2308 +             self.set_m_indirect_type_params(indirect_type_params.clone());
[INFO] [stdout] 2309 +             self.set_m_indirect_substitute_types(indirect_substitute_types.clone());
[INFO] [stdout] 2310 +         }
[INFO] [stdout] 2311 + 
[INFO] [stdout] 2312 +         pub override fn location(&self) -> Option<Location> {
[INFO] [stdout] 2313 +             None
[INFO] [stdout] 2314 +         }
[INFO] [stdout] 2315 + 
[INFO] [stdout] 2316 +         pub override fn origin(&self) -> Thingy {
[INFO] [stdout] 2317 +             self.m_origin().unwrap()
[INFO] [stdout] 2318 +         }
[INFO] [stdout] 2319 + 
[INFO] [stdout] 2320 +         pub override fn indirect_type_params(&self) -> SharedArray<Thingy> {
[INFO] [stdout] 2321 +             self.m_indirect_type_params()
[INFO] [stdout] 2322 +         }
[INFO] [stdout] 2323 + 
[INFO] [stdout] 2324 +         pub override fn indirect_substitute_types(&self) -> SharedArray<Thingy> {
[INFO] [stdout] 2325 +             self.m_indirect_substitute_types()
[INFO] [stdout] 2326 +         }
[INFO] [stdout] 2327 + 
[INFO] [stdout] 2328 +         pub override fn name(&self) -> QName {
[INFO] [stdout] 2329 +             self.origin().name()
[INFO] [stdout] 2330 +         }
[INFO] [stdout] 2331 + 
[INFO] [stdout] 2332 +         pub override fn getter(&self, host: &SemanticHost) -> Option<Thingy> {
[INFO] [stdout] 2333 +             if let Some(r) = self.m_getter() {
[INFO] [stdout] 2334 +                 return Some(r);
[INFO] [stdout] 2335 +             }
[INFO] [stdout] 2336 +             let r = self.origin().getter(host);
[INFO] [stdout] 2337 +             if r.is_none() {
[INFO] [stdout] 2338 +                 return r;
[INFO] [stdout] 2339 +             }
[INFO] [stdout] 2340 +             let r = TypeSubstitution(host).exec(&r.unwrap(), &self.indirect_type_params(), &self.indirect_substitute_types());
[INFO] [stdout] 2341 +             self.set_m_getter(Some(r.clone()));
[INFO] [stdout] 2342 +             Some(r)
[INFO] [stdout] 2343 +         }
[INFO] [stdout] 2344 + 
[INFO] [stdout] 2345 +         pub override fn setter(&self, host: &SemanticHost) -> Option<Thingy> {
[INFO] [stdout] 2346 +             if let Some(r) = self.m_setter() {
[INFO] [stdout] 2347 +                 return Some(r);
[INFO] [stdout] 2348 +             }
[INFO] [stdout] 2349 +             let r = self.origin().setter(host);
[INFO] [stdout] 2350 +             if r.is_none() {
[INFO] [stdout] 2351 +                 return r;
[INFO] [stdout] 2352 +             }
[INFO] [stdout] 2353 +             let r = TypeSubstitution(host).exec(&r.unwrap(), &self.indirect_type_params(), &self.indirect_substitute_types());
[INFO] [stdout] 2354 +             self.set_m_setter(Some(r.clone()));
[INFO] [stdout] 2355 +             Some(r)
[INFO] [stdout] 2356 +         }
[INFO] [stdout] 2357 + 
[INFO] [stdout] 2358 +         pub override fn is_external(&self) -> bool {
[INFO] [stdout] 2359 +             self.origin().is_external()
[INFO] [stdout] 2360 +         }
[INFO] [stdout] 2361 + 
[INFO] [stdout] 2362 +         pub override fn read_only(&self, host: &SemanticHost) -> bool {
[INFO] [stdout] 2363 +             self.origin().read_only(host)
[INFO] [stdout] 2364 +         }
[INFO] [stdout] 2365 + 
[INFO] [stdout] 2366 +         pub override fn write_only(&self, host: &SemanticHost) -> bool {
[INFO] [stdout] 2367 +             self.origin().write_only(host)
[INFO] [stdout] 2368 +         }
[INFO] [stdout] 2369 + 
[INFO] [stdout] 2370 +         pub override fn static_type(&self, host: &SemanticHost) -> Thingy {
[INFO] [stdout] 2371 +             if let Some(r) = self.m_static_type() {
[INFO] [stdout] 2372 +                 return r;
[INFO] [stdout] 2373 +             }
[INFO] [stdout] 2374 +             let r = self.origin().static_type(host);
[INFO] [stdout] 2375 +             if r.is::<UnresolvedThingy>() {
[INFO] [stdout] 2376 +                 return r;
[INFO] [stdout] 2377 +             }
[INFO] [stdout] 2378 +             let r = TypeSubstitution(host).exec(&r, &self.indirect_type_params(), &self.indirect_substitute_types());
[INFO] [stdout] 2379 +             self.set_m_static_type(Some(r.clone()));
[INFO] [stdout] 2380 +             r
[INFO] [stdout] 2381 +         }
[INFO] [stdout] 2382 + 
[INFO] [stdout] 2383 +         pub override fn bindable_event(&self) -> Option<String> {
[INFO] [stdout] 2384 +             self.origin().bindable_event()
[INFO] [stdout] 2385 +         }
[INFO] [stdout] 2386 + 
[INFO] [stdout] 2387 +         pub override fn parent(&self) -> Option<Thingy> {
[INFO] [stdout] 2388 +             self.origin().parent()
[INFO] [stdout] 2389 +         }
[INFO] [stdout] 2390 + 
[INFO] [stdout] 2391 +         pub override fn asdoc(&self) -> Option<Rc<AsDoc>> {
[INFO] [stdout] 2392 +             self.origin().asdoc()
[INFO] [stdout] 2393 +         }
[INFO] [stdout] 2394 + 
[INFO] [stdout] 2395 +         override fn to_string_1(&self) -> String {
[INFO] [stdout] 2396 +             self.fully_qualified_name()
[INFO] [stdout] 2397 +         }
[INFO] [stdout] 2398 +     }
[INFO] [stdout] 2399 + 
[INFO] [stdout] 2400 +     /// Either an *original* method slot, or a method slot after substitution.
[INFO] [stdout] 2401 +     pub struct MethodSlot: Thingy {
[INFO] [stdout] 2402 +         fn MethodSlot() {
[INFO] [stdout] 2403 +             super();
[INFO] [stdout] 2404 +         }
[INFO] [stdout] 2405 + 
[INFO] [stdout] 2406 +         #[inheritdoc]
[INFO] [stdout] 2407 +         pub override fn property_static_type(&self, host: &SemanticHost) -> Thingy {
[INFO] [stdout] 2408 +             host.function_type()
[INFO] [stdout] 2409 +         }
[INFO] [stdout] 2410 +     }
[INFO] [stdout] 2411 + 
[INFO] [stdout] 2412 +     pub struct OriginalMethodSlot: MethodSlot {
[INFO] [stdout] 2413 +         let ref m_name: Option<QName> = None;
[INFO] [stdout] 2414 +         let ref m_location: Option<Location> = None;
[INFO] [stdout] 2415 +         let ref m_asdoc: Option<Rc<AsDoc>> = None;
[INFO] [stdout] 2416 +         let ref m_metadata: SharedArray<Rc<Metadata>> = SharedArray::new();
[INFO] [stdout] 2417 +         let ref m_activation: Option<Thingy> = None;
[INFO] [stdout] 2418 +         let ref m_signature: Option<Thingy> = None;
[INFO] [stdout] 2419 +         let ref m_parent: Option<Thingy> = None;
[INFO] [stdout] 2420 +         let ref m_of_virtual_slot: Option<Thingy> = None;
[INFO] [stdout] 2421 +         let ref m_overriden_by: SharedArray<Thingy> = SharedArray::new();
[INFO] [stdout] 2422 +         let ref m_overrides_method: Option<Thingy> = None;
[INFO] [stdout] 2423 +         let m_flags: MethodSlotFlags = MethodSlotFlags::empty();
[INFO] [stdout] 2424 + 
[INFO] [stdout] 2425 +         pub(crate) fn OriginalMethodSlot(name: &QName, signature: &Thingy) {
[INFO] [stdout] 2426 +             super();
[INFO] [stdout] 2427 +             self.set_m_name(Some(name.clone()));
[INFO] [stdout] 2428 +             self.set_m_signature(Some(signature.clone()));
[INFO] [stdout] 2429 +         }
[INFO] [stdout] 2430 + 
[INFO] [stdout] 2431 +         pub override fn name(&self) -> QName {
[INFO] [stdout] 2432 +             self.m_name().unwrap()
[INFO] [stdout] 2433 +         }
[INFO] [stdout] 2434 + 
[INFO] [stdout] 2435 +         pub override fn is_external(&self) -> bool {
[INFO] [stdout] 2436 +             self.m_flags().contains(MethodSlotFlags::IS_EXTERNAL)
[INFO] [stdout] 2437 +         }
[INFO] [stdout] 2438 +     
[INFO] [stdout] 2439 +         pub override fn set_is_external(&self, value: bool) {
[INFO] [stdout] 2440 +             let mut v = self.m_flags();
[INFO] [stdout] 2441 +             v.set(MethodSlotFlags::IS_EXTERNAL, value);
[INFO] [stdout] 2442 +             self.set_m_flags(v);
[INFO] [stdout] 2443 +         }
[INFO] [stdout] 2444 + 
[INFO] [stdout] 2445 +         pub override fn is_final(&self) -> bool {
[INFO] [stdout] 2446 +             self.m_flags().contains(MethodSlotFlags::IS_FINAL)
[INFO] [stdout] 2447 +         }
[INFO] [stdout] 2448 +     
[INFO] [stdout] 2449 +         pub override fn set_is_final(&self, value: bool) {
[INFO] [stdout] 2450 +             let mut v = self.m_flags();
[INFO] [stdout] 2451 +             v.set(MethodSlotFlags::IS_FINAL, value);
[INFO] [stdout] 2452 +             self.set_m_flags(v);
[INFO] [stdout] 2453 +         }
[INFO] [stdout] 2454 + 
[INFO] [stdout] 2455 +         pub override fn is_static(&self) -> bool {
[INFO] [stdout] 2456 +             self.m_flags().contains(MethodSlotFlags::IS_STATIC)
[INFO] [stdout] 2457 +         }
[INFO] [stdout] 2458 +     
[INFO] [stdout] 2459 +         pub override fn set_is_static(&self, value: bool) {
[INFO] [stdout] 2460 +             let mut v = self.m_flags();
[INFO] [stdout] 2461 +             v.set(MethodSlotFlags::IS_STATIC, value);
[INFO] [stdout] 2462 +             self.set_m_flags(v);
[INFO] [stdout] 2463 +         }
[INFO] [stdout] 2464 + 
[INFO] [stdout] 2465 +         pub override fn is_abstract(&self) -> bool {
[INFO] [stdout] 2466 +             self.m_flags().contains(MethodSlotFlags::IS_ABSTRACT)
[INFO] [stdout] 2467 +         }
[INFO] [stdout] 2468 +     
[INFO] [stdout] 2469 +         pub override fn set_is_abstract(&self, value: bool) {
[INFO] [stdout] 2470 +             let mut v = self.m_flags();
[INFO] [stdout] 2471 +             v.set(MethodSlotFlags::IS_ABSTRACT, value);
[INFO] [stdout] 2472 +             self.set_m_flags(v);
[INFO] [stdout] 2473 +         }
[INFO] [stdout] 2474 + 
[INFO] [stdout] 2475 +         pub override fn is_overriding(&self) -> bool {
[INFO] [stdout] 2476 +             self.m_flags().contains(MethodSlotFlags::IS_OVERRIDING)
[INFO] [stdout] 2477 +         }
[INFO] [stdout] 2478 +     
[INFO] [stdout] 2479 +         pub override fn set_is_overriding(&self, value: bool) {
[INFO] [stdout] 2480 +             let mut v = self.m_flags();
[INFO] [stdout] 2481 +             v.set(MethodSlotFlags::IS_OVERRIDING, value);
[INFO] [stdout] 2482 +             self.set_m_flags(v);
[INFO] [stdout] 2483 +         }
[INFO] [stdout] 2484 + 
[INFO] [stdout] 2485 +         pub override fn is_async(&self) -> bool {
[INFO] [stdout] 2486 +             self.m_flags().contains(MethodSlotFlags::IS_ASYNC)
[INFO] [stdout] 2487 +         }
[INFO] [stdout] 2488 +     
[INFO] [stdout] 2489 +         pub override fn set_is_async(&self, value: bool) {
[INFO] [stdout] 2490 +             let mut v = self.m_flags();
[INFO] [stdout] 2491 +             v.set(MethodSlotFlags::IS_ASYNC, value);
[INFO] [stdout] 2492 +             self.set_m_flags(v);
[INFO] [stdout] 2493 +         }
[INFO] [stdout] 2494 + 
[INFO] [stdout] 2495 +         pub override fn is_generator(&self) -> bool {
[INFO] [stdout] 2496 +             self.m_flags().contains(MethodSlotFlags::IS_GENERATOR)
[INFO] [stdout] 2497 +         }
[INFO] [stdout] 2498 +     
[INFO] [stdout] 2499 +         pub override fn set_is_generator(&self, value: bool) {
[INFO] [stdout] 2500 +             let mut v = self.m_flags();
[INFO] [stdout] 2501 +             v.set(MethodSlotFlags::IS_GENERATOR, value);
[INFO] [stdout] 2502 +             self.set_m_flags(v);
[INFO] [stdout] 2503 +         }
[INFO] [stdout] 2504 + 
[INFO] [stdout] 2505 +         pub override fn is_constructor(&self) -> bool {
[INFO] [stdout] 2506 +             self.m_flags().contains(MethodSlotFlags::IS_CONSTRUCTOR)
[INFO] [stdout] 2507 +         }
[INFO] [stdout] 2508 +     
[INFO] [stdout] 2509 +         pub override fn set_is_constructor(&self, value: bool) {
[INFO] [stdout] 2510 +             let mut v = self.m_flags();
[INFO] [stdout] 2511 +             v.set(MethodSlotFlags::IS_CONSTRUCTOR, value);
[INFO] [stdout] 2512 +             self.set_m_flags(v);
[INFO] [stdout] 2513 +         }
[INFO] [stdout] 2514 + 
[INFO] [stdout] 2515 +         pub override fn location(&self) -> Option<Location> {
[INFO] [stdout] 2516 +             self.m_location()
[INFO] [stdout] 2517 +         }
[INFO] [stdout] 2518 +     
[INFO] [stdout] 2519 +         pub override fn set_location(&self, loc: Option<Location>) {
[INFO] [stdout] 2520 +             self.set_m_location(loc);
[INFO] [stdout] 2521 +         }
[INFO] [stdout] 2522 + 
[INFO] [stdout] 2523 +         pub override fn parent(&self) -> Option<Thingy> {
[INFO] [stdout] 2524 +             self.m_parent()
[INFO] [stdout] 2525 +         }
[INFO] [stdout] 2526 +     
[INFO] [stdout] 2527 +         pub override fn set_parent(&self, p: Option<Thingy>) {
[INFO] [stdout] 2528 +             self.set_m_parent(p);
[INFO] [stdout] 2529 +         }
[INFO] [stdout] 2530 +     
[INFO] [stdout] 2531 +         pub override fn asdoc(&self) -> Option<Rc<AsDoc>> {
[INFO] [stdout] 2532 +             self.m_asdoc()
[INFO] [stdout] 2533 +         }
[INFO] [stdout] 2534 +     
[INFO] [stdout] 2535 +         pub override fn set_asdoc(&self, asdoc: Option<Rc<AsDoc>>) {
[INFO] [stdout] 2536 +             self.set_m_asdoc(asdoc);
[INFO] [stdout] 2537 +         }
[INFO] [stdout] 2538 +     
[INFO] [stdout] 2539 +         pub override fn metadata(&self) -> SharedArray<Rc<Metadata>> {
[INFO] [stdout] 2540 +             self.m_metadata()
[INFO] [stdout] 2541 +         }
[INFO] [stdout] 2542 + 
[INFO] [stdout] 2543 +         pub override fn signature(&self, host: &SemanticHost) -> Thingy {
[INFO] [stdout] 2544 +             self.m_signature().unwrap()
[INFO] [stdout] 2545 +         }
[INFO] [stdout] 2546 + 
[INFO] [stdout] 2547 +         pub override fn set_signature(&self, signature: &Thingy) {
[INFO] [stdout] 2548 +             self.set_m_signature(Some(signature.clone()));
[INFO] [stdout] 2549 +         }
[INFO] [stdout] 2550 + 
[INFO] [stdout] 2551 +         pub override fn activation(&self) -> Option<Thingy> {
[INFO] [stdout] 2552 +             self.m_activation()
[INFO] [stdout] 2553 +         }
[INFO] [stdout] 2554 + 
[INFO] [stdout] 2555 +         pub override fn set_activation(&self, activation: Option<Thingy>) {
[INFO] [stdout] 2556 +             self.set_m_activation(activation);
[INFO] [stdout] 2557 +         }
[INFO] [stdout] 2558 + 
[INFO] [stdout] 2559 +         pub override fn of_virtual_slot(&self, host: &SemanticHost) -> Option<Thingy> {
[INFO] [stdout] 2560 +             self.m_of_virtual_slot()
[INFO] [stdout] 2561 +         }
[INFO] [stdout] 2562 + 
[INFO] [stdout] 2563 +         pub override fn set_of_virtual_slot(&self, virtual_slot: Option<Thingy>) {
[INFO] [stdout] 2564 +             self.set_m_of_virtual_slot(virtual_slot);
[INFO] [stdout] 2565 +         }
[INFO] [stdout] 2566 + 
[INFO] [stdout] 2567 +         pub override fn overriden_by(&self, host: &SemanticHost) -> SharedArray<Thingy> {
[INFO] [stdout] 2568 +             self.m_overriden_by()
[INFO] [stdout] 2569 +         }
[INFO] [stdout] 2570 + 
[INFO] [stdout] 2571 +         pub override fn overrides_method(&self, host: &SemanticHost) -> Option<Thingy> {
[INFO] [stdout] 2572 +             self.m_overrides_method()
[INFO] [stdout] 2573 +         }
[INFO] [stdout] 2574 + 
[INFO] [stdout] 2575 +         pub override fn set_overrides_method(&self, method: Option<Thingy>) {
[INFO] [stdout] 2576 +             self.set_m_overrides_method(method);
[INFO] [stdout] 2577 +         }
[INFO] [stdout] 2578 + 
[INFO] [stdout] 2579 +         override fn to_string_1(&self) -> String {
[INFO] [stdout] 2580 +             self.fully_qualified_name()
[INFO] [stdout] 2581 +         }
[INFO] [stdout] 2582 +     }
[INFO] [stdout] 2583 + 
[INFO] [stdout] 2584 +     pub struct MethodSlotAfterSubstitution: MethodSlot {
[INFO] [stdout] 2585 +         let ref m_origin: Option<Thingy> = None;
[INFO] [stdout] 2586 +         let ref m_indirect_type_params: SharedArray<Thingy> = SharedArray::new();
[INFO] [stdout] 2587 +         let ref m_indirect_substitute_types: SharedArray<Thingy> = SharedArray::new();
[INFO] [stdout] 2588 +         let ref m_signature: Option<Thingy> = None;
[INFO] [stdout] 2589 +         let ref m_of_virtual_slot: Option<Thingy> = None;
[INFO] [stdout] 2590 +         let ref m_overriden_by: Option<SharedArray<Thingy>> = None;
[INFO] [stdout] 2591 +         let ref m_overrides_method: Option<Thingy> = None;
[INFO] [stdout] 2592 +         let m_is_overriding: bool = false;
[INFO] [stdout] 2593 + 
[INFO] [stdout] 2594 +         pub fn MethodSlotAfterSubstitution(origin: &Thingy, indirect_type_params: &SharedArray<Thingy>, indirect_substitute_types: &SharedArray<Thingy>) {
[INFO] [stdout] 2595 +             super();
[INFO] [stdout] 2596 +             self.set_m_origin(Some(origin.clone()));
[INFO] [stdout] 2597 +             self.set_m_indirect_type_params(indirect_type_params.clone());
[INFO] [stdout] 2598 +             self.set_m_indirect_substitute_types(indirect_substitute_types.clone());
[INFO] [stdout] 2599 +         }
[INFO] [stdout] 2600 + 
[INFO] [stdout] 2601 +         pub override fn origin(&self) -> Thingy {
[INFO] [stdout] 2602 +             self.m_origin().unwrap()
[INFO] [stdout] 2603 +         }
[INFO] [stdout] 2604 + 
[INFO] [stdout] 2605 +         pub override fn indirect_type_params(&self) -> SharedArray<Thingy> {
[INFO] [stdout] 2606 +             self.m_indirect_type_params()
[INFO] [stdout] 2607 +         }
[INFO] [stdout] 2608 + 
[INFO] [stdout] 2609 +         pub override fn indirect_substitute_types(&self) -> SharedArray<Thingy> {
[INFO] [stdout] 2610 +             self.m_indirect_substitute_types()
[INFO] [stdout] 2611 +         }
[INFO] [stdout] 2612 + 
[INFO] [stdout] 2613 +         pub override fn name(&self) -> QName {
[INFO] [stdout] 2614 +             self.origin().name()
[INFO] [stdout] 2615 +         }
[INFO] [stdout] 2616 + 
[INFO] [stdout] 2617 +         pub override fn is_external(&self) -> bool {
[INFO] [stdout] 2618 +             self.origin().is_external()
[INFO] [stdout] 2619 +         }
[INFO] [stdout] 2620 + 
[INFO] [stdout] 2621 +         pub override fn is_final(&self) -> bool {
[INFO] [stdout] 2622 +             self.origin().is_final()
[INFO] [stdout] 2623 +         }
[INFO] [stdout] 2624 + 
[INFO] [stdout] 2625 +         pub override fn is_static(&self) -> bool {
[INFO] [stdout] 2626 +             self.origin().is_static()
[INFO] [stdout] 2627 +         }
[INFO] [stdout] 2628 + 
[INFO] [stdout] 2629 +         pub override fn is_abstract(&self) -> bool {
[INFO] [stdout] 2630 +             self.origin().is_abstract()
[INFO] [stdout] 2631 +         }
[INFO] [stdout] 2632 + 
[INFO] [stdout] 2633 +         pub override fn is_overriding(&self) -> bool {
[INFO] [stdout] 2634 +             self.m_is_overriding()
[INFO] [stdout] 2635 +         }
[INFO] [stdout] 2636 + 
[INFO] [stdout] 2637 +         pub override fn set_is_overriding(&self, value: bool) {
[INFO] [stdout] 2638 +             self.set_m_is_overriding(value);
[INFO] [stdout] 2639 +         }
[INFO] [stdout] 2640 + 
[INFO] [stdout] 2641 +         pub override fn is_async(&self) -> bool {
[INFO] [stdout] 2642 +             self.origin().is_async()
[INFO] [stdout] 2643 +         }
[INFO] [stdout] 2644 + 
[INFO] [stdout] 2645 +         pub override fn is_generator(&self) -> bool {
[INFO] [stdout] 2646 +             self.origin().is_generator()
[INFO] [stdout] 2647 +         }
[INFO] [stdout] 2648 + 
[INFO] [stdout] 2649 +         pub override fn is_constructor(&self) -> bool {
[INFO] [stdout] 2650 +             self.origin().is_constructor()
[INFO] [stdout] 2651 +         }
[INFO] [stdout] 2652 + 
[INFO] [stdout] 2653 +         pub override fn location(&self) -> Option<Location> {
[INFO] [stdout] 2654 +             None
[INFO] [stdout] 2655 +         }
[INFO] [stdout] 2656 + 
[INFO] [stdout] 2657 +         pub override fn parent(&self) -> Option<Thingy> {
[INFO] [stdout] 2658 +             self.origin().parent()
[INFO] [stdout] 2659 +         }
[INFO] [stdout] 2660 +     
[INFO] [stdout] 2661 +         pub override fn asdoc(&self) -> Option<Rc<AsDoc>> {
[INFO] [stdout] 2662 +             self.origin().asdoc()
[INFO] [stdout] 2663 +         }
[INFO] [stdout] 2664 +     
[INFO] [stdout] 2665 +         pub override fn metadata(&self) -> SharedArray<Rc<Metadata>> {
[INFO] [stdout] 2666 +             self.origin().metadata()
[INFO] [stdout] 2667 +         }
[INFO] [stdout] 2668 + 
[INFO] [stdout] 2669 +         pub override fn signature(&self, host: &SemanticHost) -> Thingy {
[INFO] [stdout] 2670 +             if let Some(r) = self.m_signature() {
[INFO] [stdout] 2671 +                 return r;
[INFO] [stdout] 2672 +             }
[INFO] [stdout] 2673 +             let r = self.origin().signature(host);
[INFO] [stdout] 2674 +             if r.is::<UnresolvedThingy>() {
[INFO] [stdout] 2675 +                 return r.clone();
[INFO] [stdout] 2676 +             }
[INFO] [stdout] 2677 +             let r = TypeSubstitution(host).exec(&r, &self.m_indirect_type_params(), &self.m_indirect_substitute_types());
[INFO] [stdout] 2678 +             self.set_m_signature(Some(r.clone()));
[INFO] [stdout] 2679 +             r
[INFO] [stdout] 2680 +         }
[INFO] [stdout] 2681 + 
[INFO] [stdout] 2682 +         pub override fn of_virtual_slot(&self, host: &SemanticHost) -> Option<Thingy> {
[INFO] [stdout] 2683 +             if let Some(r) = self.m_of_virtual_slot() {
[INFO] [stdout] 2684 +                 return Some(r);
[INFO] [stdout] 2685 +             }
[INFO] [stdout] 2686 +             let r = self.origin().of_virtual_slot(host);
[INFO] [stdout] 2687 +             if r.is_none() {
[INFO] [stdout] 2688 +                 return None;
[INFO] [stdout] 2689 +             }
[INFO] [stdout] 2690 +             let r = TypeSubstitution(host).exec(&r.unwrap(), &self.m_indirect_type_params(), &self.m_indirect_substitute_types());
[INFO] [stdout] 2691 +             self.set_m_of_virtual_slot(Some(r.clone()));
[INFO] [stdout] 2692 +             Some(r)
[INFO] [stdout] 2693 +         }
[INFO] [stdout] 2694 + 
[INFO] [stdout] 2695 +         pub override fn overriden_by(&self, host: &SemanticHost) -> SharedArray<Thingy> {
[INFO] [stdout] 2696 +             if let Some(r) = self.m_overriden_by() {
[INFO] [stdout] 2697 +                 return r;
[INFO] [stdout] 2698 +             }
[INFO] [stdout] 2699 +             let r = self.origin().overriden_by(host);
[INFO] [stdout] 2700 +             let r: SharedArray<Thingy> = r.iter().map(|r| TypeSubstitution(host).exec(&r, &self.m_indirect_type_params(), &self.indirect_substitute_types())).collect();
[INFO] [stdout] 2701 +             self.set_m_overriden_by(Some(r.clone()));
[INFO] [stdout] 2702 +             r
[INFO] [stdout] 2703 +         }
[INFO] [stdout] 2704 + 
[INFO] [stdout] 2705 +         pub override fn overrides_method(&self, host: &SemanticHost) -> Option<Thingy> {
[INFO] [stdout] 2706 +             if let Some(r) = self.m_overrides_method() {
[INFO] [stdout] 2707 +                 return Some(r);
[INFO] [stdout] 2708 +             }
[INFO] [stdout] 2709 +             let r = self.origin().overrides_method(host);
[INFO] [stdout] 2710 +             if r.is_none() {
[INFO] [stdout] 2711 +                 return None;
[INFO] [stdout] 2712 +             }
[INFO] [stdout] 2713 +             let r = TypeSubstitution(host).exec(&r.unwrap(), &self.m_indirect_type_params(), &self.m_indirect_substitute_types());
[INFO] [stdout] 2714 +             self.set_m_overrides_method(Some(r.clone()));
[INFO] [stdout] 2715 +             Some(r)
[INFO] [stdout] 2716 +         }
[INFO] [stdout] 2717 + 
[INFO] [stdout] 2718 +         pub override fn set_overrides_method(&self, method: Option<Thingy>) {
[INFO] [stdout] 2719 +             self.set_m_overrides_method(method);
[INFO] [stdout] 2720 +         }
[INFO] [stdout] 2721 + 
[INFO] [stdout] 2722 +         override fn to_string_1(&self) -> String {
[INFO] [stdout] 2723 +             self.fully_qualified_name()
[INFO] [stdout] 2724 +         }
[INFO] [stdout] 2725 +     }
[INFO] [stdout] 2726 + 
[INFO] [stdout] 2727 +     pub struct Scope: Thingy {
[INFO] [stdout] 2728 +         let ref m_parent: Option<Thingy> = None;
[INFO] [stdout] 2729 +         let ref m_properties: NameMap = NameMap::new();
[INFO] [stdout] 2730 +         let ref m_open_ns_set: SharedArray<Thingy> = SharedArray::new();
[INFO] [stdout] 2731 +         let ref m_import_list: SharedArray<Thingy> = SharedArray::new();
[INFO] [stdout] 2732 + 
[INFO] [stdout] 2733 +         pub(crate) fn Scope() {
[INFO] [stdout] 2734 +             super();
[INFO] [stdout] 2735 +         }
[INFO] [stdout] 2736 + 
[INFO] [stdout] 2737 +         pub override fn parent(&self) -> Option<Thingy> {
[INFO] [stdout] 2738 +             self.m_parent()
[INFO] [stdout] 2739 +         }
[INFO] [stdout] 2740 + 
[INFO] [stdout] 2741 +         pub override fn set_parent(&self, p: Option<Thingy>) {
[INFO] [stdout] 2742 +             self.set_m_parent(p);
[INFO] [stdout] 2743 +         }
[INFO] [stdout] 2744 + 
[INFO] [stdout] 2745 +         pub override fn properties(&self, host: &SemanticHost) -> NameMap {
[INFO] [stdout] 2746 +             self.m_properties()
[INFO] [stdout] 2747 +         }
[INFO] [stdout] 2748 + 
[INFO] [stdout] 2749 +         pub override fn open_ns_set(&self) -> SharedArray<Thingy> {
[INFO] [stdout] 2750 +             self.m_open_ns_set()
[INFO] [stdout] 2751 +         }
[INFO] [stdout] 2752 + 
[INFO] [stdout] 2753 +         /// List of [`PackagePropertyImport`], [`PackageWildcardImport`], or [`PackageRecursiveImport`].
[INFO] [stdout] 2754 +         pub override fn import_list(&self) -> SharedArray<Thingy> {
[INFO] [stdout] 2755 +             self.m_import_list()
[INFO] [stdout] 2756 +         }
[INFO] [stdout] 2757 +     }
[INFO] [stdout] 2758 + 
[INFO] [stdout] 2759 +     pub struct WithScope: Scope {
[INFO] [stdout] 2760 +         let ref m_object: Option<Thingy> = None;
[INFO] [stdout] 2761 + 
[INFO] [stdout] 2762 +         pub(crate) fn WithScope(object: &Thingy) {
[INFO] [stdout] 2763 +             super();
[INFO] [stdout] 2764 +             self.set_m_object(Some(object.clone()));
[INFO] [stdout] 2765 +         }
[INFO] [stdout] 2766 + 
[INFO] [stdout] 2767 +         pub override fn object(&self) -> Thingy {
[INFO] [stdout] 2768 +             self.m_object().unwrap()
[INFO] [stdout] 2769 +         }
[INFO] [stdout] 2770 +     }
[INFO] [stdout] 2771 + 
[INFO] [stdout] 2772 +     pub struct FilterScope: Scope {
[INFO] [stdout] 2773 +         let ref m_base: Option<Thingy> = None;
[INFO] [stdout] 2774 + 
[INFO] [stdout] 2775 +         pub(crate) fn FilterScope(base: &Thingy) {
[INFO] [stdout] 2776 +             super();
[INFO] [stdout] 2777 +             self.set_m_base(Some(base.clone()));
[INFO] [stdout] 2778 +         }
[INFO] [stdout] 2779 + 
[INFO] [stdout] 2780 +         pub override fn base(&self) -> Thingy {
[INFO] [stdout] 2781 +             self.m_base().unwrap()
[INFO] [stdout] 2782 +         }
[INFO] [stdout] 2783 +     }
[INFO] [stdout] 2784 + 
[INFO] [stdout] 2785 +     pub struct Activation: Scope {
[INFO] [stdout] 2786 +         let ref m_method: Option<Thingy> = None;
[INFO] [stdout] 2787 +         let ref m_this: Option<Thingy> = None;
[INFO] [stdout] 2788 +         let ref m_property_has_capture: Option<SharedArray<Thingy>> = None;
[INFO] [stdout] 2789 +         let ref m_cfg: ControlFlowGraph = ControlFlowGraph::new();
[INFO] [stdout] 2790 + 
[INFO] [stdout] 2791 +         pub(crate) fn Activation(of_method: &Thingy) {
[INFO] [stdout] 2792 +             super();
[INFO] [stdout] 2793 +             self.set_m_method(Some(of_method.clone()));
[INFO] [stdout] 2794 +         }
[INFO] [stdout] 2795 + 
[INFO] [stdout] 2796 +         pub override fn of_method(&self) -> Thingy {
[INFO] [stdout] 2797 +             self.m_method().unwrap()
[INFO] [stdout] 2798 +         }
[INFO] [stdout] 2799 + 
[INFO] [stdout] 2800 +         /// An optional `ThisObject` value.
[INFO] [stdout] 2801 +         pub override fn this(&self) -> Option<Thingy> {
[INFO] [stdout] 2802 +             self.m_this()
[INFO] [stdout] 2803 +         }
[INFO] [stdout] 2804 + 
[INFO] [stdout] 2805 +         /// Sets a `ThisObject` value.
[INFO] [stdout] 2806 +         pub override fn set_this(&self, this: Option<Thingy>) {
[INFO] [stdout] 2807 +             self.set_m_this(this);
[INFO] [stdout] 2808 +         }
[INFO] [stdout] 2809 + 
[INFO] [stdout] 2810 +         /// Indicates whether an activation's property has been captured
[INFO] [stdout] 2811 +         /// by a subsequent activation. Properties include, for example, the range from the
[INFO] [stdout] 2812 +         /// activation to an inner most block scope.
[INFO] [stdout] 2813 +         pub override fn property_has_capture(&self, property: &Thingy) -> bool {
[INFO] [stdout] 2814 +             if let Some(set) = self.m_property_has_capture() {
[INFO] [stdout] 2815 +                 set.includes(property)
[INFO] [stdout] 2816 +             } else {
[INFO] [stdout] 2817 +                 false
[INFO] [stdout] 2818 +             }
[INFO] [stdout] 2819 +         }
[INFO] [stdout] 2820 + 
[INFO] [stdout] 2821 +         pub override fn set_property_has_capture(&self, property: &Thingy, value: bool) {
[INFO] [stdout] 2822 +             if let Some(mut set) = self.m_property_has_capture() {
[INFO] [stdout] 2823 +                 if value {
[INFO] [stdout] 2824 +                     if !set.includes(property) {
[INFO] [stdout] 2825 +                         set.push(property.clone());
[INFO] [stdout] 2826 +                     }
[INFO] [stdout] 2827 +                 } else {
[INFO] [stdout] 2828 +                     let i = set.index_of(property);
[INFO] [stdout] 2829 +                     if let Some(i) = i {
[INFO] [stdout] 2830 +                         set.remove(i);
[INFO] [stdout] 2831 +                     }
[INFO] [stdout] 2832 +                 }
[INFO] [stdout] 2833 +             } else if value {
[INFO] [stdout] 2834 +                 self.set_m_property_has_capture(Some(shared_array![property.clone()]));
[INFO] [stdout] 2835 +             }
[INFO] [stdout] 2836 +         }
[INFO] [stdout] 2837 +     }
[INFO] [stdout] 2838 + 
[INFO] [stdout] 2839 +     pub struct ClassScope: Scope {
[INFO] [stdout] 2840 +         let ref m_class: Option<Thingy> = None;
[INFO] [stdout] 2841 + 
[INFO] [stdout] 2842 +         pub(crate) fn ClassScope(class: &Thingy) {
[INFO] [stdout] 2843 +             super();
[INFO] [stdout] 2844 +             self.set_m_class(Some(class.clone()));
[INFO] [stdout] 2845 +         }
[INFO] [stdout] 2846 + 
[INFO] [stdout] 2847 +         pub override fn class(&self) -> Thingy {
[INFO] [stdout] 2848 +             self.m_class().unwrap()
[INFO] [stdout] 2849 +         }
[INFO] [stdout] 2850 +     }
[INFO] [stdout] 2851 + 
[INFO] [stdout] 2852 +     pub struct EnumScope: Scope {
[INFO] [stdout] 2853 +         let ref m_class: Option<Thingy> = None;
[INFO] [stdout] 2854 + 
[INFO] [stdout] 2855 +         pub(crate) fn EnumScope(class: &Thingy) {
[INFO] [stdout] 2856 +             super();
[INFO] [stdout] 2857 +             self.set_m_class(Some(class.clone()));
[INFO] [stdout] 2858 +         }
[INFO] [stdout] 2859 + 
[INFO] [stdout] 2860 +         pub override fn class(&self) -> Thingy {
[INFO] [stdout] 2861 +             self.m_class().unwrap()
[INFO] [stdout] 2862 +         }
[INFO] [stdout] 2863 +     }
[INFO] [stdout] 2864 + 
[INFO] [stdout] 2865 +     pub struct InterfaceScope: Scope {
[INFO] [stdout] 2866 +         let ref m_itrfc: Option<Thingy> = None;
[INFO] [stdout] 2867 + 
[INFO] [stdout] 2868 +         pub(crate) fn InterfaceScope(itrfc: &Thingy) {
[INFO] [stdout] 2869 +             super();
[INFO] [stdout] 2870 +             self.set_m_itrfc(Some(itrfc.clone()));
[INFO] [stdout] 2871 +         }
[INFO] [stdout] 2872 + 
[INFO] [stdout] 2873 +         pub override fn interface(&self) -> Thingy {
[INFO] [stdout] 2874 +             self.m_itrfc().unwrap()
[INFO] [stdout] 2875 +         }
[INFO] [stdout] 2876 +     }
[INFO] [stdout] 2877 + 
[INFO] [stdout] 2878 +     pub struct PackageScope: Scope {
[INFO] [stdout] 2879 +         let ref m_pckg: Option<Thingy> = None;
[INFO] [stdout] 2880 + 
[INFO] [stdout] 2881 +         pub(crate) fn PackageScope(pckg: &Thingy) {
[INFO] [stdout] 2882 +             super();
[INFO] [stdout] 2883 +             self.set_m_pckg(Some(pckg.clone()));
[INFO] [stdout] 2884 +         }
[INFO] [stdout] 2885 + 
[INFO] [stdout] 2886 +         pub override fn package(&self) -> Thingy {
[INFO] [stdout] 2887 +             self.m_pckg().unwrap()
[INFO] [stdout] 2888 +         }
[INFO] [stdout] 2889 +     }
[INFO] [stdout] 2890 + 
[INFO] [stdout] 2891 +     pub struct Value: Thingy {
[INFO] [stdout] 2892 +         let ref m_static_type: Option<Thingy> = None;
[INFO] [stdout] 2893 + 
[INFO] [stdout] 2894 +         pub(crate) fn Value(static_type: &Thingy) {
[INFO] [stdout] 2895 +             super();
[INFO] [stdout] 2896 +             self.set_m_static_type(Some(static_type.clone()));
[INFO] [stdout] 2897 +         }
[INFO] [stdout] 2898 + 
[INFO] [stdout] 2899 +         pub override fn static_type(&self, host: &SemanticHost) -> Thingy {
[INFO] [stdout] 2900 +             self.m_static_type().unwrap()
[INFO] [stdout] 2901 +         }
[INFO] [stdout] 2902 + 
[INFO] [stdout] 2903 +         pub override fn set_static_type(&self, value: Thingy) {
[INFO] [stdout] 2904 +             self.set_m_static_type(Some(value));
[INFO] [stdout] 2905 +         }
[INFO] [stdout] 2906 + 
[INFO] [stdout] 2907 +         #[inheritdoc]
[INFO] [stdout] 2908 +         pub override fn property_static_type(&self, host: &SemanticHost) -> Thingy {
[INFO] [stdout] 2909 +             self.static_type(host)
[INFO] [stdout] 2910 +         }
[INFO] [stdout] 2911 +     }
[INFO] [stdout] 2912 + 
[INFO] [stdout] 2913 +     pub struct PackagePropertyImport: Value {
[INFO] [stdout] 2914 +         let ref m_property: Option<Thingy> = None;
[INFO] [stdout] 2915 +         let ref m_location: Option<Location> = None;
[INFO] [stdout] 2916 + 
[INFO] [stdout] 2917 +         pub(crate) fn PackagePropertyImport(property: &Thingy, location: Option<Location>, static_type: &Thingy) {
[INFO] [stdout] 2918 +             super(static_type);
[INFO] [stdout] 2919 +             self.set_m_property(Some(property.clone()));
[INFO] [stdout] 2920 +             self.set_m_location(location);
[INFO] [stdout] 2921 +         }
[INFO] [stdout] 2922 + 
[INFO] [stdout] 2923 +         pub override fn property(&self) -> Thingy {
[INFO] [stdout] 2924 +             self.m_property().unwrap()
[INFO] [stdout] 2925 +         }
[INFO] [stdout] 2926 + 
[INFO] [stdout] 2927 +         pub override fn location(&self) -> Option<Location> {
[INFO] [stdout] 2928 +             self.m_location()
[INFO] [stdout] 2929 +         }
[INFO] [stdout] 2930 + 
[INFO] [stdout] 2931 +         pub override fn set_location(&self, loc: Option<Location>) {
[INFO] [stdout] 2932 +             self.set_m_location(loc);
[INFO] [stdout] 2933 +         }
[INFO] [stdout] 2934 +     }
[INFO] [stdout] 2935 + 
[INFO] [stdout] 2936 +     pub struct PackageWildcardImport: Value {
[INFO] [stdout] 2937 +         let ref m_package: Option<Thingy> = None;
[INFO] [stdout] 2938 +         let ref m_location: Option<Location> = None;
[INFO] [stdout] 2939 + 
[INFO] [stdout] 2940 +         pub(crate) fn PackageWildcardImport(package: &Thingy, location: Option<Location>, static_type: &Thingy) {
[INFO] [stdout] 2941 +             super(static_type);
[INFO] [stdout] 2942 +             self.set_m_package(Some(package.clone()));
[INFO] [stdout] 2943 +             self.set_m_location(location);
[INFO] [stdout] 2944 +         }
[INFO] [stdout] 2945 + 
[INFO] [stdout] 2946 +         pub override fn package(&self) -> Thingy {
[INFO] [stdout] 2947 +             self.m_package().unwrap()
[INFO] [stdout] 2948 +         }
[INFO] [stdout] 2949 + 
[INFO] [stdout] 2950 +         pub override fn location(&self) -> Option<Location> {
[INFO] [stdout] 2951 +             self.m_location()
[INFO] [stdout] 2952 +         }
[INFO] [stdout] 2953 + 
[INFO] [stdout] 2954 +         pub override fn set_location(&self, loc: Option<Location>) {
[INFO] [stdout] 2955 +             self.set_m_location(loc);
[INFO] [stdout] 2956 +         }
[INFO] [stdout] 2957 +     }
[INFO] [stdout] 2958 + 
[INFO] [stdout] 2959 +     pub struct PackageRecursiveImport: Value {
[INFO] [stdout] 2960 +         let ref m_package: Option<Thingy> = None;
[INFO] [stdout] 2961 +         let ref m_location: Option<Location> = None;
[INFO] [stdout] 2962 + 
[INFO] [stdout] 2963 +         pub(crate) fn PackageRecursiveImport(package: &Thingy, location: Option<Location>, static_type: &Thingy) {
[INFO] [stdout] 2964 +             super(static_type);
[INFO] [stdout] 2965 +             self.set_m_package(Some(package.clone()));
[INFO] [stdout] 2966 +             self.set_m_location(location);
[INFO] [stdout] 2967 +         }
[INFO] [stdout] 2968 + 
[INFO] [stdout] 2969 +         pub override fn package(&self) -> Thingy {
[INFO] [stdout] 2970 +             self.m_package().unwrap()
[INFO] [stdout] 2971 +         }
[INFO] [stdout] 2972 + 
[INFO] [stdout] 2973 +         pub override fn location(&self) -> Option<Location> {
[INFO] [stdout] 2974 +             self.m_location()
[INFO] [stdout] 2975 +         }
[INFO] [stdout] 2976 + 
[INFO] [stdout] 2977 +         pub override fn set_location(&self, loc: Option<Location>) {
[INFO] [stdout] 2978 +             self.set_m_location(loc);
[INFO] [stdout] 2979 +         }
[INFO] [stdout] 2980 +     }
[INFO] [stdout] 2981 + 
[INFO] [stdout] 2982 +     pub struct Constant: Value {
[INFO] [stdout] 2983 +         pub(crate) fn Constant(static_type: &Thingy) {
[INFO] [stdout] 2984 +             super(static_type);
[INFO] [stdout] 2985 +         }
[INFO] [stdout] 2986 +     }
[INFO] [stdout] 2987 + 
[INFO] [stdout] 2988 +     /// Constant with possible types being `*` or `Object`.
[INFO] [stdout] 2989 +     pub struct UndefinedConstant: Constant {
[INFO] [stdout] 2990 +         pub(crate) fn UndefinedConstant(static_type: &Thingy) {
[INFO] [stdout] 2991 +             super(static_type);
[INFO] [stdout] 2992 +         }
[INFO] [stdout] 2993 + 
[INFO] [stdout] 2994 +         pub override fn clone_constant(&self, host: &SemanticHost) -> Thingy {
[INFO] [stdout] 2995 +             host.factory().create_undefined_constant(&self.static_type(host))
[INFO] [stdout] 2996 +         }
[INFO] [stdout] 2997 +     }
[INFO] [stdout] 2998 + 
[INFO] [stdout] 2999 +     pub struct NullConstant: Constant {
[INFO] [stdout] 3000 +         pub(crate) fn NullConstant(static_type: &Thingy) {
[INFO] [stdout] 3001 +             super(static_type);
[INFO] [stdout] 3002 +         }
[INFO] [stdout] 3003 + 
[INFO] [stdout] 3004 + 
[INFO] [stdout] 3005 + 
[INFO] [stdout] 3006 +         pub override fn clone_constant(&self, host: &SemanticHost) -> Thingy {
[INFO] [stdout] 3007 +             host.factory().create_null_constant(&self.static_type(host))
[INFO] [stdout] 3008 +         }
[INFO] [stdout] 3009 +     }
[INFO] [stdout] 3010 + 
[INFO] [stdout] 3011 +     pub struct NumberConstant: Constant {
[INFO] [stdout] 3012 +         let ref m_value: NumberVariant = NumberVariant::Int(0);
[INFO] [stdout] 3013 + 
[INFO] [stdout] 3014 +         pub(crate) fn NumberConstant(value: NumberVariant, static_type: &Thingy) {
[INFO] [stdout] 3015 +             super(static_type);
[INFO] [stdout] 3016 +             self.set_m_value(value);
[INFO] [stdout] 3017 +         }
[INFO] [stdout] 3018 + 
[INFO] [stdout] 3019 +         pub override fn number_value(&self) -> NumberVariant {
[INFO] [stdout] 3020 +             self.m_value()
[INFO] [stdout] 3021 +         }
[INFO] [stdout] 3022 + 
[INFO] [stdout] 3023 +         pub override fn clone_constant(&self, host: &SemanticHost) -> Thingy {
[INFO] [stdout] 3024 +             host.factory().create_number_constant(self.m_value(), &self.static_type(host))
[INFO] [stdout] 3025 +         }
[INFO] [stdout] 3026 +     }
[INFO] [stdout] 3027 + 
[INFO] [stdout] 3028 +     pub struct StringConstant: Constant {
[INFO] [stdout] 3029 +         let ref m_value: String = String::new();
[INFO] [stdout] 3030 + 
[INFO] [stdout] 3031 +         pub(crate) fn StringConstant(value: String, static_type: &Thingy) {
[INFO] [stdout] 3032 +             super(static_type);
[INFO] [stdout] 3033 +             self.set_m_value(value);
[INFO] [stdout] 3034 +         }
[INFO] [stdout] 3035 + 
[INFO] [stdout] 3036 +         pub override fn string_value(&self) -> String {
[INFO] [stdout] 3037 +             self.m_value()
[INFO] [stdout] 3038 +         }
[INFO] [stdout] 3039 + 
[INFO] [stdout] 3040 +         pub override fn clone_constant(&self, host: &SemanticHost) -> Thingy {
[INFO] [stdout] 3041 +             host.factory().create_string_constant(self.m_value(), &self.static_type(host))
[INFO] [stdout] 3042 +         }
[INFO] [stdout] 3043 +     }
[INFO] [stdout] 3044 + 
[INFO] [stdout] 3045 +     pub struct BooleanConstant: Constant {
[INFO] [stdout] 3046 +         let m_value: bool = true;
[INFO] [stdout] 3047 + 
[INFO] [stdout] 3048 +         pub(crate) fn BooleanConstant(value: bool, static_type: &Thingy) {
[INFO] [stdout] 3049 +             super(static_type);
[INFO] [stdout] 3050 +             self.set_m_value(value);
[INFO] [stdout] 3051 +         }
[INFO] [stdout] 3052 + 
[INFO] [stdout] 3053 +         pub override fn boolean_value(&self) -> bool {
[INFO] [stdout] 3054 +             self.m_value()
[INFO] [stdout] 3055 +         }
[INFO] [stdout] 3056 + 
[INFO] [stdout] 3057 +         pub override fn clone_constant(&self, host: &SemanticHost) -> Thingy {
[INFO] [stdout] 3058 +             host.factory().create_boolean_constant(self.m_value(), &self.static_type(host))
[INFO] [stdout] 3059 +         }
[INFO] [stdout] 3060 +     }
[INFO] [stdout] 3061 + 
[INFO] [stdout] 3062 +     pub struct ThisObject: Value {
[INFO] [stdout] 3063 +         pub(crate) fn ThisObject(static_type: &Thingy) {
[INFO] [stdout] 3064 +             super(static_type);
[INFO] [stdout] 3065 +         }
[INFO] [stdout] 3066 +     }
[INFO] [stdout] 3067 + 
[INFO] [stdout] 3068 +     /// The `import.meta` value.
[INFO] [stdout] 3069 +     pub struct MetaProperty: Value {
[INFO] [stdout] 3070 +         pub(crate) fn MetaProperty(static_type: &Thingy) {
[INFO] [stdout] 3071 +             super(static_type);
[INFO] [stdout] 3072 +         }
[INFO] [stdout] 3073 +     }
[INFO] [stdout] 3074 + 
[INFO] [stdout] 3075 +     /// The `import.meta.env` value.
[INFO] [stdout] 3076 +     pub struct MetaEnvProperty: Value {
[INFO] [stdout] 3077 +         pub(crate) fn MetaEnvProperty(static_type: &Thingy) {
[INFO] [stdout] 3078 +             super(static_type);
[INFO] [stdout] 3079 +         }
[INFO] [stdout] 3080 +     }
[INFO] [stdout] 3081 + 
[INFO] [stdout] 3082 +     pub struct ReferenceValue: Value {
[INFO] [stdout] 3083 +         pub(crate) fn ReferenceValue(static_type: &Thingy) {
[INFO] [stdout] 3084 +             super(static_type);
[INFO] [stdout] 3085 +         }
[INFO] [stdout] 3086 +     }
[INFO] [stdout] 3087 + 
[INFO] [stdout] 3088 +     pub struct TypeAsReferenceValue: ReferenceValue {
[INFO] [stdout] 3089 +         let ref m_type: Option<Thingy> = None;
[INFO] [stdout] 3090 + 
[INFO] [stdout] 3091 +         pub(crate) fn TypeAsReferenceValue(referenced_type: &Thingy, static_type: &Thingy) {
[INFO] [stdout] 3092 +             super(static_type);
[INFO] [stdout] 3093 +             self.set_m_type(Some(referenced_type.clone()));
[INFO] [stdout] 3094 +         }
[INFO] [stdout] 3095 + 
[INFO] [stdout] 3096 +         pub override fn referenced_type(&self) -> Thingy {
[INFO] [stdout] 3097 +             self.m_type().unwrap()
[INFO] [stdout] 3098 +         }
[INFO] [stdout] 3099 + 
[INFO] [stdout] 3100 +         pub override fn read_only(&self, host: &SemanticHost) -> bool {
[INFO] [stdout] 3101 +             true
[INFO] [stdout] 3102 +         }
[INFO] [stdout] 3103 + 
[INFO] [stdout] 3104 +         pub override fn write_only(&self, host: &SemanticHost) -> bool {
[INFO] [stdout] 3105 +             false
[INFO] [stdout] 3106 +         }
[INFO] [stdout] 3107 + 
[INFO] [stdout] 3108 +         pub override fn deletable(&self, host: &SemanticHost) -> bool {
[INFO] [stdout] 3109 +             false
[INFO] [stdout] 3110 +         }
[INFO] [stdout] 3111 +     }
[INFO] [stdout] 3112 + 
[INFO] [stdout] 3113 +     pub struct NamespaceAsReferenceValue: ReferenceValue {
[INFO] [stdout] 3114 +         let ref m_ns: Option<Thingy> = None;
[INFO] [stdout] 3115 + 
[INFO] [stdout] 3116 +         pub(crate) fn NamespaceAsReferenceValue(referenced_ns: &Thingy, static_type: &Thingy) {
[INFO] [stdout] 3117 +             super(static_type);
[INFO] [stdout] 3118 +             self.set_m_ns(Some(referenced_ns.clone()));
[INFO] [stdout] 3119 +         }
[INFO] [stdout] 3120 + 
[INFO] [stdout] 3121 +         pub override fn referenced_ns(&self) -> Thingy {
[INFO] [stdout] 3122 +             self.m_ns().unwrap()
[INFO] [stdout] 3123 +         }
[INFO] [stdout] 3124 + 
[INFO] [stdout] 3125 +         pub override fn is_namespace_or_ns_reference(&self) -> bool {
[INFO] [stdout] 3126 +             true
[INFO] [stdout] 3127 +         }
[INFO] [stdout] 3128 + 
[INFO] [stdout] 3129 +         pub override fn read_only(&self, host: &SemanticHost) -> bool {
[INFO] [stdout] 3130 +             true
[INFO] [stdout] 3131 +         }
[INFO] [stdout] 3132 + 
[INFO] [stdout] 3133 +         pub override fn write_only(&self, host: &SemanticHost) -> bool {
[INFO] [stdout] 3134 +             false
[INFO] [stdout] 3135 +         }
[INFO] [stdout] 3136 + 
[INFO] [stdout] 3137 +         pub override fn deletable(&self, host: &SemanticHost) -> bool {
[INFO] [stdout] 3138 +             false
[INFO] [stdout] 3139 +         }
[INFO] [stdout] 3140 +     }
[INFO] [stdout] 3141 + 
[INFO] [stdout] 3142 +     pub struct XmlReferenceValue: ReferenceValue {
[INFO] [stdout] 3143 +         let ref m_base: Option<Thingy> = None;
[INFO] [stdout] 3144 +         let ref m_qual: Option<Thingy> = None;
[INFO] [stdout] 3145 +         let ref m_key: Option<Thingy> = None;
[INFO] [stdout] 3146 + 
[INFO] [stdout] 3147 +         pub(crate) fn XmlReferenceValue(base: &Thingy, qualifier: Option<Thingy>, key: &Thingy, static_type: &Thingy) {
[INFO] [stdout] 3148 +             super(static_type);
[INFO] [stdout] 3149 +             self.set_m_base(Some(base.clone()));
[INFO] [stdout] 3150 +             self.set_m_qual(qualifier);
[INFO] [stdout] 3151 +             self.set_m_key(Some(key.clone()));
[INFO] [stdout] 3152 +         }
[INFO] [stdout] 3153 + 
[INFO] [stdout] 3154 +         pub override fn base(&self) -> Thingy {
[INFO] [stdout] 3155 +             self.m_base().unwrap()
[INFO] [stdout] 3156 +         }
[INFO] [stdout] 3157 + 
[INFO] [stdout] 3158 +         pub override fn qualifier(&self) -> Option<Thingy> {
[INFO] [stdout] 3159 +             self.m_qual()
[INFO] [stdout] 3160 +         }
[INFO] [stdout] 3161 + 
[INFO] [stdout] 3162 +         pub override fn key(&self) -> Thingy {
[INFO] [stdout] 3163 +             self.m_key().unwrap()
[INFO] [stdout] 3164 +         }
[INFO] [stdout] 3165 + 
[INFO] [stdout] 3166 +         pub override fn read_only(&self, host: &SemanticHost) -> bool {
[INFO] [stdout] 3167 +             false
[INFO] [stdout] 3168 +         }
[INFO] [stdout] 3169 + 
[INFO] [stdout] 3170 +         pub override fn write_only(&self, host: &SemanticHost) -> bool {
[INFO] [stdout] 3171 +             false
[INFO] [stdout] 3172 +         }
[INFO] [stdout] 3173 + 
[INFO] [stdout] 3174 +         pub override fn deletable(&self, host: &SemanticHost) -> bool {
[INFO] [stdout] 3175 +             true
[INFO] [stdout] 3176 +         }
[INFO] [stdout] 3177 +     }
[INFO] [stdout] 3178 + 
[INFO] [stdout] 3179 +     pub struct DynamicReferenceValue: ReferenceValue {
[INFO] [stdout] 3180 +         let ref m_base: Option<Thingy> = None;
[INFO] [stdout] 3181 +         let ref m_qual: Option<Thingy> = None;
[INFO] [stdout] 3182 +         let ref m_key: Option<Thingy> = None;
[INFO] [stdout] 3183 + 
[INFO] [stdout] 3184 +         pub(crate) fn DynamicReferenceValue(base: &Thingy, qualifier: Option<Thingy>, key: &Thingy, static_type: &Thingy) {
[INFO] [stdout] 3185 +             super(static_type);
[INFO] [stdout] 3186 +             self.set_m_base(Some(base.clone()));
[INFO] [stdout] 3187 +             self.set_m_qual(qualifier);
[INFO] [stdout] 3188 +             self.set_m_key(Some(key.clone()));
[INFO] [stdout] 3189 +         }
[INFO] [stdout] 3190 + 
[INFO] [stdout] 3191 +         pub override fn base(&self) -> Thingy {
[INFO] [stdout] 3192 +             self.m_base().unwrap()
[INFO] [stdout] 3193 +         }
[INFO] [stdout] 3194 + 
[INFO] [stdout] 3195 +         pub override fn qualifier(&self) -> Option<Thingy> {
[INFO] [stdout] 3196 +             self.m_qual()
[INFO] [stdout] 3197 +         }
[INFO] [stdout] 3198 + 
[INFO] [stdout] 3199 +         pub override fn key(&self) -> Thingy {
[INFO] [stdout] 3200 +             self.m_key().unwrap()
[INFO] [stdout] 3201 +         }
[INFO] [stdout] 3202 + 
[INFO] [stdout] 3203 +         pub override fn read_only(&self, host: &SemanticHost) -> bool {
[INFO] [stdout] 3204 +             false
[INFO] [stdout] 3205 +         }
[INFO] [stdout] 3206 + 
[INFO] [stdout] 3207 +         pub override fn write_only(&self, host: &SemanticHost) -> bool {
[INFO] [stdout] 3208 +             false
[INFO] [stdout] 3209 +         }
[INFO] [stdout] 3210 + 
[INFO] [stdout] 3211 +         pub override fn deletable(&self, host: &SemanticHost) -> bool {
[INFO] [stdout] 3212 +             true
[INFO] [stdout] 3213 +         }
[INFO] [stdout] 3214 +     }
[INFO] [stdout] 3215 + 
[INFO] [stdout] 3216 +     pub struct StaticReferenceValue: ReferenceValue {
[INFO] [stdout] 3217 +         let ref m_base: Option<Thingy> = None;
[INFO] [stdout] 3218 +         let ref m_property: Option<Thingy> = None;
[INFO] [stdout] 3219 + 
[INFO] [stdout] 3220 +         pub(crate) fn StaticReferenceValue(base: &Thingy, property: &Thingy, static_type: &Thingy) {
[INFO] [stdout] 3221 +             super(static_type);
[INFO] [stdout] 3222 +             self.set_m_base(Some(base.clone()));
[INFO] [stdout] 3223 +             self.set_m_property(Some(property.clone()));
[INFO] [stdout] 3224 +         }
[INFO] [stdout] 3225 + 
[INFO] [stdout] 3226 +         pub override fn base(&self) -> Thingy {
[INFO] [stdout] 3227 +             self.m_base().unwrap()
[INFO] [stdout] 3228 +         }
[INFO] [stdout] 3229 + 
[INFO] [stdout] 3230 +         pub override fn property(&self) -> Thingy {
[INFO] [stdout] 3231 +             self.m_property().unwrap()
[INFO] [stdout] 3232 +         }
[INFO] [stdout] 3233 + 
[INFO] [stdout] 3234 +         pub override fn read_only(&self, host: &SemanticHost) -> bool {
[INFO] [stdout] 3235 +             self.property().read_only(host)
[INFO] [stdout] 3236 +         }
[INFO] [stdout] 3237 + 
[INFO] [stdout] 3238 +         pub override fn write_only(&self, host: &SemanticHost) -> bool {
[INFO] [stdout] 3239 +             self.property().write_only(host)
[INFO] [stdout] 3240 +         }
[INFO] [stdout] 3241 + 
[INFO] [stdout] 3242 +         pub override fn deletable(&self, host: &SemanticHost) -> bool {
[INFO] [stdout] 3243 +             false
[INFO] [stdout] 3244 +         }
[INFO] [stdout] 3245 +     }
[INFO] [stdout] 3246 + 
[INFO] [stdout] 3247 +     pub struct StaticDynamicReferenceValue: ReferenceValue {
[INFO] [stdout] 3248 +         let ref m_base: Option<Thingy> = None;
[INFO] [stdout] 3249 +         let ref m_qual: Option<Thingy> = None;
[INFO] [stdout] 3250 +         let ref m_key: Option<Thingy> = None;
[INFO] [stdout] 3251 + 
[INFO] [stdout] 3252 +         pub(crate) fn StaticDynamicReferenceValue(base: &Thingy, qualifier: Option<Thingy>, key: &Thingy, static_type: &Thingy) {
[INFO] [stdout] 3253 +             super(static_type);
[INFO] [stdout] 3254 +             self.set_m_base(Some(base.clone()));
[INFO] [stdout] 3255 +             self.set_m_qual(qualifier);
[INFO] [stdout] 3256 +             self.set_m_key(Some(key.clone()));
[INFO] [stdout] 3257 +         }
[INFO] [stdout] 3258 + 
[INFO] [stdout] 3259 +         pub override fn base(&self) -> Thingy {
[INFO] [stdout] 3260 +             self.m_base().unwrap()
[INFO] [stdout] 3261 +         }
[INFO] [stdout] 3262 + 
[INFO] [stdout] 3263 +         pub override fn qualifier(&self) -> Option<Thingy> {
[INFO] [stdout] 3264 +             self.m_qual()
[INFO] [stdout] 3265 +         }
[INFO] [stdout] 3266 + 
[INFO] [stdout] 3267 +         pub override fn key(&self) -> Thingy {
[INFO] [stdout] 3268 +             self.m_key().unwrap()
[INFO] [stdout] 3269 +         }
[INFO] [stdout] 3270 + 
[INFO] [stdout] 3271 +         pub override fn read_only(&self, host: &SemanticHost) -> bool {
[INFO] [stdout] 3272 +             false
[INFO] [stdout] 3273 +         }
[INFO] [stdout] 3274 + 
[INFO] [stdout] 3275 +         pub override fn write_only(&self, host: &SemanticHost) -> bool {
[INFO] [stdout] 3276 +             false
[INFO] [stdout] 3277 +         }
[INFO] [stdout] 3278 + 
[INFO] [stdout] 3279 +         pub override fn deletable(&self, host: &SemanticHost) -> bool {
[INFO] [stdout] 3280 +             false
[INFO] [stdout] 3281 +         }
[INFO] [stdout] 3282 +     }
[INFO] [stdout] 3283 + 
[INFO] [stdout] 3284 +     /// Instance reference value in a possibly non nullable base.
[INFO] [stdout] 3285 +     pub struct InstanceReferenceValue: ReferenceValue {
[INFO] [stdout] 3286 +         let ref m_base: Option<Thingy> = None;
[INFO] [stdout] 3287 +         let ref m_property: Option<Thingy> = None;
[INFO] [stdout] 3288 + 
[INFO] [stdout] 3289 +         pub(crate) fn InstanceReferenceValue(base: &Thingy, property: &Thingy, static_type: &Thingy) {
[INFO] [stdout] 3290 +             super(static_type);
[INFO] [stdout] 3291 +             self.set_m_base(Some(base.clone()));
[INFO] [stdout] 3292 +             self.set_m_property(Some(property.clone()));
[INFO] [stdout] 3293 +         }
[INFO] [stdout] 3294 + 
[INFO] [stdout] 3295 +         pub override fn base(&self) -> Thingy {
[INFO] [stdout] 3296 +             self.m_base().unwrap()
[INFO] [stdout] 3297 +         }
[INFO] [stdout] 3298 + 
[INFO] [stdout] 3299 +         pub override fn property(&self) -> Thingy {
[INFO] [stdout] 3300 +             self.m_property().unwrap()
[INFO] [stdout] 3301 +         }
[INFO] [stdout] 3302 + 
[INFO] [stdout] 3303 +         pub override fn read_only(&self, host: &SemanticHost) -> bool {
[INFO] [stdout] 3304 +             self.property().read_only(host)
[INFO] [stdout] 3305 +         }
[INFO] [stdout] 3306 + 
[INFO] [stdout] 3307 +         pub override fn write_only(&self, host: &SemanticHost) -> bool {
[INFO] [stdout] 3308 +             self.property().write_only(host)
[INFO] [stdout] 3309 +         }
[INFO] [stdout] 3310 + 
[INFO] [stdout] 3311 +         pub override fn deletable(&self, host: &SemanticHost) -> bool {
[INFO] [stdout] 3312 +             false
[INFO] [stdout] 3313 +         }
[INFO] [stdout] 3314 +     }
[INFO] [stdout] 3315 + 
[INFO] [stdout] 3316 +     /// Tuple reference value in a possibly non nullable base.
[INFO] [stdout] 3317 +     pub struct TupleReferenceValue: ReferenceValue {
[INFO] [stdout] 3318 +         let ref m_base: Option<Thingy> = None;
[INFO] [stdout] 3319 +         let ref m_index: usize = 0;
[INFO] [stdout] 3320 + 
[INFO] [stdout] 3321 +         pub(crate) fn TupleReferenceValue(base: &Thingy, index: usize, static_type: &Thingy) {
[INFO] [stdout] 3322 +             super(static_type);
[INFO] [stdout] 3323 +             self.set_m_base(Some(base.clone()));
[INFO] [stdout] 3324 +             self.set_m_index(index);
[INFO] [stdout] 3325 +         }
[INFO] [stdout] 3326 + 
[INFO] [stdout] 3327 +         pub override fn base(&self) -> Thingy {
[INFO] [stdout] 3328 +             self.m_base().unwrap()
[INFO] [stdout] 3329 +         }
[INFO] [stdout] 3330 + 
[INFO] [stdout] 3331 +         pub override fn tuple_index(&self) -> usize {
[INFO] [stdout] 3332 +             self.m_index()
[INFO] [stdout] 3333 +         }
[INFO] [stdout] 3334 + 
[INFO] [stdout] 3335 +         pub override fn read_only(&self, host: &SemanticHost) -> bool {
[INFO] [stdout] 3336 +             false
[INFO] [stdout] 3337 +         }
[INFO] [stdout] 3338 + 
[INFO] [stdout] 3339 +         pub override fn write_only(&self, host: &SemanticHost) -> bool {
[INFO] [stdout] 3340 +             false
[INFO] [stdout] 3341 +         }
[INFO] [stdout] 3342 + 
[INFO] [stdout] 3343 +         pub override fn deletable(&self, host: &SemanticHost) -> bool {
[INFO] [stdout] 3344 +             false
[INFO] [stdout] 3345 +         }
[INFO] [stdout] 3346 +     }
[INFO] [stdout] 3347 + 
[INFO] [stdout] 3348 +     pub struct ScopeReferenceValue: ReferenceValue {
[INFO] [stdout] 3349 +         let ref m_base: Option<Thingy> = None;
[INFO] [stdout] 3350 +         let ref m_property: Option<Thingy> = None;
[INFO] [stdout] 3351 + 
[INFO] [stdout] 3352 +         pub(crate) fn ScopeReferenceValue(base: &Thingy, property: &Thingy, static_type: &Thingy) {
[INFO] [stdout] 3353 +             super(static_type);
[INFO] [stdout] 3354 +             self.set_m_base(Some(base.clone()));
[INFO] [stdout] 3355 +             self.set_m_property(Some(property.clone()));
[INFO] [stdout] 3356 +         }
[INFO] [stdout] 3357 + 
[INFO] [stdout] 3358 +         pub override fn base(&self) -> Thingy {
[INFO] [stdout] 3359 +             self.m_base().unwrap()
[INFO] [stdout] 3360 +         }
[INFO] [stdout] 3361 + 
[INFO] [stdout] 3362 +         pub override fn property(&self) -> Thingy {
[INFO] [stdout] 3363 +             self.m_property().unwrap()
[INFO] [stdout] 3364 +         }
[INFO] [stdout] 3365 + 
[INFO] [stdout] 3366 +         pub override fn read_only(&self, host: &SemanticHost) -> bool {
[INFO] [stdout] 3367 +             self.property().read_only(host)
[INFO] [stdout] 3368 +         }
[INFO] [stdout] 3369 + 
[INFO] [stdout] 3370 +         pub override fn write_only(&self, host: &SemanticHost) -> bool {
[INFO] [stdout] 3371 +             self.property().write_only(host)
[INFO] [stdout] 3372 +         }
[INFO] [stdout] 3373 + 
[INFO] [stdout] 3374 +         pub override fn deletable(&self, host: &SemanticHost) -> bool {
[INFO] [stdout] 3375 +             false
[INFO] [stdout] 3376 +         }
[INFO] [stdout] 3377 +     }
[INFO] [stdout] 3378 + 
[INFO] [stdout] 3379 +     pub struct DynamicScopeReferenceValue: ReferenceValue {
[INFO] [stdout] 3380 +         let ref m_base: Option<Thingy> = None;
[INFO] [stdout] 3381 +         let ref m_qual: Option<Thingy> = None;
[INFO] [stdout] 3382 +         let ref m_key: Option<Thingy> = None;
[INFO] [stdout] 3383 + 
[INFO] [stdout] 3384 +         pub(crate) fn DynamicScopeReferenceValue(base: &Thingy, qualifier: Option<Thingy>, key: &Thingy, static_type: &Thingy) {
[INFO] [stdout] 3385 +             super(static_type);
[INFO] [stdout] 3386 +             self.set_m_base(Some(base.clone()));
[INFO] [stdout] 3387 +             self.set_m_qual(qualifier);
[INFO] [stdout] 3388 +             self.set_m_key(Some(key.clone()));
[INFO] [stdout] 3389 +         }
[INFO] [stdout] 3390 + 
[INFO] [stdout] 3391 +         pub override fn base(&self) -> Thingy {
[INFO] [stdout] 3392 +             self.m_base().unwrap()
[INFO] [stdout] 3393 +         }
[INFO] [stdout] 3394 + 
[INFO] [stdout] 3395 +         pub override fn qualifier(&self) -> Option<Thingy> {
[INFO] [stdout] 3396 +             self.m_qual()
[INFO] [stdout] 3397 +         }
[INFO] [stdout] 3398 + 
[INFO] [stdout] 3399 +         pub override fn key(&self) -> Thingy {
[INFO] [stdout] 3400 +             self.m_key().unwrap()
[INFO] [stdout] 3401 +         }
[INFO] [stdout] 3402 + 
[INFO] [stdout] 3403 +         pub override fn read_only(&self, host: &SemanticHost) -> bool {
[INFO] [stdout] 3404 +             false
[INFO] [stdout] 3405 +         }
[INFO] [stdout] 3406 + 
[INFO] [stdout] 3407 +         pub override fn write_only(&self, host: &SemanticHost) -> bool {
[INFO] [stdout] 3408 +             false
[INFO] [stdout] 3409 +         }
[INFO] [stdout] 3410 + 
[INFO] [stdout] 3411 +         pub override fn deletable(&self, host: &SemanticHost) -> bool {
[INFO] [stdout] 3412 +             true
[INFO] [stdout] 3413 +         }
[INFO] [stdout] 3414 +     }
[INFO] [stdout] 3415 + 
[INFO] [stdout] 3416 +     pub struct PackageReferenceValue: ReferenceValue {
[INFO] [stdout] 3417 +         let ref m_base: Option<Thingy> = None;
[INFO] [stdout] 3418 +         let ref m_property: Option<Thingy> = None;
[INFO] [stdout] 3419 + 
[INFO] [stdout] 3420 +         pub(crate) fn PackageReferenceValue(base: &Thingy, property: &Thingy, static_type: &Thingy) {
[INFO] [stdout] 3421 +             super(static_type);
[INFO] [stdout] 3422 +             self.set_m_base(Some(base.clone()));
[INFO] [stdout] 3423 +             self.set_m_property(Some(property.clone()));
[INFO] [stdout] 3424 +         }
[INFO] [stdout] 3425 + 
[INFO] [stdout] 3426 +         pub override fn base(&self) -> Thingy {
[INFO] [stdout] 3427 +             self.m_base().unwrap()
[INFO] [stdout] 3428 +         }
[INFO] [stdout] 3429 + 
[INFO] [stdout] 3430 +         pub override fn property(&self) -> Thingy {
[INFO] [stdout] 3431 +             self.m_property().unwrap()
[INFO] [stdout] 3432 +         }
[INFO] [stdout] 3433 + 
[INFO] [stdout] 3434 +         pub override fn read_only(&self, host: &SemanticHost) -> bool {
[INFO] [stdout] 3435 +             self.property().read_only(host)
[INFO] [stdout] 3436 +         }
[INFO] [stdout] 3437 + 
[INFO] [stdout] 3438 +         pub override fn write_only(&self, host: &SemanticHost) -> bool {
[INFO] [stdout] 3439 +             self.property().write_only(host)
[INFO] [stdout] 3440 +         }
[INFO] [stdout] 3441 + 
[INFO] [stdout] 3442 +         pub override fn deletable(&self, host: &SemanticHost) -> bool {
[INFO] [stdout] 3443 +             false
[INFO] [stdout] 3444 +         }
[INFO] [stdout] 3445 +     }
[INFO] [stdout] 3446 + 
[INFO] [stdout] 3447 +     /// Array element reference value with a possibly non-nullable base.
[INFO] [stdout] 3448 +     /// The key is assumed to be of the `Number` data type.
[INFO] [stdout] 3449 +     pub struct ArrayElementReferenceValue: ReferenceValue {
[INFO] [stdout] 3450 +         let ref m_base: Option<Thingy> = None;
[INFO] [stdout] 3451 +         let ref m_key: Option<Thingy> = None;
[INFO] [stdout] 3452 + 
[INFO] [stdout] 3453 +         pub(crate) fn ArrayElementReferenceValue(base: &Thingy, key: &Thingy, static_type: &Thingy) {
[INFO] [stdout] 3454 +             super(static_type);
[INFO] [stdout] 3455 +             self.set_m_base(Some(base.clone()));
[INFO] [stdout] 3456 +             self.set_m_key(Some(key.clone()));
[INFO] [stdout] 3457 +         }
[INFO] [stdout] 3458 + 
[INFO] [stdout] 3459 +         pub override fn base(&self) -> Thingy {
[INFO] [stdout] 3460 +             self.m_base().unwrap()
[INFO] [stdout] 3461 +         }
[INFO] [stdout] 3462 + 
[INFO] [stdout] 3463 +         pub override fn key(&self) -> Thingy {
[INFO] [stdout] 3464 +             self.m_key().unwrap()
[INFO] [stdout] 3465 +         }
[INFO] [stdout] 3466 + 
[INFO] [stdout] 3467 +         pub override fn read_only(&self, host: &SemanticHost) -> bool {
[INFO] [stdout] 3468 +             false
[INFO] [stdout] 3469 +         }
[INFO] [stdout] 3470 + 
[INFO] [stdout] 3471 +         pub override fn write_only(&self, host: &SemanticHost) -> bool {
[INFO] [stdout] 3472 +             false
[INFO] [stdout] 3473 +         }
[INFO] [stdout] 3474 + 
[INFO] [stdout] 3475 +         pub override fn deletable(&self, host: &SemanticHost) -> bool {
[INFO] [stdout] 3476 +             true
[INFO] [stdout] 3477 +         }
[INFO] [stdout] 3478 +     }
[INFO] [stdout] 3479 + 
[INFO] [stdout] 3480 +     /// Vector element reference value with a possibly non-nullable base.
[INFO] [stdout] 3481 +     /// The key is assumed to be of the `Number` data type.
[INFO] [stdout] 3482 +     pub struct VectorElementReferenceValue: ReferenceValue {
[INFO] [stdout] 3483 +         let ref m_base: Option<Thingy> = None;
[INFO] [stdout] 3484 +         let ref m_key: Option<Thingy> = None;
[INFO] [stdout] 3485 + 
[INFO] [stdout] 3486 +         pub(crate) fn VectorElementReferenceValue(base: &Thingy, key: &Thingy, static_type: &Thingy) {
[INFO] [stdout] 3487 +             super(static_type);
[INFO] [stdout] 3488 +             self.set_m_base(Some(base.clone()));
[INFO] [stdout] 3489 +             self.set_m_key(Some(key.clone()));
[INFO] [stdout] 3490 +         }
[INFO] [stdout] 3491 + 
[INFO] [stdout] 3492 +         pub override fn base(&self) -> Thingy {
[INFO] [stdout] 3493 +             self.m_base().unwrap()
[INFO] [stdout] 3494 +         }
[INFO] [stdout] 3495 + 
[INFO] [stdout] 3496 +         pub override fn key(&self) -> Thingy {
[INFO] [stdout] 3497 +             self.m_key().unwrap()
[INFO] [stdout] 3498 +         }
[INFO] [stdout] 3499 + 
[INFO] [stdout] 3500 +         pub override fn read_only(&self, host: &SemanticHost) -> bool {
[INFO] [stdout] 3501 +             false
[INFO] [stdout] 3502 +         }
[INFO] [stdout] 3503 + 
[INFO] [stdout] 3504 +         pub override fn write_only(&self, host: &SemanticHost) -> bool {
[INFO] [stdout] 3505 +             false
[INFO] [stdout] 3506 +         }
[INFO] [stdout] 3507 + 
[INFO] [stdout] 3508 +         pub override fn deletable(&self, host: &SemanticHost) -> bool {
[INFO] [stdout] 3509 +             false
[INFO] [stdout] 3510 +         }
[INFO] [stdout] 3511 +     }
[INFO] [stdout] 3512 + 
[INFO] [stdout] 3513 +     /// Represents the resulting value of a conversion, whether implicit or explicit.
[INFO] [stdout] 3514 +     pub struct ConversionValue: Value {
[INFO] [stdout] 3515 +         let ref m_base: Option<Thingy> = None;
[INFO] [stdout] 3516 +         let m_variant: TypeConversionVariant = TypeConversionVariant::BetweenNumber;
[INFO] [stdout] 3517 +         let m_opt: bool = true;
[INFO] [stdout] 3518 +         let ref m_target: Option<Thingy> = None;
[INFO] [stdout] 3519 + 
[INFO] [stdout] 3520 +         pub(crate) fn ConversionValue(base: &Thingy, variant: TypeConversionVariant, opt: bool, target: &Thingy, static_type: &Thingy) {
[INFO] [stdout] 3521 +             super(static_type);
[INFO] [stdout] 3522 +             self.set_m_base(Some(base.clone()));
[INFO] [stdout] 3523 +             self.set_m_variant(variant);
[INFO] [stdout] 3524 +             self.set_m_opt(opt);
[INFO] [stdout] 3525 +             self.set_m_target(Some(target.clone()));
[INFO] [stdout] 3526 +         }
[INFO] [stdout] 3527 + 
[INFO] [stdout] 3528 +         /// Original value.
[INFO] [stdout] 3529 +         pub override fn base(&self) -> Thingy {
[INFO] [stdout] 3530 +             self.m_base().unwrap()
[INFO] [stdout] 3531 +         }
[INFO] [stdout] 3532 + 
[INFO] [stdout] 3533 +         pub override fn conversion_variant(&self) -> TypeConversionVariant {
[INFO] [stdout] 3534 +             self.m_variant()
[INFO] [stdout] 3535 +         }
[INFO] [stdout] 3536 + 
[INFO] [stdout] 3537 +         /// Indicates whether the conversion has been performed by the `as` operator
[INFO] [stdout] 3538 +         /// (rather than `T(v)` or implicit conversion) and the resulting type
[INFO] [stdout] 3539 +         /// has been either escaped out of non nullable or made nullable.
[INFO] [stdout] 3540 +         pub override fn conversion_is_opt(&self) -> bool {
[INFO] [stdout] 3541 +             self.m_opt()
[INFO] [stdout] 3542 +         }
[INFO] [stdout] 3543 + 
[INFO] [stdout] 3544 +         pub override fn conversion_target(&self) -> Thingy {
[INFO] [stdout] 3545 +             self.m_target().unwrap()
[INFO] [stdout] 3546 +         }
[INFO] [stdout] 3547 +     }
[INFO] [stdout] 3548 + 
[INFO] [stdout] 3549 +     /// Represents the direct value of a `function` expression, holding back its activation.
[INFO] [stdout] 3550 +     pub struct LambdaObject: Value {
[INFO] [stdout] 3551 +         let ref m_activation: Option<Thingy> = None;
[INFO] [stdout] 3552 + 
[INFO] [stdout] 3553 +         pub(crate) fn LambdaObject(activation: &Thingy, static_type: &Thingy) {
[INFO] [stdout] 3554 +             super(static_type);
[INFO] [stdout] 3555 +             self.set_m_activation(Some(activation.clone()));
[INFO] [stdout] 3556 +         }
[INFO] [stdout] 3557 + 
[INFO] [stdout] 3558 +         // Returns a `Some(activation)` value.
[INFO] [stdout] 3559 +         pub override fn activation(&self) -> Option<Thingy> {
[INFO] [stdout] 3560 +             self.m_activation()
[INFO] [stdout] 3561 +         }
[INFO] [stdout] 3562 +     }
[INFO] [stdout] 3563 + };
[INFO] [stdout] 3564 ~ binding
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 2 previous errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0716`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `fxrazen` (lib) due to 3 previous errors
[INFO] running `Command { std: "docker" "inspect" "ec4d1f0d561221122a40ba743b9b3bc2c899a686c144c7fdab6a859e3d4f8e5c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "ec4d1f0d561221122a40ba743b9b3bc2c899a686c144c7fdab6a859e3d4f8e5c", kill_on_drop: false }`
[INFO] [stdout] ec4d1f0d561221122a40ba743b9b3bc2c899a686c144c7fdab6a859e3d4f8e5c
