[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> { [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> { [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> { [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> { [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 { [INFO] [stdout] 13 + if self.is::() { [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 { [INFO] [stdout] 21 + panic!(); [INFO] [stdout] 22 + } [INFO] [stdout] 23 + [INFO] [stdout] 24 + pub fn set_location(&self, loc: Option) { [INFO] [stdout] 25 + panic!(); [INFO] [stdout] 26 + } [INFO] [stdout] 27 + [INFO] [stdout] 28 + pub fn qualifier(&self) -> Option { [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 { [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 { [INFO] [stdout] 52 + None [INFO] [stdout] 53 + } [INFO] [stdout] 54 + [INFO] [stdout] 55 + pub fn asdoc(&self) -> Option> { [INFO] [stdout] 56 + None [INFO] [stdout] 57 + } [INFO] [stdout] 58 + [INFO] [stdout] 59 + pub fn set_asdoc(&self, asdoc: Option>) {} [INFO] [stdout] 60 + [INFO] [stdout] 61 + pub fn metadata(&self) -> SharedArray> { [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 { [INFO] [stdout] 89 + panic!(); [INFO] [stdout] 90 + } [INFO] [stdout] 91 + [INFO] [stdout] 92 + pub fn import_list(&self) -> SharedArray { [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::() [INFO] [stdout] 99 + || self.is::() [INFO] [stdout] 100 + || self.is::() [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 { [INFO] [stdout] 124 + for scope in self.descending_scope_hierarchy() { [INFO] [stdout] 125 + if scope.is::() { [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 { [INFO] [stdout] 133 + panic!(); [INFO] [stdout] 134 + } [INFO] [stdout] 135 + [INFO] [stdout] 136 + pub fn set_this(&self, this: Option) { [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 { [INFO] [stdout] 157 + panic!(); [INFO] [stdout] 158 + } [INFO] [stdout] 159 + [INFO] [stdout] 160 + pub fn set_parent(&self, p: Option) { [INFO] [stdout] 161 + panic!(); [INFO] [stdout] 162 + } [INFO] [stdout] 163 + [INFO] [stdout] 164 + pub fn package_concats(&self) -> SharedArray { [INFO] [stdout] 165 + panic!(); [INFO] [stdout] 166 + } [INFO] [stdout] 167 + [INFO] [stdout] 168 + pub fn public_ns(&self) -> Option { [INFO] [stdout] 169 + panic!(); [INFO] [stdout] 170 + } [INFO] [stdout] 171 + [INFO] [stdout] 172 + pub fn set_public_ns(&self, ns: Option) { [INFO] [stdout] 173 + panic!(); [INFO] [stdout] 174 + } [INFO] [stdout] 175 + [INFO] [stdout] 176 + pub fn private_ns(&self) -> Option { [INFO] [stdout] 177 + panic!(); [INFO] [stdout] 178 + } [INFO] [stdout] 179 + [INFO] [stdout] 180 + pub fn set_private_ns(&self, ns: Option) { [INFO] [stdout] 181 + panic!(); [INFO] [stdout] 182 + } [INFO] [stdout] 183 + [INFO] [stdout] 184 + pub fn protected_ns(&self) -> Option { [INFO] [stdout] 185 + panic!(); [INFO] [stdout] 186 + } [INFO] [stdout] 187 + [INFO] [stdout] 188 + pub fn set_protected_ns(&self, ns: Option) { [INFO] [stdout] 189 + panic!(); [INFO] [stdout] 190 + } [INFO] [stdout] 191 + [INFO] [stdout] 192 + pub fn static_protected_ns(&self) -> Option { [INFO] [stdout] 193 + panic!(); [INFO] [stdout] 194 + } [INFO] [stdout] 195 + [INFO] [stdout] 196 + pub fn set_static_protected_ns(&self, ns: Option) { [INFO] [stdout] 197 + panic!(); [INFO] [stdout] 198 + } [INFO] [stdout] 199 + [INFO] [stdout] 200 + pub fn internal_ns(&self) -> Option { [INFO] [stdout] 201 + panic!(); [INFO] [stdout] 202 + } [INFO] [stdout] 203 + [INFO] [stdout] 204 + pub fn set_internal_ns(&self, ns: Option) { [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::() || self.is::() { [INFO] [stdout] 230 + self.type_params().is_some() [INFO] [stdout] 231 + } else { [INFO] [stdout] 232 + self.is::() [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, 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 { [INFO] [stdout] 278 + panic!(); [INFO] [stdout] 279 + } [INFO] [stdout] 280 + [INFO] [stdout] 281 + pub fn bindable_event(&self) -> Option { [INFO] [stdout] 282 + panic!(); [INFO] [stdout] 283 + } [INFO] [stdout] 284 + [INFO] [stdout] 285 + pub fn set_bindable_event(&self, name: Option) { [INFO] [stdout] 286 + panic!(); [INFO] [stdout] 287 + } [INFO] [stdout] 288 + [INFO] [stdout] 289 + pub fn getter(&self, host: &SemanticHost) -> Option { [INFO] [stdout] 290 + panic!(); [INFO] [stdout] 291 + } [INFO] [stdout] 292 + [INFO] [stdout] 293 + pub fn set_getter(&self, m: Option) { [INFO] [stdout] 294 + panic!(); [INFO] [stdout] 295 + } [INFO] [stdout] 296 + [INFO] [stdout] 297 + pub fn setter(&self, host: &SemanticHost) -> Option { [INFO] [stdout] 298 + panic!(); [INFO] [stdout] 299 + } [INFO] [stdout] 300 + [INFO] [stdout] 301 + pub fn set_setter(&self, m: Option) { [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, 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.`, 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, 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::() && &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 { [INFO] [stdout] 423 + if self.is::() { [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 { [INFO] [stdout] 452 + if self.is::() { [INFO] [stdout] 453 + return Ok(self.clone()); [INFO] [stdout] 454 + } [INFO] [stdout] 455 + if self.is::() && (self.is::() || self.is::() || self.is::() || self.is::() || self.is::() || self.is::()) { [INFO] [stdout] 456 + return host.factory().create_type_as_reference_value(self); [INFO] [stdout] 457 + } [INFO] [stdout] 458 + if self.is::() { [INFO] [stdout] 459 + return host.factory().create_namespace_as_reference_value(self); [INFO] [stdout] 460 + } [INFO] [stdout] 461 + if self.is::() { [INFO] [stdout] 462 + return Ok(self.clone()); [INFO] [stdout] 463 + } [INFO] [stdout] 464 + let parent = self.parent().unwrap(); [INFO] [stdout] 465 + if parent.is::() || parent.is::() { [INFO] [stdout] 466 + return host.factory().create_static_reference_value(&parent, self); [INFO] [stdout] 467 + } [INFO] [stdout] 468 + if parent.is::() { [INFO] [stdout] 469 + return host.factory().create_package_reference_value(&parent, self); [INFO] [stdout] 470 + } [INFO] [stdout] 471 + assert!(parent.is::()); [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 { [INFO] [stdout] 476 + panic!(); [INFO] [stdout] 477 + } [INFO] [stdout] 478 + [INFO] [stdout] 479 + pub fn set_activation(&self, activation: Option) { [INFO] [stdout] 480 + panic!(); [INFO] [stdout] 481 + } [INFO] [stdout] 482 + [INFO] [stdout] 483 + pub fn of_virtual_slot(&self, host: &SemanticHost) -> Option { [INFO] [stdout] 484 + panic!(); [INFO] [stdout] 485 + } [INFO] [stdout] 486 + [INFO] [stdout] 487 + pub fn set_of_virtual_slot(&self, virtual_slot: Option) { [INFO] [stdout] 488 + panic!(); [INFO] [stdout] 489 + } [INFO] [stdout] 490 + [INFO] [stdout] 491 + pub fn overriden_by(&self, host: &SemanticHost) -> SharedArray { [INFO] [stdout] 492 + panic!(); [INFO] [stdout] 493 + } [INFO] [stdout] 494 + [INFO] [stdout] 495 + pub fn overrides_method(&self, host: &SemanticHost) -> Option { [INFO] [stdout] 496 + panic!(); [INFO] [stdout] 497 + } [INFO] [stdout] 498 + [INFO] [stdout] 499 + pub fn set_overrides_method(&self, method: Option) { [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 { [INFO] [stdout] 511 + panic!(); [INFO] [stdout] 512 + } [INFO] [stdout] 513 + [INFO] [stdout] 514 + pub fn set_constructor_method(&self, m: Option) {} [INFO] [stdout] 515 + [INFO] [stdout] 516 + pub fn known_subclasses(&self) -> SharedArray { [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 { [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 { [INFO] [stdout] 527 + panic!(); [INFO] [stdout] 528 + } [INFO] [stdout] 529 + [INFO] [stdout] 530 + pub fn set_extends_class(&self, entity: Option) { [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 { [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 { [INFO] [stdout] 559 + panic!(); [INFO] [stdout] 560 + } [INFO] [stdout] 561 + [INFO] [stdout] 562 + pub fn includes_null(&self, host: &SemanticHost) -> Result { [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 { [INFO] [stdout] 575 + let mut r: Vec = 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::() { [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> { [INFO] [stdout] 592 + None [INFO] [stdout] 593 + } [INFO] [stdout] 594 + [INFO] [stdout] 595 + pub fn set_type_params(&self, list: Option>) { [INFO] [stdout] 596 + } [INFO] [stdout] 597 + [INFO] [stdout] 598 + pub fn enum_members(&self) -> SharedMap { [INFO] [stdout] 599 + panic!(); [INFO] [stdout] 600 + } [INFO] [stdout] 601 + [INFO] [stdout] 602 + pub fn known_implementors(&self) -> SharedArray { [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 { [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 { [INFO] [stdout] 616 + panic!(); [INFO] [stdout] 617 + } [INFO] [stdout] 618 + [INFO] [stdout] 619 + pub fn indirect_type_params(&self) -> SharedArray { [INFO] [stdout] 620 + panic!(); [INFO] [stdout] 621 + } [INFO] [stdout] 622 + [INFO] [stdout] 623 + pub fn indirect_substitute_types(&self) -> SharedArray { [INFO] [stdout] 624 + panic!(); [INFO] [stdout] 625 + } [INFO] [stdout] 626 + [INFO] [stdout] 627 + pub fn element_types(&self) -> SharedArray { [INFO] [stdout] 628 + panic!(); [INFO] [stdout] 629 + } [INFO] [stdout] 630 + [INFO] [stdout] 631 + pub fn params(&self) -> SharedArray> { [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, substitute_types: &SharedArray) -> 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 { [INFO] [stdout] 669 + panic!(); [INFO] [stdout] 670 + } [INFO] [stdout] 671 + [INFO] [stdout] 672 + pub fn set_var_constant(&self, k: Option) { [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 { [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 { [INFO] [stdout] 681 + if possibly_ascending_type.is::() { [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 { [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 { [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::() { [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 { [INFO] [stdout] 722 + if self.is::() { [INFO] [stdout] 723 + let mut r: Vec = 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::() { [INFO] [stdout] 729 + return vec![self.extends_class(host).unwrap()]; [INFO] [stdout] 730 + } else if self.is::() { [INFO] [stdout] 731 + return self.extends_interfaces(host).iter().collect(); [INFO] [stdout] 732 + } else if self.is::() { [INFO] [stdout] 733 + return vec![host.function_type()]; [INFO] [stdout] 734 + } else if self.is::() { [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::() { [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::() || 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::() { [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::() || 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 { [INFO] [stdout] 769 + if self.is::() { [INFO] [stdout] 770 + return Ok(self.referenced_type()); [INFO] [stdout] 771 + } [INFO] [stdout] 772 + if self.is::() || self.is::() { [INFO] [stdout] 773 + return self.property().expect_type(); [INFO] [stdout] 774 + } [INFO] [stdout] 775 + if self.is::() { [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, qual: Option, key: &PropertyLookupKey) -> Result, 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, key: &PropertyLookupKey) -> Result, 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 = None; [INFO] [stdout] 833 + [INFO] [stdout] 834 + pub(crate) fn SystemNamespace(kind: SystemNamespaceKind, parent: Option) { [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 { [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 { [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 = None; [INFO] [stdout] 912 + let ref m_public_ns: Option = None; [INFO] [stdout] 913 + let ref m_internal_ns: Option = None; [INFO] [stdout] 914 + let ref m_properties: NameMap = NameMap::new(); [INFO] [stdout] 915 + let ref m_subpackages: SharedMap = SharedMap::new(); [INFO] [stdout] 916 + let ref m_package_concats: SharedArray = SharedArray::new(); [INFO] [stdout] 917 + let ref m_asdoc: Option> = 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 { [INFO] [stdout] 931 + self.m_parent() [INFO] [stdout] 932 + } [INFO] [stdout] 933 + [INFO] [stdout] 934 + pub override fn set_parent(&self, p: Option) { [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 { [INFO] [stdout] 940 + self.m_package_concats() [INFO] [stdout] 941 + } [INFO] [stdout] 942 + [INFO] [stdout] 943 + pub override fn public_ns(&self) -> Option { [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) { [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 { [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) { [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 { [INFO] [stdout] 964 + self.m_subpackages() [INFO] [stdout] 965 + } [INFO] [stdout] 966 + [INFO] [stdout] 967 + pub override fn asdoc(&self) -> Option> { [INFO] [stdout] 968 + self.m_asdoc() [INFO] [stdout] 969 + } [INFO] [stdout] 970 + [INFO] [stdout] 971 + pub override fn set_asdoc(&self, asdoc: Option>) { [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 = None; [INFO] [stdout] 982 + let ref m_alias_of: Option = None; [INFO] [stdout] 983 + let m_is_external: bool = false; [INFO] [stdout] 984 + let ref m_parent: Option = None; [INFO] [stdout] 985 + let ref m_location: Option = 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 { [INFO] [stdout] 1010 + self.m_location() [INFO] [stdout] 1011 + } [INFO] [stdout] 1012 + [INFO] [stdout] 1013 + pub override fn set_location(&self, loc: Option) { [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 { [INFO] [stdout] 1022 + self.m_parent() [INFO] [stdout] 1023 + } [INFO] [stdout] 1024 + [INFO] [stdout] 1025 + pub override fn set_parent(&self, p: Option) { [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 { [INFO] [stdout] 1036 + Ok(true) [INFO] [stdout] 1037 + } [INFO] [stdout] 1038 + [INFO] [stdout] 1039 + pub override fn includes_null(&self, host: &SemanticHost) -> Result { [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, 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 >::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 { [INFO] [stdout] 1074 + Ok(true) [INFO] [stdout] 1075 + } [INFO] [stdout] 1076 + [INFO] [stdout] 1077 + pub override fn includes_null(&self, host: &SemanticHost) -> Result { [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 { [INFO] [stdout] 1092 + Ok(true) [INFO] [stdout] 1093 + } [INFO] [stdout] 1094 + [INFO] [stdout] 1095 + pub override fn includes_null(&self, host: &SemanticHost) -> Result { [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 = None; [INFO] [stdout] 1106 + let m_flags: ClassTypeFlags = ClassTypeFlags::empty(); [INFO] [stdout] 1107 + let ref m_type_params: Option> = None; [INFO] [stdout] 1108 + let ref m_extends_class: Option = None; [INFO] [stdout] 1109 + let ref m_implements: SharedArray = SharedArray::new(); [INFO] [stdout] 1110 + let ref m_known_subclasses: SharedArray = SharedArray::new(); [INFO] [stdout] 1111 + let ref m_constructor_method: Option = None; [INFO] [stdout] 1112 + let ref m_parent: Option = None; [INFO] [stdout] 1113 + let ref m_private_ns: Option = None; [INFO] [stdout] 1114 + let ref m_protected_ns: Option = None; [INFO] [stdout] 1115 + let ref m_static_protected_ns: Option = 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 = SharedMap::new(); [INFO] [stdout] 1119 + let ref m_asdoc: Option> = None; [INFO] [stdout] 1120 + let ref m_metadata: SharedArray> = SharedArray::new(); [INFO] [stdout] 1121 + let ref m_location: Option = 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 { [INFO] [stdout] 1137 + self.m_location() [INFO] [stdout] 1138 + } [INFO] [stdout] 1139 + [INFO] [stdout] 1140 + pub override fn set_location(&self, loc: Option) { [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 { [INFO] [stdout] 1146 + self.m_flex_events() [INFO] [stdout] 1147 + } [INFO] [stdout] 1148 + [INFO] [stdout] 1149 + pub override fn private_ns(&self) -> Option { [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) { [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 { [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) { [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 { [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) { [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> { [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>) { [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 { [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 { [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 { [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 { [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) { [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 { [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) { [INFO] [stdout] 1284 + self.set_m_constructor_method(m); [INFO] [stdout] 1285 + } [INFO] [stdout] 1286 + [INFO] [stdout] 1287 + pub override fn parent(&self) -> Option { [INFO] [stdout] 1288 + self.m_parent() [INFO] [stdout] 1289 + } [INFO] [stdout] 1290 + [INFO] [stdout] 1291 + pub override fn set_parent(&self, p: Option) { [INFO] [stdout] 1292 + self.set_m_parent(p); [INFO] [stdout] 1293 + } [INFO] [stdout] 1294 + [INFO] [stdout] 1295 + pub override fn asdoc(&self) -> Option> { [INFO] [stdout] 1296 + self.m_asdoc() [INFO] [stdout] 1297 + } [INFO] [stdout] 1298 + [INFO] [stdout] 1299 + pub override fn set_asdoc(&self, asdoc: Option>) { [INFO] [stdout] 1300 + self.set_m_asdoc(asdoc); [INFO] [stdout] 1301 + } [INFO] [stdout] 1302 + [INFO] [stdout] 1303 + pub override fn metadata(&self) -> SharedArray> { [INFO] [stdout] 1304 + self.m_metadata() [INFO] [stdout] 1305 + } [INFO] [stdout] 1306 + [INFO] [stdout] 1307 + pub override fn includes_undefined(&self, host: &SemanticHost) -> Result { [INFO] [stdout] 1308 + Ok(false) [INFO] [stdout] 1309 + } [INFO] [stdout] 1310 + [INFO] [stdout] 1311 + pub override fn includes_null(&self, host: &SemanticHost) -> Result { [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::>().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 = None; [INFO] [stdout] 1327 + let ref m_parent: Option = None; [INFO] [stdout] 1328 + let m_is_external: bool = false; [INFO] [stdout] 1329 + let ref m_private_ns: Option = 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 = SharedMap::new(); [INFO] [stdout] 1333 + let ref m_asdoc: Option> = None; [INFO] [stdout] 1334 + let ref m_metadata: SharedArray> = SharedArray::new(); [INFO] [stdout] 1335 + let ref m_location: Option = 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 { [INFO] [stdout] 1347 + self.m_members() [INFO] [stdout] 1348 + } [INFO] [stdout] 1349 + [INFO] [stdout] 1350 + pub override fn location(&self) -> Option { [INFO] [stdout] 1351 + self.m_location() [INFO] [stdout] 1352 + } [INFO] [stdout] 1353 + [INFO] [stdout] 1354 + pub override fn set_location(&self, loc: Option) { [INFO] [stdout] 1355 + self.set_m_location(loc); [INFO] [stdout] 1356 + } [INFO] [stdout] 1357 + [INFO] [stdout] 1358 + pub override fn private_ns(&self) -> Option { [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) { [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 { [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 { [INFO] [stdout] 1404 + self.m_parent() [INFO] [stdout] 1405 + } [INFO] [stdout] 1406 + [INFO] [stdout] 1407 + pub override fn set_parent(&self, p: Option) { [INFO] [stdout] 1408 + self.set_m_parent(p); [INFO] [stdout] 1409 + } [INFO] [stdout] 1410 + [INFO] [stdout] 1411 + pub override fn asdoc(&self) -> Option> { [INFO] [stdout] 1412 + self.m_asdoc() [INFO] [stdout] 1413 + } [INFO] [stdout] 1414 + [INFO] [stdout] 1415 + pub override fn set_asdoc(&self, asdoc: Option>) { [INFO] [stdout] 1416 + self.set_m_asdoc(asdoc); [INFO] [stdout] 1417 + } [INFO] [stdout] 1418 + [INFO] [stdout] 1419 + pub override fn metadata(&self) -> SharedArray> { [INFO] [stdout] 1420 + self.m_metadata() [INFO] [stdout] 1421 + } [INFO] [stdout] 1422 + [INFO] [stdout] 1423 + pub override fn includes_undefined(&self, host: &SemanticHost) -> Result { [INFO] [stdout] 1424 + Ok(false) [INFO] [stdout] 1425 + } [INFO] [stdout] 1426 + [INFO] [stdout] 1427 + pub override fn includes_null(&self, host: &SemanticHost) -> Result { [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 = None; [INFO] [stdout] 1438 + let ref m_type_params: Option> = None; [INFO] [stdout] 1439 + let m_is_external: bool = false; [INFO] [stdout] 1440 + let ref m_extends_interfaces: SharedArray = SharedArray::new(); [INFO] [stdout] 1441 + let ref m_known_implementors: SharedArray = SharedArray::new(); [INFO] [stdout] 1442 + let ref m_parent: Option = None; [INFO] [stdout] 1443 + let ref m_prototype: NameMap = NameMap::new(); [INFO] [stdout] 1444 + let ref m_asdoc: Option> = None; [INFO] [stdout] 1445 + let ref m_metadata: SharedArray> = SharedArray::new(); [INFO] [stdout] 1446 + let ref m_location: Option = 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 { [INFO] [stdout] 1462 + self.m_location() [INFO] [stdout] 1463 + } [INFO] [stdout] 1464 + [INFO] [stdout] 1465 + pub override fn set_location(&self, loc: Option) { [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> { [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>) { [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 { [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 { [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 { [INFO] [stdout] 1499 + self.m_parent() [INFO] [stdout] 1500 + } [INFO] [stdout] 1501 + [INFO] [stdout] 1502 + pub override fn set_parent(&self, p: Option) { [INFO] [stdout] 1503 + self.set_m_parent(p); [INFO] [stdout] 1504 + } [INFO] [stdout] 1505 + [INFO] [stdout] 1506 + pub override fn asdoc(&self) -> Option> { [INFO] [stdout] 1507 + self.m_asdoc() [INFO] [stdout] 1508 + } [INFO] [stdout] 1509 + [INFO] [stdout] 1510 + pub override fn set_asdoc(&self, asdoc: Option>) { [INFO] [stdout] 1511 + self.set_m_asdoc(asdoc); [INFO] [stdout] 1512 + } [INFO] [stdout] 1513 + [INFO] [stdout] 1514 + pub override fn metadata(&self) -> SharedArray> { [INFO] [stdout] 1515 + self.m_metadata() [INFO] [stdout] 1516 + } [INFO] [stdout] 1517 + [INFO] [stdout] 1518 + pub override fn includes_undefined(&self, host: &SemanticHost) -> Result { [INFO] [stdout] 1519 + Ok(false) [INFO] [stdout] 1520 + } [INFO] [stdout] 1521 + [INFO] [stdout] 1522 + pub override fn includes_null(&self, host: &SemanticHost) -> Result { [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::>().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 = None; [INFO] [stdout] 1542 + let ref m_substitute_types: SharedArray = SharedArray::new(); [INFO] [stdout] 1543 + let ref m_extends_class: Option = None; [INFO] [stdout] 1544 + let ref m_implements: Option> = None; [INFO] [stdout] 1545 + let ref m_extends_interfaces: Option> = None; [INFO] [stdout] 1546 + let ref m_properties: Option = None; [INFO] [stdout] 1547 + let ref m_prototype: Option = None; [INFO] [stdout] 1548 + let ref m_constructor_method: Option = None; [INFO] [stdout] 1549 + [INFO] [stdout] 1550 + pub(crate) fn TypeAfterSubstitution(origin: Thingy, substitute_types: SharedArray) { [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 { [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 { [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 { [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 { [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::() { [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 { [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 = 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 { [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 = 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 { [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 { [INFO] [stdout] 1689 + self.origin().parent() [INFO] [stdout] 1690 + } [INFO] [stdout] 1691 + [INFO] [stdout] 1692 + pub override fn asdoc(&self) -> Option> { [INFO] [stdout] 1693 + self.origin().asdoc() [INFO] [stdout] 1694 + } [INFO] [stdout] 1695 + [INFO] [stdout] 1696 + pub override fn metadata(&self) -> SharedArray> { [INFO] [stdout] 1697 + self.origin().metadata() [INFO] [stdout] 1698 + } [INFO] [stdout] 1699 + [INFO] [stdout] 1700 + pub override fn includes_undefined(&self, host: &SemanticHost) -> Result { [INFO] [stdout] 1701 + Ok(false) [INFO] [stdout] 1702 + } [INFO] [stdout] 1703 + [INFO] [stdout] 1704 + pub override fn includes_null(&self, host: &SemanticHost) -> Result { [INFO] [stdout] 1705 + Ok(true) [INFO] [stdout] 1706 + } [INFO] [stdout] 1707 + [INFO] [stdout] 1708 + pub override fn location(&self) -> Option { [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::>().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 = SharedArray::new(); [INFO] [stdout] 1724 + [INFO] [stdout] 1725 + pub(crate) fn TupleType(elements: SharedArray) { [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 { [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 { [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 { [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 { [INFO] [stdout] 1760 + Ok(false) [INFO] [stdout] 1761 + } [INFO] [stdout] 1762 + [INFO] [stdout] 1763 + pub override fn includes_null(&self, host: &SemanticHost) -> Result { [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::>().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> = SharedArray::new(); [INFO] [stdout] 1776 + let ref m_result_type: Option = None; [INFO] [stdout] 1777 + [INFO] [stdout] 1778 + pub(crate) fn FunctionType(params: SharedArray>, 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> { [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 { [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 { [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 { [INFO] [stdout] 1818 + Ok(false) [INFO] [stdout] 1819 + } [INFO] [stdout] 1820 + [INFO] [stdout] 1821 + pub override fn includes_null(&self, host: &SemanticHost) -> Result { [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::::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 = 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 { [INFO] [stdout] 1860 + Ok(false) [INFO] [stdout] 1861 + } [INFO] [stdout] 1862 + [INFO] [stdout] 1863 + pub override fn includes_null(&self) -> Result { [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::() { [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 = 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 { [INFO] [stdout] 1899 + Ok(false) [INFO] [stdout] 1900 + } [INFO] [stdout] 1901 + [INFO] [stdout] 1902 + pub override fn includes_null(&self) -> Result { [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::() { [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 = None; [INFO] [stdout] 1926 + let ref m_location: Option = 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 { [INFO] [stdout] 1938 + self.m_location() [INFO] [stdout] 1939 + } [INFO] [stdout] 1940 + [INFO] [stdout] 1941 + pub override fn set_location(&self, loc: Option) { [INFO] [stdout] 1942 + self.set_m_location(loc); [INFO] [stdout] 1943 + } [INFO] [stdout] 1944 + [INFO] [stdout] 1945 + pub override fn includes_undefined(&self) -> Result { [INFO] [stdout] 1946 + Ok(false) [INFO] [stdout] 1947 + } [INFO] [stdout] 1948 + [INFO] [stdout] 1949 + pub override fn includes_null(&self) -> Result { [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 = None; [INFO] [stdout] 1972 + let ref m_location: Option = None; [INFO] [stdout] 1973 + let ref m_asdoc: Option> = None; [INFO] [stdout] 1974 + let ref m_metadata: SharedArray> = SharedArray::new(); [INFO] [stdout] 1975 + let ref m_constant: Option = None; [INFO] [stdout] 1976 + let ref m_static_type: Option = None; [INFO] [stdout] 1977 + let ref m_parent: Option = None; [INFO] [stdout] 1978 + let m_flags: VariableSlotFlags = VariableSlotFlags::empty(); [INFO] [stdout] 1979 + let ref m_bindable_event: Option = 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 { [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) { [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 { [INFO] [stdout] 2035 + self.m_location() [INFO] [stdout] 2036 + } [INFO] [stdout] 2037 + [INFO] [stdout] 2038 + pub override fn set_location(&self, loc: Option) { [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 { [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) { [INFO] [stdout] 2048 + self.set_m_bindable_event(name); [INFO] [stdout] 2049 + } [INFO] [stdout] 2050 + [INFO] [stdout] 2051 + pub override fn parent(&self) -> Option { [INFO] [stdout] 2052 + self.m_parent() [INFO] [stdout] 2053 + } [INFO] [stdout] 2054 + [INFO] [stdout] 2055 + pub override fn set_parent(&self, p: Option) { [INFO] [stdout] 2056 + self.set_m_parent(p); [INFO] [stdout] 2057 + } [INFO] [stdout] 2058 + [INFO] [stdout] 2059 + pub override fn asdoc(&self) -> Option> { [INFO] [stdout] 2060 + self.m_asdoc() [INFO] [stdout] 2061 + } [INFO] [stdout] 2062 + [INFO] [stdout] 2063 + pub override fn set_asdoc(&self, asdoc: Option>) { [INFO] [stdout] 2064 + self.set_m_asdoc(asdoc); [INFO] [stdout] 2065 + } [INFO] [stdout] 2066 + [INFO] [stdout] 2067 + pub override fn metadata(&self) -> SharedArray> { [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 = None; [INFO] [stdout] 2079 + let ref m_indirect_type_params: SharedArray = SharedArray::new(); [INFO] [stdout] 2080 + let ref m_indirect_substitute_types: SharedArray = SharedArray::new(); [INFO] [stdout] 2081 + let ref m_static_type: Option = None; [INFO] [stdout] 2082 + [INFO] [stdout] 2083 + pub(crate) fn VariableSlotAfterSubstitution(origin: &Thingy, indirect_type_params: &SharedArray, indirect_substitute_types: &SharedArray) { [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 { [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 { [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 { [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::() { [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 { [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 { [INFO] [stdout] 2142 + self.origin().bindable_event() [INFO] [stdout] 2143 + } [INFO] [stdout] 2144 + [INFO] [stdout] 2145 + pub override fn parent(&self) -> Option { [INFO] [stdout] 2146 + self.origin().parent() [INFO] [stdout] 2147 + } [INFO] [stdout] 2148 + [INFO] [stdout] 2149 + pub override fn asdoc(&self) -> Option> { [INFO] [stdout] 2150 + self.origin().asdoc() [INFO] [stdout] 2151 + } [INFO] [stdout] 2152 + [INFO] [stdout] 2153 + pub override fn metadata(&self) -> SharedArray> { [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 = None; [INFO] [stdout] 2176 + let ref m_location: Option = None; [INFO] [stdout] 2177 + let ref m_asdoc: Option> = None; [INFO] [stdout] 2178 + let ref m_getter: Option = None; [INFO] [stdout] 2179 + let ref m_setter: Option = None; [INFO] [stdout] 2180 + let ref m_static_type: Option = None; [INFO] [stdout] 2181 + let ref m_parent: Option = None; [INFO] [stdout] 2182 + let m_flags: VirtualSlotFlags = VirtualSlotFlags::empty(); [INFO] [stdout] 2183 + let ref m_bindable_event: Option = 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 { [INFO] [stdout] 2195 + self.m_getter() [INFO] [stdout] 2196 + } [INFO] [stdout] 2197 + [INFO] [stdout] 2198 + pub override fn set_getter(&self, m: Option) { [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 { [INFO] [stdout] 2203 + self.m_setter() [INFO] [stdout] 2204 + } [INFO] [stdout] 2205 + [INFO] [stdout] 2206 + pub override fn set_setter(&self, m: Option) { [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 = 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::() { [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::() { [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 { [INFO] [stdout] 2260 + self.m_location() [INFO] [stdout] 2261 + } [INFO] [stdout] 2262 + [INFO] [stdout] 2263 + pub override fn set_location(&self, loc: Option) { [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 { [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) { [INFO] [stdout] 2273 + self.set_m_bindable_event(name); [INFO] [stdout] 2274 + } [INFO] [stdout] 2275 + [INFO] [stdout] 2276 + pub override fn parent(&self) -> Option { [INFO] [stdout] 2277 + self.m_parent() [INFO] [stdout] 2278 + } [INFO] [stdout] 2279 + [INFO] [stdout] 2280 + pub override fn set_parent(&self, p: Option) { [INFO] [stdout] 2281 + self.set_m_parent(p); [INFO] [stdout] 2282 + } [INFO] [stdout] 2283 + [INFO] [stdout] 2284 + pub override fn asdoc(&self) -> Option> { [INFO] [stdout] 2285 + self.m_asdoc() [INFO] [stdout] 2286 + } [INFO] [stdout] 2287 + [INFO] [stdout] 2288 + pub override fn set_asdoc(&self, asdoc: Option>) { [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 = None; [INFO] [stdout] 2299 + let ref m_indirect_type_params: SharedArray = SharedArray::new(); [INFO] [stdout] 2300 + let ref m_indirect_substitute_types: SharedArray = SharedArray::new(); [INFO] [stdout] 2301 + let ref m_getter: Option = None; [INFO] [stdout] 2302 + let ref m_setter: Option = None; [INFO] [stdout] 2303 + let ref m_static_type: Option = None; [INFO] [stdout] 2304 + [INFO] [stdout] 2305 + pub(crate) fn VirtualSlotAfterSubstitution(origin: &Thingy, indirect_type_params: &SharedArray, indirect_substitute_types: &SharedArray) { [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 { [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 { [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 { [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 { [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 { [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::() { [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 { [INFO] [stdout] 2384 + self.origin().bindable_event() [INFO] [stdout] 2385 + } [INFO] [stdout] 2386 + [INFO] [stdout] 2387 + pub override fn parent(&self) -> Option { [INFO] [stdout] 2388 + self.origin().parent() [INFO] [stdout] 2389 + } [INFO] [stdout] 2390 + [INFO] [stdout] 2391 + pub override fn asdoc(&self) -> Option> { [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 = None; [INFO] [stdout] 2414 + let ref m_location: Option = None; [INFO] [stdout] 2415 + let ref m_asdoc: Option> = None; [INFO] [stdout] 2416 + let ref m_metadata: SharedArray> = SharedArray::new(); [INFO] [stdout] 2417 + let ref m_activation: Option = None; [INFO] [stdout] 2418 + let ref m_signature: Option = None; [INFO] [stdout] 2419 + let ref m_parent: Option = None; [INFO] [stdout] 2420 + let ref m_of_virtual_slot: Option = None; [INFO] [stdout] 2421 + let ref m_overriden_by: SharedArray = SharedArray::new(); [INFO] [stdout] 2422 + let ref m_overrides_method: Option = 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 { [INFO] [stdout] 2516 + self.m_location() [INFO] [stdout] 2517 + } [INFO] [stdout] 2518 + [INFO] [stdout] 2519 + pub override fn set_location(&self, loc: Option) { [INFO] [stdout] 2520 + self.set_m_location(loc); [INFO] [stdout] 2521 + } [INFO] [stdout] 2522 + [INFO] [stdout] 2523 + pub override fn parent(&self) -> Option { [INFO] [stdout] 2524 + self.m_parent() [INFO] [stdout] 2525 + } [INFO] [stdout] 2526 + [INFO] [stdout] 2527 + pub override fn set_parent(&self, p: Option) { [INFO] [stdout] 2528 + self.set_m_parent(p); [INFO] [stdout] 2529 + } [INFO] [stdout] 2530 + [INFO] [stdout] 2531 + pub override fn asdoc(&self) -> Option> { [INFO] [stdout] 2532 + self.m_asdoc() [INFO] [stdout] 2533 + } [INFO] [stdout] 2534 + [INFO] [stdout] 2535 + pub override fn set_asdoc(&self, asdoc: Option>) { [INFO] [stdout] 2536 + self.set_m_asdoc(asdoc); [INFO] [stdout] 2537 + } [INFO] [stdout] 2538 + [INFO] [stdout] 2539 + pub override fn metadata(&self) -> SharedArray> { [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 { [INFO] [stdout] 2552 + self.m_activation() [INFO] [stdout] 2553 + } [INFO] [stdout] 2554 + [INFO] [stdout] 2555 + pub override fn set_activation(&self, activation: Option) { [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 { [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) { [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 { [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 { [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) { [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 = None; [INFO] [stdout] 2586 + let ref m_indirect_type_params: SharedArray = SharedArray::new(); [INFO] [stdout] 2587 + let ref m_indirect_substitute_types: SharedArray = SharedArray::new(); [INFO] [stdout] 2588 + let ref m_signature: Option = None; [INFO] [stdout] 2589 + let ref m_of_virtual_slot: Option = None; [INFO] [stdout] 2590 + let ref m_overriden_by: Option> = None; [INFO] [stdout] 2591 + let ref m_overrides_method: Option = 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, indirect_substitute_types: &SharedArray) { [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 { [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 { [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 { [INFO] [stdout] 2654 + None [INFO] [stdout] 2655 + } [INFO] [stdout] 2656 + [INFO] [stdout] 2657 + pub override fn parent(&self) -> Option { [INFO] [stdout] 2658 + self.origin().parent() [INFO] [stdout] 2659 + } [INFO] [stdout] 2660 + [INFO] [stdout] 2661 + pub override fn asdoc(&self) -> Option> { [INFO] [stdout] 2662 + self.origin().asdoc() [INFO] [stdout] 2663 + } [INFO] [stdout] 2664 + [INFO] [stdout] 2665 + pub override fn metadata(&self) -> SharedArray> { [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::() { [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 { [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 { [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 = 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 { [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) { [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 = None; [INFO] [stdout] 2729 + let ref m_properties: NameMap = NameMap::new(); [INFO] [stdout] 2730 + let ref m_open_ns_set: SharedArray = SharedArray::new(); [INFO] [stdout] 2731 + let ref m_import_list: SharedArray = 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 { [INFO] [stdout] 2738 + self.m_parent() [INFO] [stdout] 2739 + } [INFO] [stdout] 2740 + [INFO] [stdout] 2741 + pub override fn set_parent(&self, p: Option) { [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 { [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 { [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 = 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 = 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 = None; [INFO] [stdout] 2787 + let ref m_this: Option = None; [INFO] [stdout] 2788 + let ref m_property_has_capture: Option> = 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 { [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) { [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 = 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 = 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 = 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 = 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 = 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 = None; [INFO] [stdout] 2915 + let ref m_location: Option = None; [INFO] [stdout] 2916 + [INFO] [stdout] 2917 + pub(crate) fn PackagePropertyImport(property: &Thingy, location: Option, 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 { [INFO] [stdout] 2928 + self.m_location() [INFO] [stdout] 2929 + } [INFO] [stdout] 2930 + [INFO] [stdout] 2931 + pub override fn set_location(&self, loc: Option) { [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 = None; [INFO] [stdout] 2938 + let ref m_location: Option = None; [INFO] [stdout] 2939 + [INFO] [stdout] 2940 + pub(crate) fn PackageWildcardImport(package: &Thingy, location: Option, 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 { [INFO] [stdout] 2951 + self.m_location() [INFO] [stdout] 2952 + } [INFO] [stdout] 2953 + [INFO] [stdout] 2954 + pub override fn set_location(&self, loc: Option) { [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 = None; [INFO] [stdout] 2961 + let ref m_location: Option = None; [INFO] [stdout] 2962 + [INFO] [stdout] 2963 + pub(crate) fn PackageRecursiveImport(package: &Thingy, location: Option, 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 { [INFO] [stdout] 2974 + self.m_location() [INFO] [stdout] 2975 + } [INFO] [stdout] 2976 + [INFO] [stdout] 2977 + pub override fn set_location(&self, loc: Option) { [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 = 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 = 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 = None; [INFO] [stdout] 3144 + let ref m_qual: Option = None; [INFO] [stdout] 3145 + let ref m_key: Option = None; [INFO] [stdout] 3146 + [INFO] [stdout] 3147 + pub(crate) fn XmlReferenceValue(base: &Thingy, qualifier: Option, 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 { [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 = None; [INFO] [stdout] 3181 + let ref m_qual: Option = None; [INFO] [stdout] 3182 + let ref m_key: Option = None; [INFO] [stdout] 3183 + [INFO] [stdout] 3184 + pub(crate) fn DynamicReferenceValue(base: &Thingy, qualifier: Option, 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 { [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 = None; [INFO] [stdout] 3218 + let ref m_property: Option = 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 = None; [INFO] [stdout] 3249 + let ref m_qual: Option = None; [INFO] [stdout] 3250 + let ref m_key: Option = None; [INFO] [stdout] 3251 + [INFO] [stdout] 3252 + pub(crate) fn StaticDynamicReferenceValue(base: &Thingy, qualifier: Option, 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 { [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 = None; [INFO] [stdout] 3287 + let ref m_property: Option = 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 = 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 = None; [INFO] [stdout] 3350 + let ref m_property: Option = 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 = None; [INFO] [stdout] 3381 + let ref m_qual: Option = None; [INFO] [stdout] 3382 + let ref m_key: Option = None; [INFO] [stdout] 3383 + [INFO] [stdout] 3384 + pub(crate) fn DynamicScopeReferenceValue(base: &Thingy, qualifier: Option, 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 { [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 = None; [INFO] [stdout] 3418 + let ref m_property: Option = 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 = None; [INFO] [stdout] 3451 + let ref m_key: Option = 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 = None; [INFO] [stdout] 3484 + let ref m_key: Option = 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 = 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 = 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 = 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 { [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