diff --git a/hilti/toolchain/src/compiler/cxx/elements.cc b/hilti/toolchain/src/compiler/cxx/elements.cc index 527c1a9f0..dec5cb917 100644 --- a/hilti/toolchain/src/compiler/cxx/elements.cc +++ b/hilti/toolchain/src/compiler/cxx/elements.cc @@ -143,6 +143,7 @@ std::string cxx::normalize_id(std::string id) { id.append("_"); id = util::replace(id, "%", "0x25"); + id = util::replace(id, "@", "0x40"); id = util::replace(id, "~", "_0x7e_"); // we expect to see this only at the beginning (for "~finally") return id; }; diff --git a/hilti/toolchain/src/compiler/optimizer.cc b/hilti/toolchain/src/compiler/optimizer.cc index 6e4724b2d..dd90c01ac 100644 --- a/hilti/toolchain/src/compiler/optimizer.cc +++ b/hilti/toolchain/src/compiler/optimizer.cc @@ -63,7 +63,7 @@ auto idFeatureFromConstant(const ID& featureConstant) -> std::optionalid(), ":", "_"); + const auto id = hilti::util::replace(*unit->id(), ":", "@"); pushBuilder(builder()->addIf( builder::id(ID(hilti::rt::fmt("__feat%%%s%%%s", id, "uses_random_access")))), [&]() { builder()->addAssign(state().trim, builder::bool_(false)); }); @@ -2327,7 +2327,7 @@ Expression _filters(const ParserState& state) { if ( ! typeID ) return member; - const auto id = hilti::util::replace(*typeID, ":", "_"); + const auto id = hilti::util::replace(*typeID, ":", "@"); const auto flag = builder::id(ID(hilti::rt::fmt("__feat%%%s%%%s", id, "supports_filters"))); return builder::ternary(flag, std::move(member), builder::strong_reference(builder::typeByID("spicy_rt::Filters"))); @@ -2480,7 +2480,7 @@ void ParserBuilder::guardFeatureCode(const type::Unit& unit, const std::vector, int<64>, iterator, optional> __parse_foo_P2_stage2(inout value_ref __data, copy view __cur, copy bool __trim, copy int<64> __lah, copy iterator __lahe, copy optional __error); } &on-heap; -const bool __feat%foo__P0%uses_random_access = True; -const bool __feat%foo__P0%is_filter = False; -const bool __feat%foo__P0%supports_filters = True; -const bool __feat%foo__P0%supports_sinks = True; -const bool __feat%foo__P0%synchronization = True; -const bool __feat%foo__P1%uses_random_access = True; -const bool __feat%foo__P1%is_filter = False; -const bool __feat%foo__P1%supports_filters = True; -const bool __feat%foo__P1%supports_sinks = True; -const bool __feat%foo__P1%synchronization = True; -const bool __feat%foo__P2%uses_random_access = True; -const bool __feat%foo__P2%is_filter = False; -const bool __feat%foo__P2%supports_filters = True; -const bool __feat%foo__P2%supports_sinks = True; -const bool __feat%foo__P2%synchronization = True; +const bool __feat%foo@@P0%uses_random_access = True; +const bool __feat%foo@@P0%is_filter = False; +const bool __feat%foo@@P0%supports_filters = True; +const bool __feat%foo@@P0%supports_sinks = True; +const bool __feat%foo@@P0%synchronization = True; +const bool __feat%foo@@P1%uses_random_access = True; +const bool __feat%foo@@P1%is_filter = False; +const bool __feat%foo@@P1%supports_filters = True; +const bool __feat%foo@@P1%supports_sinks = True; +const bool __feat%foo@@P1%synchronization = True; +const bool __feat%foo@@P2%uses_random_access = True; +const bool __feat%foo@@P2%is_filter = False; +const bool __feat%foo@@P2%supports_filters = True; +const bool __feat%foo@@P2%supports_sinks = True; +const bool __feat%foo@@P2%synchronization = True; method method tuple, int<64>, iterator, optional> foo::P0::__parse_stage1(inout value_ref __data, copy view __cur, copy bool __trim, copy int<64> __lah, copy iterator __lahe, copy optional __error) { # "<...>/default-parser-functions.spicy:12:11" local tuple, int<64>, iterator, optional> __result; try { - if ( __feat%foo__P0%uses_random_access ) + if ( __feat%foo@@P0%uses_random_access ) __trim = False; hilti::debugIndent("spicy"); - if ( __feat%foo__P0%uses_random_access ) { + if ( __feat%foo@@P0%uses_random_access ) { (*self).__begin = begin(__cur); (*self).__position = begin(__cur); } (*self).__error = __error; - if ( __feat%foo__P0%uses_random_access ) + if ( __feat%foo@@P0%uses_random_access ) (*self).__position_update = Null; (*self).__on_0x25_init(); - if ( __feat%foo__P0%uses_random_access ) + if ( __feat%foo@@P0%uses_random_access ) if ( (*self).__position_update ) { __cur = __cur.advance((*(*self).__position_update)); @@ -136,7 +136,7 @@ method method tuple, int<64>, iterator, optional filtered = Null; - if ( __feat%foo__P0%supports_filters ) + if ( __feat%foo@@P0%supports_filters ) if ( filtered = spicy_rt::filter_init(self, __data, __cur) ) { local value_ref filtered_data = filtered; @@ -157,22 +157,22 @@ method method tuple, int<64>, iterator, optional, int<64>, iterator, optional, int<64>, iterator, optional/default-parser-functions.spicy:12:11" local tuple, int<64>, iterator, optional> __result; - if ( __feat%foo__P0%uses_random_access ) + if ( __feat%foo@@P0%uses_random_access ) (*self).__position = begin(__cur); (*self).__error = __error; - if ( __feat%foo__P0%uses_random_access ) + if ( __feat%foo@@P0%uses_random_access ) (*self).__position_update = Null; (*self).__on_0x25_done(); - if ( __feat%foo__P0%uses_random_access ) + if ( __feat%foo@@P0%uses_random_access ) if ( (*self).__position_update ) { __cur = __cur.advance((*(*self).__position_update)); @@ -227,7 +227,7 @@ method method tuple, int<64>, iterator, optional foo::P0::parse1(inout value_ref data, (ncur, lahead, lahead_end, error) = (*unit).__parse_stage1(data, ncur, True, lahead, lahead_end, error); # End parsing production: Unit: foo_P0 -> - if ( __feat%foo__P0%uses_random_access ) + if ( __feat%foo@@P0%uses_random_access ) (*unit).__position = begin(ncur); @@ -272,7 +272,7 @@ method extern method view foo::P0::parse3(inout value_ref - if ( __feat%foo__P0%uses_random_access ) + if ( __feat%foo@@P0%uses_random_access ) (*unit).__position = begin(ncur); @@ -294,7 +294,7 @@ method extern method view foo::P0::parse2(inout value_ref unit, inou (ncur, lahead, lahead_end, error) = (*unit).__parse_stage1(data, ncur, True, lahead, lahead_end, error); # End parsing production: Unit: foo_P0 -> - if ( __feat%foo__P0%uses_random_access ) + if ( __feat%foo@@P0%uses_random_access ) (*unit).__position = begin(ncur); @@ -306,7 +306,7 @@ method extern method view foo::P0::parse2(inout value_ref unit, inou init function void __register_foo_P0() { - if ( __feat%foo__P0%is_filter || __feat%foo__P0%supports_sinks ) { + if ( __feat%foo@@P0%is_filter || __feat%foo@@P0%supports_sinks ) { foo::P0::__parser = [$name="foo::P0", $is_public=False, $parse1=foo::P0::parse1, $parse2=foo::P0::parse2, $parse3=foo::P0::parse3, $context_new=Null, $type_info=typeinfo(P0), $description="", $mime_types=vector(), $ports=vector()]; spicy_rt::registerParser(foo::P0::__parser, $scope, Null); } @@ -318,24 +318,24 @@ method method tuple, int<64>, iterator, optional, int<64>, iterator, optional> __result; try { - if ( __feat%foo__P1%uses_random_access ) + if ( __feat%foo@@P1%uses_random_access ) __trim = False; hilti::debugIndent("spicy"); - if ( __feat%foo__P1%uses_random_access ) { + if ( __feat%foo@@P1%uses_random_access ) { (*self).__begin = begin(__cur); (*self).__position = begin(__cur); } (*self).__error = __error; - if ( __feat%foo__P1%uses_random_access ) + if ( __feat%foo@@P1%uses_random_access ) (*self).__position_update = Null; (*self).__on_0x25_init(); - if ( __feat%foo__P1%uses_random_access ) + if ( __feat%foo@@P1%uses_random_access ) if ( (*self).__position_update ) { __cur = __cur.advance((*(*self).__position_update)); @@ -346,7 +346,7 @@ method method tuple, int<64>, iterator, optional filtered = Null; - if ( __feat%foo__P1%supports_filters ) + if ( __feat%foo@@P1%supports_filters ) if ( filtered = spicy_rt::filter_init(self, __data, __cur) ) { local value_ref filtered_data = filtered; @@ -367,22 +367,22 @@ method method tuple, int<64>, iterator, optional, int<64>, iterator, optional, int<64>, iterator, optional/default-parser-functions.spicy:14:18" local tuple, int<64>, iterator, optional> __result; - if ( __feat%foo__P1%uses_random_access ) + if ( __feat%foo@@P1%uses_random_access ) (*self).__position = begin(__cur); (*self).__error = __error; - if ( __feat%foo__P1%uses_random_access ) + if ( __feat%foo@@P1%uses_random_access ) (*self).__position_update = Null; (*self).__on_0x25_done(); - if ( __feat%foo__P1%uses_random_access ) + if ( __feat%foo@@P1%uses_random_access ) if ( (*self).__position_update ) { __cur = __cur.advance((*(*self).__position_update)); @@ -437,7 +437,7 @@ method method tuple, int<64>, iterator, optional foo::P1::parse1(inout value_ref data, (ncur, lahead, lahead_end, error) = (*unit).__parse_stage1(data, ncur, True, lahead, lahead_end, error); # End parsing production: Unit: foo_P1 -> - if ( __feat%foo__P1%uses_random_access ) + if ( __feat%foo@@P1%uses_random_access ) (*unit).__position = begin(ncur); @@ -482,7 +482,7 @@ method extern method view foo::P1::parse3(inout value_ref - if ( __feat%foo__P1%uses_random_access ) + if ( __feat%foo@@P1%uses_random_access ) (*unit).__position = begin(ncur); @@ -504,7 +504,7 @@ method extern method view foo::P1::parse2(inout value_ref unit, inou (ncur, lahead, lahead_end, error) = (*unit).__parse_stage1(data, ncur, True, lahead, lahead_end, error); # End parsing production: Unit: foo_P1 -> - if ( __feat%foo__P1%uses_random_access ) + if ( __feat%foo@@P1%uses_random_access ) (*unit).__position = begin(ncur); @@ -530,24 +530,24 @@ method method tuple, int<64>, iterator, optional, int<64>, iterator, optional> __result; try { - if ( __feat%foo__P2%uses_random_access ) + if ( __feat%foo@@P2%uses_random_access ) __trim = False; hilti::debugIndent("spicy"); - if ( __feat%foo__P2%uses_random_access ) { + if ( __feat%foo@@P2%uses_random_access ) { (*self).__begin = begin(__cur); (*self).__position = begin(__cur); } (*self).__error = __error; - if ( __feat%foo__P2%uses_random_access ) + if ( __feat%foo@@P2%uses_random_access ) (*self).__position_update = Null; (*self).__on_0x25_init(); - if ( __feat%foo__P2%uses_random_access ) + if ( __feat%foo@@P2%uses_random_access ) if ( (*self).__position_update ) { __cur = __cur.advance((*(*self).__position_update)); @@ -558,7 +558,7 @@ method method tuple, int<64>, iterator, optional filtered = Null; - if ( __feat%foo__P2%supports_filters ) + if ( __feat%foo@@P2%supports_filters ) if ( filtered = spicy_rt::filter_init(self, __data, __cur) ) { local value_ref filtered_data = filtered; @@ -579,22 +579,22 @@ method method tuple, int<64>, iterator, optional, int<64>, iterator, optional, int<64>, iterator, optional/default-parser-functions.spicy:17:8" # Begin parsing production: Variable: x -> uint<8> - spicy_rt::waitForInput(__data, __cur, 1, "expecting 1 bytes for unpacking value", "<...>/default-parser-functions.spicy:17:8", __feat%foo__P2%supports_filters ? (*self).__filters : Null); + spicy_rt::waitForInput(__data, __cur, 1, "expecting 1 bytes for unpacking value", "<...>/default-parser-functions.spicy:17:8", __feat%foo@@P2%supports_filters ? (*self).__filters : Null); ((*self).x, __cur) = (*unpack>((__cur, hilti::ByteOrder::Network))); if ( __trim ) @@ -641,12 +641,12 @@ method method tuple, int<64>, iterator, optional, int<64>, iterator, optional/default-parser-functions.spicy:18:8" # Begin parsing production: Variable: y -> uint<8> - spicy_rt::waitForInput(__data, __cur, 1, "expecting 1 bytes for unpacking value", "<...>/default-parser-functions.spicy:18:8", __feat%foo__P2%supports_filters ? (*self).__filters : Null); + spicy_rt::waitForInput(__data, __cur, 1, "expecting 1 bytes for unpacking value", "<...>/default-parser-functions.spicy:18:8", __feat%foo@@P2%supports_filters ? (*self).__filters : Null); ((*self).y, __cur) = (*unpack>((__cur, hilti::ByteOrder::Network))); if ( __trim ) @@ -672,12 +672,12 @@ method method tuple, int<64>, iterator, optional, int<64>, iterator, optional, int<64>, iterator, optional foo::P2::parse1(inout value_ref data, (ncur, lahead, lahead_end, error) = (*unit).__parse_stage1(data, ncur, True, lahead, lahead_end, error); # End parsing production: Unit: foo_P2 -> x y - if ( __feat%foo__P2%uses_random_access ) + if ( __feat%foo@@P2%uses_random_access ) (*unit).__position = begin(ncur); @@ -756,7 +756,7 @@ method extern method view foo::P2::parse3(inout value_ref x y - if ( __feat%foo__P2%uses_random_access ) + if ( __feat%foo@@P2%uses_random_access ) (*unit).__position = begin(ncur); @@ -778,7 +778,7 @@ method extern method view foo::P2::parse2(inout value_ref unit, inou (ncur, lahead, lahead_end, error) = (*unit).__parse_stage1(data, ncur, True, lahead, lahead_end, error); # End parsing production: Unit: foo_P2 -> x y - if ( __feat%foo__P2%uses_random_access ) + if ( __feat%foo@@P2%uses_random_access ) (*unit).__position = begin(ncur); diff --git a/tests/Baseline/spicy.optimization.default-parser-functions/opt.hlt b/tests/Baseline/spicy.optimization.default-parser-functions/opt.hlt index a8011898e..2ec12bb33 100644 --- a/tests/Baseline/spicy.optimization.default-parser-functions/opt.hlt +++ b/tests/Baseline/spicy.optimization.default-parser-functions/opt.hlt @@ -27,21 +27,21 @@ public type P2 = struct { method tuple, int<64>, iterator, optional> __parse_foo_P2_stage2(inout value_ref __data, copy view __cur, copy bool __trim, copy int<64> __lah, copy iterator __lahe, copy optional __error); } &on-heap; -const bool __feat%foo__P0%uses_random_access = False; -const bool __feat%foo__P0%is_filter = False; -const bool __feat%foo__P0%supports_filters = False; -const bool __feat%foo__P0%supports_sinks = False; -const bool __feat%foo__P0%synchronization = False; -const bool __feat%foo__P1%uses_random_access = False; -const bool __feat%foo__P1%is_filter = False; -const bool __feat%foo__P1%supports_filters = False; -const bool __feat%foo__P1%supports_sinks = False; -const bool __feat%foo__P1%synchronization = False; -const bool __feat%foo__P2%uses_random_access = False; -const bool __feat%foo__P2%is_filter = False; -const bool __feat%foo__P2%supports_filters = False; -const bool __feat%foo__P2%supports_sinks = False; -const bool __feat%foo__P2%synchronization = False; +const bool __feat%foo@@P0%uses_random_access = False; +const bool __feat%foo@@P0%is_filter = False; +const bool __feat%foo@@P0%supports_filters = False; +const bool __feat%foo@@P0%supports_sinks = False; +const bool __feat%foo@@P0%synchronization = False; +const bool __feat%foo@@P1%uses_random_access = False; +const bool __feat%foo@@P1%is_filter = False; +const bool __feat%foo@@P1%supports_filters = False; +const bool __feat%foo@@P1%supports_sinks = False; +const bool __feat%foo@@P1%synchronization = False; +const bool __feat%foo@@P2%uses_random_access = False; +const bool __feat%foo@@P2%is_filter = False; +const bool __feat%foo@@P2%supports_filters = False; +const bool __feat%foo@@P2%supports_sinks = False; +const bool __feat%foo@@P2%synchronization = False; init function void __register_foo_P0() { } diff --git a/tests/Baseline/spicy.optimization.feature_requirements/log b/tests/Baseline/spicy.optimization.feature_requirements/log index 131a3b0e9..06b45bae5 100644 --- a/tests/Baseline/spicy.optimization.feature_requirements/log +++ b/tests/Baseline/spicy.optimization.feature_requirements/log @@ -24,148 +24,148 @@ [debug/optimizer] disabling feature 'uses_random_access' of type 'foo::X4' since it is not used [debug/optimizer] disabling feature 'uses_random_access' of type 'foo::X5' since it is not used [debug/optimizer] disabling feature 'uses_random_access' of type 'foo::X6' since it is not used -[debug/optimizer] inlining constant 'foo::__feat%foo__X0%is_filter' -[debug/optimizer] inlining constant 'foo::__feat%foo__X0%supports_filters' -[debug/optimizer] inlining constant 'foo::__feat%foo__X0%supports_filters' -[debug/optimizer] inlining constant 'foo::__feat%foo__X0%supports_filters' -[debug/optimizer] inlining constant 'foo::__feat%foo__X0%supports_sinks' -[debug/optimizer] inlining constant 'foo::__feat%foo__X0%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__X0%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__X0%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__X0%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__X0%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__X0%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__X0%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__X0%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__X0%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__X0%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__X0%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__X0%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__X0%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__X0%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__X0%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__X1%is_filter' -[debug/optimizer] inlining constant 'foo::__feat%foo__X1%supports_filters' -[debug/optimizer] inlining constant 'foo::__feat%foo__X1%supports_filters' -[debug/optimizer] inlining constant 'foo::__feat%foo__X1%supports_filters' -[debug/optimizer] inlining constant 'foo::__feat%foo__X1%supports_sinks' -[debug/optimizer] inlining constant 'foo::__feat%foo__X1%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__X1%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__X1%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__X1%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__X1%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__X1%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__X1%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__X1%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__X1%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__X1%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__X1%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__X1%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__X1%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__X1%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__X1%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__X2%is_filter' -[debug/optimizer] inlining constant 'foo::__feat%foo__X2%supports_filters' -[debug/optimizer] inlining constant 'foo::__feat%foo__X2%supports_filters' -[debug/optimizer] inlining constant 'foo::__feat%foo__X2%supports_filters' -[debug/optimizer] inlining constant 'foo::__feat%foo__X2%supports_sinks' -[debug/optimizer] inlining constant 'foo::__feat%foo__X2%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__X2%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__X2%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__X2%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__X2%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__X2%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__X2%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__X2%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__X2%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__X2%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__X2%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__X2%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__X2%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__X2%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__X2%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__X3%is_filter' -[debug/optimizer] inlining constant 'foo::__feat%foo__X3%is_filter' -[debug/optimizer] inlining constant 'foo::__feat%foo__X3%is_filter' -[debug/optimizer] inlining constant 'foo::__feat%foo__X3%supports_filters' -[debug/optimizer] inlining constant 'foo::__feat%foo__X3%supports_filters' -[debug/optimizer] inlining constant 'foo::__feat%foo__X3%supports_filters' -[debug/optimizer] inlining constant 'foo::__feat%foo__X3%supports_sinks' -[debug/optimizer] inlining constant 'foo::__feat%foo__X3%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__X3%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__X3%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__X3%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__X3%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__X3%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__X3%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__X3%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__X3%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__X3%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__X3%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__X3%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__X3%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__X3%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__X3%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__X4%is_filter' -[debug/optimizer] inlining constant 'foo::__feat%foo__X4%is_filter' -[debug/optimizer] inlining constant 'foo::__feat%foo__X4%is_filter' -[debug/optimizer] inlining constant 'foo::__feat%foo__X4%supports_filters' -[debug/optimizer] inlining constant 'foo::__feat%foo__X4%supports_filters' -[debug/optimizer] inlining constant 'foo::__feat%foo__X4%supports_filters' -[debug/optimizer] inlining constant 'foo::__feat%foo__X4%supports_sinks' -[debug/optimizer] inlining constant 'foo::__feat%foo__X4%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__X4%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__X4%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__X4%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__X4%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__X4%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__X4%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__X4%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__X4%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__X4%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__X4%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__X4%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__X4%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__X4%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__X4%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__X5%supports_filters' -[debug/optimizer] inlining constant 'foo::__feat%foo__X5%supports_filters' -[debug/optimizer] inlining constant 'foo::__feat%foo__X5%supports_filters' -[debug/optimizer] inlining constant 'foo::__feat%foo__X5%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__X5%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__X5%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__X5%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__X5%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__X5%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__X5%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__X5%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__X5%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__X5%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__X5%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__X5%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__X5%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__X5%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__X5%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__X6%is_filter' -[debug/optimizer] inlining constant 'foo::__feat%foo__X6%supports_filters' -[debug/optimizer] inlining constant 'foo::__feat%foo__X6%supports_filters' -[debug/optimizer] inlining constant 'foo::__feat%foo__X6%supports_filters' -[debug/optimizer] inlining constant 'foo::__feat%foo__X6%supports_sinks' -[debug/optimizer] inlining constant 'foo::__feat%foo__X6%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__X6%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__X6%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__X6%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__X6%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__X6%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__X6%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__X6%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__X6%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__X6%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__X6%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__X6%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__X6%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__X6%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__X6%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@X0%is_filter' +[debug/optimizer] inlining constant 'foo::__feat%foo@@X0%supports_filters' +[debug/optimizer] inlining constant 'foo::__feat%foo@@X0%supports_filters' +[debug/optimizer] inlining constant 'foo::__feat%foo@@X0%supports_filters' +[debug/optimizer] inlining constant 'foo::__feat%foo@@X0%supports_sinks' +[debug/optimizer] inlining constant 'foo::__feat%foo@@X0%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@X0%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@X0%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@X0%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@X0%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@X0%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@X0%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@X0%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@X0%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@X0%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@X0%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@X0%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@X0%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@X0%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@X0%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@X1%is_filter' +[debug/optimizer] inlining constant 'foo::__feat%foo@@X1%supports_filters' +[debug/optimizer] inlining constant 'foo::__feat%foo@@X1%supports_filters' +[debug/optimizer] inlining constant 'foo::__feat%foo@@X1%supports_filters' +[debug/optimizer] inlining constant 'foo::__feat%foo@@X1%supports_sinks' +[debug/optimizer] inlining constant 'foo::__feat%foo@@X1%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@X1%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@X1%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@X1%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@X1%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@X1%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@X1%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@X1%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@X1%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@X1%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@X1%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@X1%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@X1%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@X1%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@X1%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@X2%is_filter' +[debug/optimizer] inlining constant 'foo::__feat%foo@@X2%supports_filters' +[debug/optimizer] inlining constant 'foo::__feat%foo@@X2%supports_filters' +[debug/optimizer] inlining constant 'foo::__feat%foo@@X2%supports_filters' +[debug/optimizer] inlining constant 'foo::__feat%foo@@X2%supports_sinks' +[debug/optimizer] inlining constant 'foo::__feat%foo@@X2%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@X2%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@X2%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@X2%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@X2%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@X2%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@X2%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@X2%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@X2%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@X2%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@X2%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@X2%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@X2%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@X2%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@X2%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@X3%is_filter' +[debug/optimizer] inlining constant 'foo::__feat%foo@@X3%is_filter' +[debug/optimizer] inlining constant 'foo::__feat%foo@@X3%is_filter' +[debug/optimizer] inlining constant 'foo::__feat%foo@@X3%supports_filters' +[debug/optimizer] inlining constant 'foo::__feat%foo@@X3%supports_filters' +[debug/optimizer] inlining constant 'foo::__feat%foo@@X3%supports_filters' +[debug/optimizer] inlining constant 'foo::__feat%foo@@X3%supports_sinks' +[debug/optimizer] inlining constant 'foo::__feat%foo@@X3%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@X3%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@X3%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@X3%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@X3%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@X3%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@X3%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@X3%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@X3%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@X3%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@X3%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@X3%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@X3%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@X3%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@X3%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@X4%is_filter' +[debug/optimizer] inlining constant 'foo::__feat%foo@@X4%is_filter' +[debug/optimizer] inlining constant 'foo::__feat%foo@@X4%is_filter' +[debug/optimizer] inlining constant 'foo::__feat%foo@@X4%supports_filters' +[debug/optimizer] inlining constant 'foo::__feat%foo@@X4%supports_filters' +[debug/optimizer] inlining constant 'foo::__feat%foo@@X4%supports_filters' +[debug/optimizer] inlining constant 'foo::__feat%foo@@X4%supports_sinks' +[debug/optimizer] inlining constant 'foo::__feat%foo@@X4%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@X4%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@X4%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@X4%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@X4%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@X4%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@X4%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@X4%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@X4%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@X4%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@X4%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@X4%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@X4%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@X4%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@X4%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@X5%supports_filters' +[debug/optimizer] inlining constant 'foo::__feat%foo@@X5%supports_filters' +[debug/optimizer] inlining constant 'foo::__feat%foo@@X5%supports_filters' +[debug/optimizer] inlining constant 'foo::__feat%foo@@X5%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@X5%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@X5%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@X5%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@X5%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@X5%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@X5%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@X5%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@X5%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@X5%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@X5%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@X5%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@X5%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@X5%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@X5%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@X6%is_filter' +[debug/optimizer] inlining constant 'foo::__feat%foo@@X6%supports_filters' +[debug/optimizer] inlining constant 'foo::__feat%foo@@X6%supports_filters' +[debug/optimizer] inlining constant 'foo::__feat%foo@@X6%supports_filters' +[debug/optimizer] inlining constant 'foo::__feat%foo@@X6%supports_sinks' +[debug/optimizer] inlining constant 'foo::__feat%foo@@X6%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@X6%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@X6%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@X6%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@X6%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@X6%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@X6%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@X6%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@X6%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@X6%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@X6%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@X6%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@X6%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@X6%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@X6%uses_random_access' [debug/optimizer] removing declaration for unused function foo::X0::__parse_foo_X0_stage2 [debug/optimizer] removing declaration for unused function foo::X0::__parse_stage1 [debug/optimizer] removing declaration for unused function foo::X0::parse1 diff --git a/tests/Baseline/spicy.optimization.feature_requirements/noopt.hlt b/tests/Baseline/spicy.optimization.feature_requirements/noopt.hlt index 0647e49a0..008c1a3f3 100644 --- a/tests/Baseline/spicy.optimization.feature_requirements/noopt.hlt +++ b/tests/Baseline/spicy.optimization.feature_requirements/noopt.hlt @@ -190,41 +190,41 @@ type X6 = struct { method tuple, int<64>, iterator, optional> __parse_foo_X6_stage2(inout value_ref __data, copy view __cur, copy bool __trim, copy int<64> __lah, copy iterator __lahe, copy optional __error); } &on-heap; -const bool __feat%foo__X0%uses_random_access = True; -const bool __feat%foo__X0%is_filter = False; -const bool __feat%foo__X0%supports_filters = True; -const bool __feat%foo__X0%supports_sinks = True; -const bool __feat%foo__X0%synchronization = True; -const bool __feat%foo__X1%uses_random_access = True; -const bool __feat%foo__X1%is_filter = False; -const bool __feat%foo__X1%supports_filters = True; -const bool __feat%foo__X1%supports_sinks = True; -const bool __feat%foo__X1%synchronization = True; -const bool __feat%foo__X2%uses_random_access = True; -const bool __feat%foo__X2%is_filter = False; -const bool __feat%foo__X2%supports_filters = True; -const bool __feat%foo__X2%supports_sinks = True; -const bool __feat%foo__X2%synchronization = True; -const bool __feat%foo__X3%uses_random_access = True; -const bool __feat%foo__X3%is_filter = True; -const bool __feat%foo__X3%supports_filters = True; -const bool __feat%foo__X3%supports_sinks = True; -const bool __feat%foo__X3%synchronization = True; -const bool __feat%foo__X4%uses_random_access = True; -const bool __feat%foo__X4%is_filter = True; -const bool __feat%foo__X4%supports_filters = True; -const bool __feat%foo__X4%supports_sinks = True; -const bool __feat%foo__X4%synchronization = True; -const bool __feat%foo__X5%uses_random_access = True; -const bool __feat%foo__X5%is_filter = False; -const bool __feat%foo__X5%supports_filters = True; -const bool __feat%foo__X5%supports_sinks = True; -const bool __feat%foo__X5%synchronization = True; -const bool __feat%foo__X6%uses_random_access = True; -const bool __feat%foo__X6%is_filter = False; -const bool __feat%foo__X6%supports_filters = True; -const bool __feat%foo__X6%supports_sinks = True; -const bool __feat%foo__X6%synchronization = True; +const bool __feat%foo@@X0%uses_random_access = True; +const bool __feat%foo@@X0%is_filter = False; +const bool __feat%foo@@X0%supports_filters = True; +const bool __feat%foo@@X0%supports_sinks = True; +const bool __feat%foo@@X0%synchronization = True; +const bool __feat%foo@@X1%uses_random_access = True; +const bool __feat%foo@@X1%is_filter = False; +const bool __feat%foo@@X1%supports_filters = True; +const bool __feat%foo@@X1%supports_sinks = True; +const bool __feat%foo@@X1%synchronization = True; +const bool __feat%foo@@X2%uses_random_access = True; +const bool __feat%foo@@X2%is_filter = False; +const bool __feat%foo@@X2%supports_filters = True; +const bool __feat%foo@@X2%supports_sinks = True; +const bool __feat%foo@@X2%synchronization = True; +const bool __feat%foo@@X3%uses_random_access = True; +const bool __feat%foo@@X3%is_filter = True; +const bool __feat%foo@@X3%supports_filters = True; +const bool __feat%foo@@X3%supports_sinks = True; +const bool __feat%foo@@X3%synchronization = True; +const bool __feat%foo@@X4%uses_random_access = True; +const bool __feat%foo@@X4%is_filter = True; +const bool __feat%foo@@X4%supports_filters = True; +const bool __feat%foo@@X4%supports_sinks = True; +const bool __feat%foo@@X4%synchronization = True; +const bool __feat%foo@@X5%uses_random_access = True; +const bool __feat%foo@@X5%is_filter = False; +const bool __feat%foo@@X5%supports_filters = True; +const bool __feat%foo@@X5%supports_sinks = True; +const bool __feat%foo@@X5%synchronization = True; +const bool __feat%foo@@X6%uses_random_access = True; +const bool __feat%foo@@X6%is_filter = False; +const bool __feat%foo@@X6%supports_filters = True; +const bool __feat%foo@@X6%supports_sinks = True; +const bool __feat%foo@@X6%synchronization = True; method hook void foo::X0::__on_0x25_init() { ((*self.__position).offset() - (*self.__begin).offset()); @@ -235,24 +235,24 @@ method method tuple, int<64>, iterator, optional, int<64>, iterator, optional> __result; try { - if ( __feat%foo__X0%uses_random_access ) + if ( __feat%foo@@X0%uses_random_access ) __trim = False; hilti::debugIndent("spicy"); - if ( __feat%foo__X0%uses_random_access ) { + if ( __feat%foo@@X0%uses_random_access ) { (*self).__begin = begin(__cur); (*self).__position = begin(__cur); } (*self).__error = __error; - if ( __feat%foo__X0%uses_random_access ) + if ( __feat%foo@@X0%uses_random_access ) (*self).__position_update = Null; (*self).__on_0x25_init(); - if ( __feat%foo__X0%uses_random_access ) + if ( __feat%foo@@X0%uses_random_access ) if ( (*self).__position_update ) { __cur = __cur.advance((*(*self).__position_update)); @@ -263,7 +263,7 @@ method method tuple, int<64>, iterator, optional filtered = Null; - if ( __feat%foo__X0%supports_filters ) + if ( __feat%foo@@X0%supports_filters ) if ( filtered = spicy_rt::filter_init(self, __data, __cur) ) { local value_ref filtered_data = filtered; @@ -284,22 +284,22 @@ method method tuple, int<64>, iterator, optional, int<64>, iterator, optional, int<64>, iterator, optional/feature_requirements.spicy:13:11-15:2" local tuple, int<64>, iterator, optional> __result; - if ( __feat%foo__X0%uses_random_access ) + if ( __feat%foo@@X0%uses_random_access ) (*self).__position = begin(__cur); (*self).__error = __error; - if ( __feat%foo__X0%uses_random_access ) + if ( __feat%foo@@X0%uses_random_access ) (*self).__position_update = Null; (*self).__on_0x25_done(); - if ( __feat%foo__X0%uses_random_access ) + if ( __feat%foo@@X0%uses_random_access ) if ( (*self).__position_update ) { __cur = __cur.advance((*(*self).__position_update)); @@ -354,7 +354,7 @@ method method tuple, int<64>, iterator, optional foo::X0::parse1(inout value_ref data, (ncur, lahead, lahead_end, error) = (*unit).__parse_stage1(data, ncur, True, lahead, lahead_end, error); # End parsing production: Unit: foo_X0 -> - if ( __feat%foo__X0%uses_random_access ) + if ( __feat%foo@@X0%uses_random_access ) (*unit).__position = begin(ncur); @@ -399,7 +399,7 @@ method extern method view foo::X0::parse3(inout value_ref - if ( __feat%foo__X0%uses_random_access ) + if ( __feat%foo@@X0%uses_random_access ) (*unit).__position = begin(ncur); @@ -421,7 +421,7 @@ method extern method view foo::X0::parse2(inout value_ref unit, inou (ncur, lahead, lahead_end, error) = (*unit).__parse_stage1(data, ncur, True, lahead, lahead_end, error); # End parsing production: Unit: foo_X0 -> - if ( __feat%foo__X0%uses_random_access ) + if ( __feat%foo@@X0%uses_random_access ) (*unit).__position = begin(ncur); @@ -433,7 +433,7 @@ method extern method view foo::X0::parse2(inout value_ref unit, inou init function void __register_foo_X0() { - if ( __feat%foo__X0%is_filter || __feat%foo__X0%supports_sinks ) { + if ( __feat%foo@@X0%is_filter || __feat%foo@@X0%supports_sinks ) { foo::X0::__parser = [$name="foo::X0", $is_public=False, $parse1=foo::X0::parse1, $parse2=foo::X0::parse2, $parse3=foo::X0::parse3, $context_new=Null, $type_info=typeinfo(X0), $description="", $mime_types=vector(), $ports=vector()]; spicy_rt::registerParser(foo::X0::__parser, $scope, Null); } @@ -449,24 +449,24 @@ method method tuple, int<64>, iterator, optional, int<64>, iterator, optional> __result; try { - if ( __feat%foo__X1%uses_random_access ) + if ( __feat%foo@@X1%uses_random_access ) __trim = False; hilti::debugIndent("spicy"); - if ( __feat%foo__X1%uses_random_access ) { + if ( __feat%foo@@X1%uses_random_access ) { (*self).__begin = begin(__cur); (*self).__position = begin(__cur); } (*self).__error = __error; - if ( __feat%foo__X1%uses_random_access ) + if ( __feat%foo@@X1%uses_random_access ) (*self).__position_update = Null; (*self).__on_0x25_init(); - if ( __feat%foo__X1%uses_random_access ) + if ( __feat%foo@@X1%uses_random_access ) if ( (*self).__position_update ) { __cur = __cur.advance((*(*self).__position_update)); @@ -477,7 +477,7 @@ method method tuple, int<64>, iterator, optional filtered = Null; - if ( __feat%foo__X1%supports_filters ) + if ( __feat%foo@@X1%supports_filters ) if ( filtered = spicy_rt::filter_init(self, __data, __cur) ) { local value_ref filtered_data = filtered; @@ -498,22 +498,22 @@ method method tuple, int<64>, iterator, optional, int<64>, iterator, optional, int<64>, iterator, optional/feature_requirements.spicy:18:11-20:2" local tuple, int<64>, iterator, optional> __result; - if ( __feat%foo__X1%uses_random_access ) + if ( __feat%foo@@X1%uses_random_access ) (*self).__position = begin(__cur); (*self).__error = __error; - if ( __feat%foo__X1%uses_random_access ) + if ( __feat%foo@@X1%uses_random_access ) (*self).__position_update = Null; (*self).__on_0x25_done(); - if ( __feat%foo__X1%uses_random_access ) + if ( __feat%foo@@X1%uses_random_access ) if ( (*self).__position_update ) { __cur = __cur.advance((*(*self).__position_update)); @@ -568,7 +568,7 @@ method method tuple, int<64>, iterator, optional foo::X1::parse1(inout value_ref data, (ncur, lahead, lahead_end, error) = (*unit).__parse_stage1(data, ncur, True, lahead, lahead_end, error); # End parsing production: Unit: foo_X1 -> - if ( __feat%foo__X1%uses_random_access ) + if ( __feat%foo@@X1%uses_random_access ) (*unit).__position = begin(ncur); @@ -613,7 +613,7 @@ method extern method view foo::X1::parse3(inout value_ref - if ( __feat%foo__X1%uses_random_access ) + if ( __feat%foo@@X1%uses_random_access ) (*unit).__position = begin(ncur); @@ -635,7 +635,7 @@ method extern method view foo::X1::parse2(inout value_ref unit, inou (ncur, lahead, lahead_end, error) = (*unit).__parse_stage1(data, ncur, True, lahead, lahead_end, error); # End parsing production: Unit: foo_X1 -> - if ( __feat%foo__X1%uses_random_access ) + if ( __feat%foo@@X1%uses_random_access ) (*unit).__position = begin(ncur); @@ -647,7 +647,7 @@ method extern method view foo::X1::parse2(inout value_ref unit, inou init function void __register_foo_X1() { - if ( __feat%foo__X1%is_filter || __feat%foo__X1%supports_sinks ) { + if ( __feat%foo@@X1%is_filter || __feat%foo@@X1%supports_sinks ) { foo::X1::__parser = [$name="foo::X1", $is_public=False, $parse1=foo::X1::parse1, $parse2=foo::X1::parse2, $parse3=foo::X1::parse3, $context_new=Null, $type_info=typeinfo(X1), $description="", $mime_types=vector(), $ports=vector()]; spicy_rt::registerParser(foo::X1::__parser, $scope, Null); } @@ -659,24 +659,24 @@ method method tuple, int<64>, iterator, optional, int<64>, iterator, optional> __result; try { - if ( __feat%foo__X2%uses_random_access ) + if ( __feat%foo@@X2%uses_random_access ) __trim = False; hilti::debugIndent("spicy"); - if ( __feat%foo__X2%uses_random_access ) { + if ( __feat%foo@@X2%uses_random_access ) { (*self).__begin = begin(__cur); (*self).__position = begin(__cur); } (*self).__error = __error; - if ( __feat%foo__X2%uses_random_access ) + if ( __feat%foo@@X2%uses_random_access ) (*self).__position_update = Null; (*self).__on_0x25_init(); - if ( __feat%foo__X2%uses_random_access ) + if ( __feat%foo@@X2%uses_random_access ) if ( (*self).__position_update ) { __cur = __cur.advance((*(*self).__position_update)); @@ -687,7 +687,7 @@ method method tuple, int<64>, iterator, optional filtered = Null; - if ( __feat%foo__X2%supports_filters ) + if ( __feat%foo@@X2%supports_filters ) if ( filtered = spicy_rt::filter_init(self, __data, __cur) ) { local value_ref filtered_data = filtered; @@ -708,22 +708,22 @@ method method tuple, int<64>, iterator, optional, int<64>, iterator, optional, int<64>, iterator, optional/feature_requirements.spicy:23:11" local tuple, int<64>, iterator, optional> __result; - if ( __feat%foo__X2%uses_random_access ) + if ( __feat%foo@@X2%uses_random_access ) (*self).__position = begin(__cur); (*self).__error = __error; - if ( __feat%foo__X2%uses_random_access ) + if ( __feat%foo@@X2%uses_random_access ) (*self).__position_update = Null; (*self).__on_0x25_done(); - if ( __feat%foo__X2%uses_random_access ) + if ( __feat%foo@@X2%uses_random_access ) if ( (*self).__position_update ) { __cur = __cur.advance((*(*self).__position_update)); @@ -778,7 +778,7 @@ method method tuple, int<64>, iterator, optional foo::X2::parse1(inout value_ref data, (ncur, lahead, lahead_end, error) = (*unit).__parse_stage1(data, ncur, True, lahead, lahead_end, error); # End parsing production: Unit: foo_X2 -> - if ( __feat%foo__X2%uses_random_access ) + if ( __feat%foo@@X2%uses_random_access ) (*unit).__position = begin(ncur); @@ -823,7 +823,7 @@ method extern method view foo::X2::parse3(inout value_ref - if ( __feat%foo__X2%uses_random_access ) + if ( __feat%foo@@X2%uses_random_access ) (*unit).__position = begin(ncur); @@ -845,7 +845,7 @@ method extern method view foo::X2::parse2(inout value_ref unit, inou (ncur, lahead, lahead_end, error) = (*unit).__parse_stage1(data, ncur, True, lahead, lahead_end, error); # End parsing production: Unit: foo_X2 -> - if ( __feat%foo__X2%uses_random_access ) + if ( __feat%foo@@X2%uses_random_access ) (*unit).__position = begin(ncur); @@ -857,7 +857,7 @@ method extern method view foo::X2::parse2(inout value_ref unit, inou init function void __register_foo_X2() { - if ( __feat%foo__X2%is_filter || __feat%foo__X2%supports_sinks ) { + if ( __feat%foo@@X2%is_filter || __feat%foo@@X2%supports_sinks ) { foo::X2::__parser = [$name="foo::X2", $is_public=False, $parse1=foo::X2::parse1, $parse2=foo::X2::parse2, $parse3=foo::X2::parse3, $context_new=Null, $type_info=typeinfo(X2), $description="", $mime_types=vector(), $ports=vector()]; spicy_rt::registerParser(foo::X2::__parser, $scope, Null); } @@ -869,24 +869,24 @@ method method tuple, int<64>, iterator, optional, int<64>, iterator, optional> __result; try { - if ( __feat%foo__X3%uses_random_access ) + if ( __feat%foo@@X3%uses_random_access ) __trim = False; hilti::debugIndent("spicy"); - if ( __feat%foo__X3%uses_random_access ) { + if ( __feat%foo@@X3%uses_random_access ) { (*self).__begin = begin(__cur); (*self).__position = begin(__cur); } (*self).__error = __error; - if ( __feat%foo__X3%uses_random_access ) + if ( __feat%foo@@X3%uses_random_access ) (*self).__position_update = Null; (*self).__on_0x25_init(); - if ( __feat%foo__X3%uses_random_access ) + if ( __feat%foo@@X3%uses_random_access ) if ( (*self).__position_update ) { __cur = __cur.advance((*(*self).__position_update)); @@ -897,7 +897,7 @@ method method tuple, int<64>, iterator, optional filtered = Null; - if ( __feat%foo__X3%supports_filters ) + if ( __feat%foo@@X3%supports_filters ) if ( filtered = spicy_rt::filter_init(self, __data, __cur) ) { local value_ref filtered_data = filtered; @@ -918,26 +918,26 @@ method method tuple, int<64>, iterator, optional, int<64>, iterator, optional, int<64>, iterator, optional/feature_requirements.spicy:26:11-28:2" local tuple, int<64>, iterator, optional> __result; - if ( __feat%foo__X3%uses_random_access ) + if ( __feat%foo@@X3%uses_random_access ) (*self).__position = begin(__cur); (*self).__error = __error; - if ( __feat%foo__X3%uses_random_access ) + if ( __feat%foo@@X3%uses_random_access ) (*self).__position_update = Null; (*self).__on_0x25_done(); - if ( __feat%foo__X3%uses_random_access ) + if ( __feat%foo@@X3%uses_random_access ) if ( (*self).__position_update ) { __cur = __cur.advance((*(*self).__position_update)); @@ -992,11 +992,11 @@ method method tuple, int<64>, iterator, optional foo::X3::parse1(inout value_ref data, (ncur, lahead, lahead_end, error) = (*unit).__parse_stage1(data, ncur, True, lahead, lahead_end, error); # End parsing production: Unit: foo_X3 -> - if ( __feat%foo__X3%uses_random_access ) + if ( __feat%foo@@X3%uses_random_access ) (*unit).__position = begin(ncur); @@ -1041,7 +1041,7 @@ method extern method view foo::X3::parse3(inout value_ref - if ( __feat%foo__X3%uses_random_access ) + if ( __feat%foo@@X3%uses_random_access ) (*unit).__position = begin(ncur); @@ -1063,7 +1063,7 @@ method extern method view foo::X3::parse2(inout value_ref unit, inou (ncur, lahead, lahead_end, error) = (*unit).__parse_stage1(data, ncur, True, lahead, lahead_end, error); # End parsing production: Unit: foo_X3 -> - if ( __feat%foo__X3%uses_random_access ) + if ( __feat%foo@@X3%uses_random_access ) (*unit).__position = begin(ncur); @@ -1075,7 +1075,7 @@ method extern method view foo::X3::parse2(inout value_ref unit, inou init function void __register_foo_X3() { - if ( __feat%foo__X3%is_filter || __feat%foo__X3%supports_sinks ) { + if ( __feat%foo@@X3%is_filter || __feat%foo@@X3%supports_sinks ) { foo::X3::__parser = [$name="foo::X3", $is_public=False, $parse1=foo::X3::parse1, $parse2=foo::X3::parse2, $parse3=foo::X3::parse3, $context_new=Null, $type_info=typeinfo(X3), $description="", $mime_types=vector(), $ports=vector()]; spicy_rt::registerParser(foo::X3::__parser, $scope, Null); } @@ -1087,24 +1087,24 @@ method method tuple, int<64>, iterator, optional, int<64>, iterator, optional> __result; try { - if ( __feat%foo__X4%uses_random_access ) + if ( __feat%foo@@X4%uses_random_access ) __trim = False; hilti::debugIndent("spicy"); - if ( __feat%foo__X4%uses_random_access ) { + if ( __feat%foo@@X4%uses_random_access ) { (*self).__begin = begin(__cur); (*self).__position = begin(__cur); } (*self).__error = __error; - if ( __feat%foo__X4%uses_random_access ) + if ( __feat%foo@@X4%uses_random_access ) (*self).__position_update = Null; (*self).__on_0x25_init(); - if ( __feat%foo__X4%uses_random_access ) + if ( __feat%foo@@X4%uses_random_access ) if ( (*self).__position_update ) { __cur = __cur.advance((*(*self).__position_update)); @@ -1115,7 +1115,7 @@ method method tuple, int<64>, iterator, optional filtered = Null; - if ( __feat%foo__X4%supports_filters ) + if ( __feat%foo@@X4%supports_filters ) if ( filtered = spicy_rt::filter_init(self, __data, __cur) ) { local value_ref filtered_data = filtered; @@ -1136,26 +1136,26 @@ method method tuple, int<64>, iterator, optional, int<64>, iterator, optional, int<64>, iterator, optional/feature_requirements.spicy:32:11-34:2" local tuple, int<64>, iterator, optional> __result; - if ( __feat%foo__X4%uses_random_access ) + if ( __feat%foo@@X4%uses_random_access ) (*self).__position = begin(__cur); (*self).__error = __error; - if ( __feat%foo__X4%uses_random_access ) + if ( __feat%foo@@X4%uses_random_access ) (*self).__position_update = Null; (*self).__on_0x25_done(); - if ( __feat%foo__X4%uses_random_access ) + if ( __feat%foo@@X4%uses_random_access ) if ( (*self).__position_update ) { __cur = __cur.advance((*(*self).__position_update)); @@ -1210,11 +1210,11 @@ method method tuple, int<64>, iterator, optional foo::X4::parse1(inout value_ref data, (ncur, lahead, lahead_end, error) = (*unit).__parse_stage1(data, ncur, True, lahead, lahead_end, error); # End parsing production: Unit: foo_X4 -> - if ( __feat%foo__X4%uses_random_access ) + if ( __feat%foo@@X4%uses_random_access ) (*unit).__position = begin(ncur); @@ -1259,7 +1259,7 @@ method extern method view foo::X4::parse3(inout value_ref - if ( __feat%foo__X4%uses_random_access ) + if ( __feat%foo@@X4%uses_random_access ) (*unit).__position = begin(ncur); @@ -1281,7 +1281,7 @@ method extern method view foo::X4::parse2(inout value_ref unit, inou (ncur, lahead, lahead_end, error) = (*unit).__parse_stage1(data, ncur, True, lahead, lahead_end, error); # End parsing production: Unit: foo_X4 -> - if ( __feat%foo__X4%uses_random_access ) + if ( __feat%foo@@X4%uses_random_access ) (*unit).__position = begin(ncur); @@ -1293,7 +1293,7 @@ method extern method view foo::X4::parse2(inout value_ref unit, inou init function void __register_foo_X4() { - if ( __feat%foo__X4%is_filter || __feat%foo__X4%supports_sinks ) { + if ( __feat%foo@@X4%is_filter || __feat%foo@@X4%supports_sinks ) { foo::X4::__parser = [$name="foo::X4", $is_public=False, $parse1=foo::X4::parse1, $parse2=foo::X4::parse2, $parse3=foo::X4::parse3, $context_new=Null, $type_info=typeinfo(X4), $description="", $mime_types=vector(), $ports=vector()]; spicy_rt::registerParser(foo::X4::__parser, $scope, Null); } @@ -1309,24 +1309,24 @@ method method tuple, int<64>, iterator, optional, int<64>, iterator, optional> __result; try { - if ( __feat%foo__X5%uses_random_access ) + if ( __feat%foo@@X5%uses_random_access ) __trim = False; hilti::debugIndent("spicy"); - if ( __feat%foo__X5%uses_random_access ) { + if ( __feat%foo@@X5%uses_random_access ) { (*self).__begin = begin(__cur); (*self).__position = begin(__cur); } (*self).__error = __error; - if ( __feat%foo__X5%uses_random_access ) + if ( __feat%foo@@X5%uses_random_access ) (*self).__position_update = Null; (*self).__on_0x25_init(); - if ( __feat%foo__X5%uses_random_access ) + if ( __feat%foo@@X5%uses_random_access ) if ( (*self).__position_update ) { __cur = __cur.advance((*(*self).__position_update)); @@ -1337,7 +1337,7 @@ method method tuple, int<64>, iterator, optional filtered = Null; - if ( __feat%foo__X5%supports_filters ) + if ( __feat%foo@@X5%supports_filters ) if ( filtered = spicy_rt::filter_init(self, __data, __cur) ) { local value_ref filtered_data = filtered; @@ -1358,22 +1358,22 @@ method method tuple, int<64>, iterator, optional, int<64>, iterator, optional, int<64>, iterator, optional/feature_requirements.spicy:36:18-40:2" local tuple, int<64>, iterator, optional> __result; - if ( __feat%foo__X5%uses_random_access ) + if ( __feat%foo@@X5%uses_random_access ) (*self).__position = begin(__cur); (*self).__error = __error; - if ( __feat%foo__X5%uses_random_access ) + if ( __feat%foo@@X5%uses_random_access ) (*self).__position_update = Null; (*self).__on_0x25_done(); - if ( __feat%foo__X5%uses_random_access ) + if ( __feat%foo@@X5%uses_random_access ) if ( (*self).__position_update ) { __cur = __cur.advance((*(*self).__position_update)); @@ -1428,7 +1428,7 @@ method method tuple, int<64>, iterator, optional foo::X5::parse1(inout value_ref data, (ncur, lahead, lahead_end, error) = (*unit).__parse_stage1(data, ncur, True, lahead, lahead_end, error); # End parsing production: Unit: foo_X5 -> - if ( __feat%foo__X5%uses_random_access ) + if ( __feat%foo@@X5%uses_random_access ) (*unit).__position = begin(ncur); @@ -1473,7 +1473,7 @@ method extern method view foo::X5::parse3(inout value_ref - if ( __feat%foo__X5%uses_random_access ) + if ( __feat%foo@@X5%uses_random_access ) (*unit).__position = begin(ncur); @@ -1495,7 +1495,7 @@ method extern method view foo::X5::parse2(inout value_ref unit, inou (ncur, lahead, lahead_end, error) = (*unit).__parse_stage1(data, ncur, True, lahead, lahead_end, error); # End parsing production: Unit: foo_X5 -> - if ( __feat%foo__X5%uses_random_access ) + if ( __feat%foo@@X5%uses_random_access ) (*unit).__position = begin(ncur); @@ -1519,24 +1519,24 @@ method method tuple, int<64>, iterator, optional, int<64>, iterator, optional> __result; try { - if ( __feat%foo__X6%uses_random_access ) + if ( __feat%foo@@X6%uses_random_access ) __trim = False; hilti::debugIndent("spicy"); - if ( __feat%foo__X6%uses_random_access ) { + if ( __feat%foo@@X6%uses_random_access ) { (*self).__begin = begin(__cur); (*self).__position = begin(__cur); } (*self).__error = __error; - if ( __feat%foo__X6%uses_random_access ) + if ( __feat%foo@@X6%uses_random_access ) (*self).__position_update = Null; (*self).__on_0x25_init(); - if ( __feat%foo__X6%uses_random_access ) + if ( __feat%foo@@X6%uses_random_access ) if ( (*self).__position_update ) { __cur = __cur.advance((*(*self).__position_update)); @@ -1547,7 +1547,7 @@ method method tuple, int<64>, iterator, optional filtered = Null; - if ( __feat%foo__X6%supports_filters ) + if ( __feat%foo@@X6%supports_filters ) if ( filtered = spicy_rt::filter_init(self, __data, __cur) ) { local value_ref filtered_data = filtered; @@ -1568,23 +1568,23 @@ method method tuple, int<64>, iterator, optional, int<64>, iterator, optional, int<64>, iterator, optional/feature_requirements.spicy:43:11-46:2" local tuple, int<64>, iterator, optional> __result; - if ( __feat%foo__X6%uses_random_access ) + if ( __feat%foo@@X6%uses_random_access ) (*self).__position = begin(__cur); (*self).__error = __error; - if ( __feat%foo__X6%uses_random_access ) + if ( __feat%foo@@X6%uses_random_access ) (*self).__position_update = Null; (*self).__on_0x25_done(); - if ( __feat%foo__X6%uses_random_access ) + if ( __feat%foo@@X6%uses_random_access ) if ( (*self).__position_update ) { __cur = __cur.advance((*(*self).__position_update)); @@ -1639,7 +1639,7 @@ method method tuple, int<64>, iterator, optional foo::X6::parse1(inout value_ref data, (ncur, lahead, lahead_end, error) = (*unit).__parse_stage1(data, ncur, True, lahead, lahead_end, error); # End parsing production: Unit: foo_X6 -> - if ( __feat%foo__X6%uses_random_access ) + if ( __feat%foo@@X6%uses_random_access ) (*unit).__position = begin(ncur); @@ -1685,7 +1685,7 @@ method extern method view foo::X6::parse3(inout value_ref - if ( __feat%foo__X6%uses_random_access ) + if ( __feat%foo@@X6%uses_random_access ) (*unit).__position = begin(ncur); @@ -1707,7 +1707,7 @@ method extern method view foo::X6::parse2(inout value_ref unit, inou (ncur, lahead, lahead_end, error) = (*unit).__parse_stage1(data, ncur, True, lahead, lahead_end, error); # End parsing production: Unit: foo_X6 -> - if ( __feat%foo__X6%uses_random_access ) + if ( __feat%foo@@X6%uses_random_access ) (*unit).__position = begin(ncur); @@ -1719,7 +1719,7 @@ method extern method view foo::X6::parse2(inout value_ref unit, inou init function void __register_foo_X6() { - if ( __feat%foo__X6%is_filter || __feat%foo__X6%supports_sinks ) { + if ( __feat%foo@@X6%is_filter || __feat%foo@@X6%supports_sinks ) { foo::X6::__parser = [$name="foo::X6", $is_public=False, $parse1=foo::X6::parse1, $parse2=foo::X6::parse2, $parse3=foo::X6::parse3, $context_new=Null, $type_info=typeinfo(X6), $description="", $mime_types=vector(), $ports=vector()]; spicy_rt::registerParser(foo::X6::__parser, $scope, Null); } diff --git a/tests/Baseline/spicy.optimization.feature_requirements/opt.hlt b/tests/Baseline/spicy.optimization.feature_requirements/opt.hlt index c03f7e6c4..e27caa62d 100644 --- a/tests/Baseline/spicy.optimization.feature_requirements/opt.hlt +++ b/tests/Baseline/spicy.optimization.feature_requirements/opt.hlt @@ -62,41 +62,41 @@ type X6 = struct { method tuple, int<64>, iterator, optional> __parse_foo_X6_stage2(inout value_ref __data, copy view __cur, copy bool __trim, copy int<64> __lah, copy iterator __lahe, copy optional __error); } &on-heap; -const bool __feat%foo__X0%uses_random_access = True; -const bool __feat%foo__X0%is_filter = False; -const bool __feat%foo__X0%supports_filters = False; -const bool __feat%foo__X0%supports_sinks = False; -const bool __feat%foo__X0%synchronization = False; -const bool __feat%foo__X1%uses_random_access = True; -const bool __feat%foo__X1%is_filter = False; -const bool __feat%foo__X1%supports_filters = False; -const bool __feat%foo__X1%supports_sinks = False; -const bool __feat%foo__X1%synchronization = False; -const bool __feat%foo__X2%uses_random_access = False; -const bool __feat%foo__X2%is_filter = False; -const bool __feat%foo__X2%supports_filters = False; -const bool __feat%foo__X2%supports_sinks = False; -const bool __feat%foo__X2%synchronization = False; -const bool __feat%foo__X3%uses_random_access = False; -const bool __feat%foo__X3%is_filter = False; -const bool __feat%foo__X3%supports_filters = False; -const bool __feat%foo__X3%supports_sinks = False; -const bool __feat%foo__X3%synchronization = False; -const bool __feat%foo__X4%uses_random_access = False; -const bool __feat%foo__X4%is_filter = True; -const bool __feat%foo__X4%supports_filters = False; -const bool __feat%foo__X4%supports_sinks = False; -const bool __feat%foo__X4%synchronization = False; -const bool __feat%foo__X5%uses_random_access = False; -const bool __feat%foo__X5%is_filter = False; -const bool __feat%foo__X5%supports_filters = True; -const bool __feat%foo__X5%supports_sinks = False; -const bool __feat%foo__X5%synchronization = False; -const bool __feat%foo__X6%uses_random_access = False; -const bool __feat%foo__X6%is_filter = False; -const bool __feat%foo__X6%supports_filters = False; -const bool __feat%foo__X6%supports_sinks = True; -const bool __feat%foo__X6%synchronization = False; +const bool __feat%foo@@X0%uses_random_access = True; +const bool __feat%foo@@X0%is_filter = False; +const bool __feat%foo@@X0%supports_filters = False; +const bool __feat%foo@@X0%supports_sinks = False; +const bool __feat%foo@@X0%synchronization = False; +const bool __feat%foo@@X1%uses_random_access = True; +const bool __feat%foo@@X1%is_filter = False; +const bool __feat%foo@@X1%supports_filters = False; +const bool __feat%foo@@X1%supports_sinks = False; +const bool __feat%foo@@X1%synchronization = False; +const bool __feat%foo@@X2%uses_random_access = False; +const bool __feat%foo@@X2%is_filter = False; +const bool __feat%foo@@X2%supports_filters = False; +const bool __feat%foo@@X2%supports_sinks = False; +const bool __feat%foo@@X2%synchronization = False; +const bool __feat%foo@@X3%uses_random_access = False; +const bool __feat%foo@@X3%is_filter = False; +const bool __feat%foo@@X3%supports_filters = False; +const bool __feat%foo@@X3%supports_sinks = False; +const bool __feat%foo@@X3%synchronization = False; +const bool __feat%foo@@X4%uses_random_access = False; +const bool __feat%foo@@X4%is_filter = True; +const bool __feat%foo@@X4%supports_filters = False; +const bool __feat%foo@@X4%supports_sinks = False; +const bool __feat%foo@@X4%synchronization = False; +const bool __feat%foo@@X5%uses_random_access = False; +const bool __feat%foo@@X5%is_filter = False; +const bool __feat%foo@@X5%supports_filters = True; +const bool __feat%foo@@X5%supports_sinks = False; +const bool __feat%foo@@X5%synchronization = False; +const bool __feat%foo@@X6%uses_random_access = False; +const bool __feat%foo@@X6%is_filter = False; +const bool __feat%foo@@X6%supports_filters = False; +const bool __feat%foo@@X6%supports_sinks = True; +const bool __feat%foo@@X6%synchronization = False; method hook void foo::X0::__on_0x25_init() { ((*self.__position).offset() - (*self.__begin).offset()); diff --git a/tests/Baseline/spicy.optimization.unused-functions/log b/tests/Baseline/spicy.optimization.unused-functions/log index 7ab221b5d..d67d7413b 100644 --- a/tests/Baseline/spicy.optimization.unused-functions/log +++ b/tests/Baseline/spicy.optimization.unused-functions/log @@ -20,105 +20,105 @@ [debug/optimizer] disabling feature 'uses_random_access' of type 'foo::C' since it is not used [debug/optimizer] disabling feature 'uses_random_access' of type 'foo::D' since it is not used [debug/optimizer] disabling feature 'uses_random_access' of type 'foo::F' since it is not used -[debug/optimizer] inlining constant 'foo::__feat%foo__A%is_filter' -[debug/optimizer] inlining constant 'foo::__feat%foo__A%supports_filters' -[debug/optimizer] inlining constant 'foo::__feat%foo__A%supports_filters' -[debug/optimizer] inlining constant 'foo::__feat%foo__A%supports_filters' -[debug/optimizer] inlining constant 'foo::__feat%foo__A%supports_sinks' -[debug/optimizer] inlining constant 'foo::__feat%foo__A%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__A%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__A%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__A%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__A%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__A%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__A%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__A%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__A%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__A%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__A%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__A%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__A%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__A%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__A%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__B%supports_filters' -[debug/optimizer] inlining constant 'foo::__feat%foo__B%supports_filters' -[debug/optimizer] inlining constant 'foo::__feat%foo__B%supports_filters' -[debug/optimizer] inlining constant 'foo::__feat%foo__B%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__B%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__B%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__B%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__B%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__B%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__B%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__B%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__B%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__B%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__B%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__B%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__B%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__B%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__B%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__C%is_filter' -[debug/optimizer] inlining constant 'foo::__feat%foo__C%supports_filters' -[debug/optimizer] inlining constant 'foo::__feat%foo__C%supports_filters' -[debug/optimizer] inlining constant 'foo::__feat%foo__C%supports_filters' -[debug/optimizer] inlining constant 'foo::__feat%foo__C%supports_sinks' -[debug/optimizer] inlining constant 'foo::__feat%foo__C%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__C%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__C%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__C%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__C%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__C%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__C%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__C%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__C%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__C%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__C%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__C%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__C%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__C%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__C%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__D%supports_filters' -[debug/optimizer] inlining constant 'foo::__feat%foo__D%supports_filters' -[debug/optimizer] inlining constant 'foo::__feat%foo__D%supports_filters' -[debug/optimizer] inlining constant 'foo::__feat%foo__D%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__D%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__D%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__D%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__D%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__D%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__D%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__D%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__D%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__D%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__D%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__D%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__D%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__D%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__D%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__D%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__F%is_filter' -[debug/optimizer] inlining constant 'foo::__feat%foo__F%is_filter' -[debug/optimizer] inlining constant 'foo::__feat%foo__F%is_filter' -[debug/optimizer] inlining constant 'foo::__feat%foo__F%supports_filters' -[debug/optimizer] inlining constant 'foo::__feat%foo__F%supports_filters' -[debug/optimizer] inlining constant 'foo::__feat%foo__F%supports_filters' -[debug/optimizer] inlining constant 'foo::__feat%foo__F%supports_sinks' -[debug/optimizer] inlining constant 'foo::__feat%foo__F%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__F%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__F%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__F%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__F%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__F%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__F%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__F%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__F%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__F%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__F%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__F%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__F%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__F%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__F%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@A%is_filter' +[debug/optimizer] inlining constant 'foo::__feat%foo@@A%supports_filters' +[debug/optimizer] inlining constant 'foo::__feat%foo@@A%supports_filters' +[debug/optimizer] inlining constant 'foo::__feat%foo@@A%supports_filters' +[debug/optimizer] inlining constant 'foo::__feat%foo@@A%supports_sinks' +[debug/optimizer] inlining constant 'foo::__feat%foo@@A%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@A%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@A%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@A%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@A%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@A%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@A%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@A%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@A%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@A%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@A%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@A%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@A%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@A%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@A%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@B%supports_filters' +[debug/optimizer] inlining constant 'foo::__feat%foo@@B%supports_filters' +[debug/optimizer] inlining constant 'foo::__feat%foo@@B%supports_filters' +[debug/optimizer] inlining constant 'foo::__feat%foo@@B%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@B%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@B%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@B%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@B%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@B%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@B%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@B%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@B%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@B%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@B%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@B%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@B%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@B%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@B%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@C%is_filter' +[debug/optimizer] inlining constant 'foo::__feat%foo@@C%supports_filters' +[debug/optimizer] inlining constant 'foo::__feat%foo@@C%supports_filters' +[debug/optimizer] inlining constant 'foo::__feat%foo@@C%supports_filters' +[debug/optimizer] inlining constant 'foo::__feat%foo@@C%supports_sinks' +[debug/optimizer] inlining constant 'foo::__feat%foo@@C%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@C%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@C%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@C%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@C%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@C%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@C%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@C%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@C%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@C%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@C%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@C%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@C%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@C%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@C%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@D%supports_filters' +[debug/optimizer] inlining constant 'foo::__feat%foo@@D%supports_filters' +[debug/optimizer] inlining constant 'foo::__feat%foo@@D%supports_filters' +[debug/optimizer] inlining constant 'foo::__feat%foo@@D%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@D%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@D%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@D%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@D%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@D%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@D%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@D%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@D%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@D%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@D%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@D%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@D%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@D%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@D%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@D%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@F%is_filter' +[debug/optimizer] inlining constant 'foo::__feat%foo@@F%is_filter' +[debug/optimizer] inlining constant 'foo::__feat%foo@@F%is_filter' +[debug/optimizer] inlining constant 'foo::__feat%foo@@F%supports_filters' +[debug/optimizer] inlining constant 'foo::__feat%foo@@F%supports_filters' +[debug/optimizer] inlining constant 'foo::__feat%foo@@F%supports_filters' +[debug/optimizer] inlining constant 'foo::__feat%foo@@F%supports_sinks' +[debug/optimizer] inlining constant 'foo::__feat%foo@@F%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@F%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@F%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@F%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@F%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@F%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@F%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@F%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@F%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@F%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@F%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@F%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@F%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@F%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@F%uses_random_access' [debug/optimizer] removing declaration for unused function foo::A::__parse_foo_A_stage2 [debug/optimizer] removing declaration for unused function foo::A::__parse_stage1 [debug/optimizer] removing declaration for unused function foo::A::parse1 diff --git a/tests/Baseline/spicy.optimization.unused-functions/noopt.hlt b/tests/Baseline/spicy.optimization.unused-functions/noopt.hlt index cd125f0d2..f660c2569 100644 --- a/tests/Baseline/spicy.optimization.unused-functions/noopt.hlt +++ b/tests/Baseline/spicy.optimization.unused-functions/noopt.hlt @@ -137,31 +137,31 @@ type F = struct { method tuple, int<64>, iterator, optional> __parse_foo_F_stage2(inout value_ref __data, copy view __cur, copy bool __trim, copy int<64> __lah, copy iterator __lahe, copy optional __error); } &on-heap; -const bool __feat%foo__A%uses_random_access = True; -const bool __feat%foo__A%is_filter = False; -const bool __feat%foo__A%supports_filters = True; -const bool __feat%foo__A%supports_sinks = True; -const bool __feat%foo__A%synchronization = True; -const bool __feat%foo__B%uses_random_access = True; -const bool __feat%foo__B%is_filter = False; -const bool __feat%foo__B%supports_filters = True; -const bool __feat%foo__B%supports_sinks = True; -const bool __feat%foo__B%synchronization = True; -const bool __feat%foo__C%uses_random_access = True; -const bool __feat%foo__C%is_filter = False; -const bool __feat%foo__C%supports_filters = True; -const bool __feat%foo__C%supports_sinks = True; -const bool __feat%foo__C%synchronization = True; -const bool __feat%foo__D%uses_random_access = True; -const bool __feat%foo__D%is_filter = False; -const bool __feat%foo__D%supports_filters = True; -const bool __feat%foo__D%supports_sinks = True; -const bool __feat%foo__D%synchronization = True; -const bool __feat%foo__F%uses_random_access = True; -const bool __feat%foo__F%is_filter = True; -const bool __feat%foo__F%supports_filters = True; -const bool __feat%foo__F%supports_sinks = True; -const bool __feat%foo__F%synchronization = True; +const bool __feat%foo@@A%uses_random_access = True; +const bool __feat%foo@@A%is_filter = False; +const bool __feat%foo@@A%supports_filters = True; +const bool __feat%foo@@A%supports_sinks = True; +const bool __feat%foo@@A%synchronization = True; +const bool __feat%foo@@B%uses_random_access = True; +const bool __feat%foo@@B%is_filter = False; +const bool __feat%foo@@B%supports_filters = True; +const bool __feat%foo@@B%supports_sinks = True; +const bool __feat%foo@@B%synchronization = True; +const bool __feat%foo@@C%uses_random_access = True; +const bool __feat%foo@@C%is_filter = False; +const bool __feat%foo@@C%supports_filters = True; +const bool __feat%foo@@C%supports_sinks = True; +const bool __feat%foo@@C%synchronization = True; +const bool __feat%foo@@D%uses_random_access = True; +const bool __feat%foo@@D%is_filter = False; +const bool __feat%foo@@D%supports_filters = True; +const bool __feat%foo@@D%supports_sinks = True; +const bool __feat%foo@@D%synchronization = True; +const bool __feat%foo@@F%uses_random_access = True; +const bool __feat%foo@@F%is_filter = True; +const bool __feat%foo@@F%supports_filters = True; +const bool __feat%foo@@F%supports_sinks = True; +const bool __feat%foo@@F%synchronization = True; function void f1() { } @@ -174,24 +174,24 @@ method method tuple, int<64>, iterator, optional, int<64>, iterator, optional> __result; try { - if ( __feat%foo__A%uses_random_access ) + if ( __feat%foo@@A%uses_random_access ) __trim = False; hilti::debugIndent("spicy"); - if ( __feat%foo__A%uses_random_access ) { + if ( __feat%foo@@A%uses_random_access ) { (*self).__begin = begin(__cur); (*self).__position = begin(__cur); } (*self).__error = __error; - if ( __feat%foo__A%uses_random_access ) + if ( __feat%foo@@A%uses_random_access ) (*self).__position_update = Null; (*self).__on_0x25_init(); - if ( __feat%foo__A%uses_random_access ) + if ( __feat%foo@@A%uses_random_access ) if ( (*self).__position_update ) { __cur = __cur.advance((*(*self).__position_update)); @@ -202,7 +202,7 @@ method method tuple, int<64>, iterator, optional filtered = Null; - if ( __feat%foo__A%supports_filters ) + if ( __feat%foo@@A%supports_filters ) if ( filtered = spicy_rt::filter_init(self, __data, __cur) ) { local value_ref filtered_data = filtered; @@ -223,22 +223,22 @@ method method tuple, int<64>, iterator, optional, int<64>, iterator, optional, int<64>, iterator, optional/unused-functions.spicy:18:10" local tuple, int<64>, iterator, optional> __result; - if ( __feat%foo__A%uses_random_access ) + if ( __feat%foo@@A%uses_random_access ) (*self).__position = begin(__cur); (*self).__error = __error; - if ( __feat%foo__A%uses_random_access ) + if ( __feat%foo@@A%uses_random_access ) (*self).__position_update = Null; (*self).__on_0x25_done(); - if ( __feat%foo__A%uses_random_access ) + if ( __feat%foo@@A%uses_random_access ) if ( (*self).__position_update ) { __cur = __cur.advance((*(*self).__position_update)); @@ -293,7 +293,7 @@ method method tuple, int<64>, iterator, optional foo::A::parse1(inout value_ref data, o (ncur, lahead, lahead_end, error) = (*unit).__parse_stage1(data, ncur, True, lahead, lahead_end, error); # End parsing production: Unit: foo_A -> - if ( __feat%foo__A%uses_random_access ) + if ( __feat%foo@@A%uses_random_access ) (*unit).__position = begin(ncur); @@ -338,7 +338,7 @@ method extern method view foo::A::parse3(inout value_ref - if ( __feat%foo__A%uses_random_access ) + if ( __feat%foo@@A%uses_random_access ) (*unit).__position = begin(ncur); @@ -360,7 +360,7 @@ method extern method view foo::A::parse2(inout value_ref unit, inout (ncur, lahead, lahead_end, error) = (*unit).__parse_stage1(data, ncur, True, lahead, lahead_end, error); # End parsing production: Unit: foo_A -> - if ( __feat%foo__A%uses_random_access ) + if ( __feat%foo@@A%uses_random_access ) (*unit).__position = begin(ncur); @@ -372,7 +372,7 @@ method extern method view foo::A::parse2(inout value_ref unit, inout init function void __register_foo_A() { - if ( __feat%foo__A%is_filter || __feat%foo__A%supports_sinks ) { + if ( __feat%foo@@A%is_filter || __feat%foo@@A%supports_sinks ) { foo::A::__parser = [$name="foo::A", $is_public=False, $parse1=foo::A::parse1, $parse2=foo::A::parse2, $parse3=foo::A::parse3, $context_new=Null, $type_info=typeinfo(A), $description="", $mime_types=vector(), $ports=vector()]; spicy_rt::registerParser(foo::A::__parser, $scope, Null); } @@ -384,24 +384,24 @@ method method tuple, int<64>, iterator, optional, int<64>, iterator, optional> __result; try { - if ( __feat%foo__B%uses_random_access ) + if ( __feat%foo@@B%uses_random_access ) __trim = False; hilti::debugIndent("spicy"); - if ( __feat%foo__B%uses_random_access ) { + if ( __feat%foo@@B%uses_random_access ) { (*self).__begin = begin(__cur); (*self).__position = begin(__cur); } (*self).__error = __error; - if ( __feat%foo__B%uses_random_access ) + if ( __feat%foo@@B%uses_random_access ) (*self).__position_update = Null; (*self).__on_0x25_init(); - if ( __feat%foo__B%uses_random_access ) + if ( __feat%foo@@B%uses_random_access ) if ( (*self).__position_update ) { __cur = __cur.advance((*(*self).__position_update)); @@ -412,7 +412,7 @@ method method tuple, int<64>, iterator, optional filtered = Null; - if ( __feat%foo__B%supports_filters ) + if ( __feat%foo@@B%supports_filters ) if ( filtered = spicy_rt::filter_init(self, __data, __cur) ) { local value_ref filtered_data = filtered; @@ -433,22 +433,22 @@ method method tuple, int<64>, iterator, optional, int<64>, iterator, optional, int<64>, iterator, optional/unused-functions.spicy:21:17" local tuple, int<64>, iterator, optional> __result; - if ( __feat%foo__B%uses_random_access ) + if ( __feat%foo@@B%uses_random_access ) (*self).__position = begin(__cur); (*self).__error = __error; - if ( __feat%foo__B%uses_random_access ) + if ( __feat%foo@@B%uses_random_access ) (*self).__position_update = Null; (*self).__on_0x25_done(); - if ( __feat%foo__B%uses_random_access ) + if ( __feat%foo@@B%uses_random_access ) if ( (*self).__position_update ) { __cur = __cur.advance((*(*self).__position_update)); @@ -503,7 +503,7 @@ method method tuple, int<64>, iterator, optional foo::B::parse1(inout value_ref data, o (ncur, lahead, lahead_end, error) = (*unit).__parse_stage1(data, ncur, True, lahead, lahead_end, error); # End parsing production: Unit: foo_B -> - if ( __feat%foo__B%uses_random_access ) + if ( __feat%foo@@B%uses_random_access ) (*unit).__position = begin(ncur); @@ -548,7 +548,7 @@ method extern method view foo::B::parse3(inout value_ref - if ( __feat%foo__B%uses_random_access ) + if ( __feat%foo@@B%uses_random_access ) (*unit).__position = begin(ncur); @@ -570,7 +570,7 @@ method extern method view foo::B::parse2(inout value_ref unit, inout (ncur, lahead, lahead_end, error) = (*unit).__parse_stage1(data, ncur, True, lahead, lahead_end, error); # End parsing production: Unit: foo_B -> - if ( __feat%foo__B%uses_random_access ) + if ( __feat%foo@@B%uses_random_access ) (*unit).__position = begin(ncur); @@ -590,24 +590,24 @@ method method tuple, int<64>, iterator, optional, int<64>, iterator, optional> __result; try { - if ( __feat%foo__C%uses_random_access ) + if ( __feat%foo@@C%uses_random_access ) __trim = False; hilti::debugIndent("spicy"); - if ( __feat%foo__C%uses_random_access ) { + if ( __feat%foo@@C%uses_random_access ) { (*self).__begin = begin(__cur); (*self).__position = begin(__cur); } (*self).__error = __error; - if ( __feat%foo__C%uses_random_access ) + if ( __feat%foo@@C%uses_random_access ) (*self).__position_update = Null; (*self).__on_0x25_init(); - if ( __feat%foo__C%uses_random_access ) + if ( __feat%foo@@C%uses_random_access ) if ( (*self).__position_update ) { __cur = __cur.advance((*(*self).__position_update)); @@ -618,7 +618,7 @@ method method tuple, int<64>, iterator, optional filtered = Null; - if ( __feat%foo__C%supports_filters ) + if ( __feat%foo@@C%supports_filters ) if ( filtered = spicy_rt::filter_init(self, __data, __cur) ) { local value_ref filtered_data = filtered; @@ -639,22 +639,22 @@ method method tuple, int<64>, iterator, optional, int<64>, iterator, optional, int<64>, iterator, optional/unused-functions.spicy:24:10" local tuple, int<64>, iterator, optional> __result; - if ( __feat%foo__C%uses_random_access ) + if ( __feat%foo@@C%uses_random_access ) (*self).__position = begin(__cur); (*self).__error = __error; - if ( __feat%foo__C%uses_random_access ) + if ( __feat%foo@@C%uses_random_access ) (*self).__position_update = Null; (*self).__on_0x25_done(); - if ( __feat%foo__C%uses_random_access ) + if ( __feat%foo@@C%uses_random_access ) if ( (*self).__position_update ) { __cur = __cur.advance((*(*self).__position_update)); @@ -709,7 +709,7 @@ method method tuple, int<64>, iterator, optional foo::C::parse1(inout value_ref data, o (ncur, lahead, lahead_end, error) = (*unit).__parse_stage1(data, ncur, True, lahead, lahead_end, error); # End parsing production: Unit: foo_C -> - if ( __feat%foo__C%uses_random_access ) + if ( __feat%foo@@C%uses_random_access ) (*unit).__position = begin(ncur); @@ -754,7 +754,7 @@ method extern method view foo::C::parse3(inout value_ref - if ( __feat%foo__C%uses_random_access ) + if ( __feat%foo@@C%uses_random_access ) (*unit).__position = begin(ncur); @@ -776,7 +776,7 @@ method extern method view foo::C::parse2(inout value_ref unit, inout (ncur, lahead, lahead_end, error) = (*unit).__parse_stage1(data, ncur, True, lahead, lahead_end, error); # End parsing production: Unit: foo_C -> - if ( __feat%foo__C%uses_random_access ) + if ( __feat%foo@@C%uses_random_access ) (*unit).__position = begin(ncur); @@ -788,7 +788,7 @@ method extern method view foo::C::parse2(inout value_ref unit, inout init function void __register_foo_C() { - if ( __feat%foo__C%is_filter || __feat%foo__C%supports_sinks ) { + if ( __feat%foo@@C%is_filter || __feat%foo@@C%supports_sinks ) { foo::C::__parser = [$name="foo::C", $is_public=False, $parse1=foo::C::parse1, $parse2=foo::C::parse2, $parse3=foo::C::parse3, $context_new=Null, $type_info=typeinfo(C), $description="", $mime_types=vector(), $ports=vector()]; spicy_rt::registerParser(foo::C::__parser, $scope, Null); } @@ -800,24 +800,24 @@ method method tuple, int<64>, iterator, optional, int<64>, iterator, optional> __result; try { - if ( __feat%foo__D%uses_random_access ) + if ( __feat%foo@@D%uses_random_access ) __trim = False; hilti::debugIndent("spicy"); - if ( __feat%foo__D%uses_random_access ) { + if ( __feat%foo@@D%uses_random_access ) { (*self).__begin = begin(__cur); (*self).__position = begin(__cur); } (*self).__error = __error; - if ( __feat%foo__D%uses_random_access ) + if ( __feat%foo@@D%uses_random_access ) (*self).__position_update = Null; (*self).__on_0x25_init(); - if ( __feat%foo__D%uses_random_access ) + if ( __feat%foo@@D%uses_random_access ) if ( (*self).__position_update ) { __cur = __cur.advance((*(*self).__position_update)); @@ -828,7 +828,7 @@ method method tuple, int<64>, iterator, optional filtered = Null; - if ( __feat%foo__D%supports_filters ) + if ( __feat%foo@@D%supports_filters ) if ( filtered = spicy_rt::filter_init(self, __data, __cur) ) { local value_ref filtered_data = filtered; @@ -849,22 +849,22 @@ method method tuple, int<64>, iterator, optional, int<64>, iterator, optional, int<64>, iterator, optional - if ( __feat%foo__D%uses_random_access ) + if ( __feat%foo@@D%uses_random_access ) (*self).__position = begin(__cur); - if ( __feat%foo__D%uses_random_access ) + if ( __feat%foo@@D%uses_random_access ) (*self).__position = begin(__cur); (*self).__error = __error; - if ( __feat%foo__D%uses_random_access ) + if ( __feat%foo@@D%uses_random_access ) (*self).__position_update = Null; (*self).__on_0x25_done(); - if ( __feat%foo__D%uses_random_access ) + if ( __feat%foo@@D%uses_random_access ) if ( (*self).__position_update ) { __cur = __cur.advance((*(*self).__position_update)); @@ -930,7 +930,7 @@ method method tuple, int<64>, iterator, optional foo::D::parse1(inout value_ref data, o (ncur, lahead, lahead_end, error) = (*unit).__parse_stage1(data, ncur, True, lahead, lahead_end, error); # End parsing production: Unit: foo_D -> foo_C_2 - if ( __feat%foo__D%uses_random_access ) + if ( __feat%foo@@D%uses_random_access ) (*unit).__position = begin(ncur); @@ -975,7 +975,7 @@ method extern method view foo::D::parse3(inout value_ref foo_C_2 - if ( __feat%foo__D%uses_random_access ) + if ( __feat%foo@@D%uses_random_access ) (*unit).__position = begin(ncur); @@ -997,7 +997,7 @@ method extern method view foo::D::parse2(inout value_ref unit, inout (ncur, lahead, lahead_end, error) = (*unit).__parse_stage1(data, ncur, True, lahead, lahead_end, error); # End parsing production: Unit: foo_D -> foo_C_2 - if ( __feat%foo__D%uses_random_access ) + if ( __feat%foo@@D%uses_random_access ) (*unit).__position = begin(ncur); @@ -1017,24 +1017,24 @@ method method tuple, int<64>, iterator, optional, int<64>, iterator, optional> __result; try { - if ( __feat%foo__F%uses_random_access ) + if ( __feat%foo@@F%uses_random_access ) __trim = False; hilti::debugIndent("spicy"); - if ( __feat%foo__F%uses_random_access ) { + if ( __feat%foo@@F%uses_random_access ) { (*self).__begin = begin(__cur); (*self).__position = begin(__cur); } (*self).__error = __error; - if ( __feat%foo__F%uses_random_access ) + if ( __feat%foo@@F%uses_random_access ) (*self).__position_update = Null; (*self).__on_0x25_init(); - if ( __feat%foo__F%uses_random_access ) + if ( __feat%foo@@F%uses_random_access ) if ( (*self).__position_update ) { __cur = __cur.advance((*(*self).__position_update)); @@ -1045,7 +1045,7 @@ method method tuple, int<64>, iterator, optional filtered = Null; - if ( __feat%foo__F%supports_filters ) + if ( __feat%foo@@F%supports_filters ) if ( filtered = spicy_rt::filter_init(self, __data, __cur) ) { local value_ref filtered_data = filtered; @@ -1066,26 +1066,26 @@ method method tuple, int<64>, iterator, optional, int<64>, iterator, optional, int<64>, iterator, optional/unused-functions.spicy:30:10-32:2" local tuple, int<64>, iterator, optional> __result; - if ( __feat%foo__F%uses_random_access ) + if ( __feat%foo@@F%uses_random_access ) (*self).__position = begin(__cur); (*self).__error = __error; - if ( __feat%foo__F%uses_random_access ) + if ( __feat%foo@@F%uses_random_access ) (*self).__position_update = Null; (*self).__on_0x25_done(); - if ( __feat%foo__F%uses_random_access ) + if ( __feat%foo@@F%uses_random_access ) if ( (*self).__position_update ) { __cur = __cur.advance((*(*self).__position_update)); @@ -1140,11 +1140,11 @@ method method tuple, int<64>, iterator, optional foo::F::parse1(inout value_ref data, o (ncur, lahead, lahead_end, error) = (*unit).__parse_stage1(data, ncur, True, lahead, lahead_end, error); # End parsing production: Unit: foo_F -> - if ( __feat%foo__F%uses_random_access ) + if ( __feat%foo@@F%uses_random_access ) (*unit).__position = begin(ncur); @@ -1189,7 +1189,7 @@ method extern method view foo::F::parse3(inout value_ref - if ( __feat%foo__F%uses_random_access ) + if ( __feat%foo@@F%uses_random_access ) (*unit).__position = begin(ncur); @@ -1211,7 +1211,7 @@ method extern method view foo::F::parse2(inout value_ref unit, inout (ncur, lahead, lahead_end, error) = (*unit).__parse_stage1(data, ncur, True, lahead, lahead_end, error); # End parsing production: Unit: foo_F -> - if ( __feat%foo__F%uses_random_access ) + if ( __feat%foo@@F%uses_random_access ) (*unit).__position = begin(ncur); @@ -1223,7 +1223,7 @@ method extern method view foo::F::parse2(inout value_ref unit, inout init function void __register_foo_F() { - if ( __feat%foo__F%is_filter || __feat%foo__F%supports_sinks ) { + if ( __feat%foo@@F%is_filter || __feat%foo@@F%supports_sinks ) { foo::F::__parser = [$name="foo::F", $is_public=False, $parse1=foo::F::parse1, $parse2=foo::F::parse2, $parse3=foo::F::parse3, $context_new=Null, $type_info=typeinfo(F), $description="", $mime_types=vector(), $ports=vector()]; spicy_rt::registerParser(foo::F::__parser, $scope, Null); } diff --git a/tests/Baseline/spicy.optimization.unused-functions/opt.hlt b/tests/Baseline/spicy.optimization.unused-functions/opt.hlt index bcbd14f0c..0a01b242c 100644 --- a/tests/Baseline/spicy.optimization.unused-functions/opt.hlt +++ b/tests/Baseline/spicy.optimization.unused-functions/opt.hlt @@ -29,31 +29,31 @@ public type D = struct { method tuple, int<64>, iterator, optional> __parse_foo_D_stage2(inout value_ref __data, copy view __cur, copy bool __trim, copy int<64> __lah, copy iterator __lahe, copy optional __error); } &on-heap; -const bool __feat%foo__A%uses_random_access = False; -const bool __feat%foo__A%is_filter = False; -const bool __feat%foo__A%supports_filters = False; -const bool __feat%foo__A%supports_sinks = False; -const bool __feat%foo__A%synchronization = False; -const bool __feat%foo__B%uses_random_access = False; -const bool __feat%foo__B%is_filter = False; -const bool __feat%foo__B%supports_filters = False; -const bool __feat%foo__B%supports_sinks = False; -const bool __feat%foo__B%synchronization = False; -const bool __feat%foo__C%uses_random_access = False; -const bool __feat%foo__C%is_filter = False; -const bool __feat%foo__C%supports_filters = False; -const bool __feat%foo__C%supports_sinks = False; -const bool __feat%foo__C%synchronization = False; -const bool __feat%foo__D%uses_random_access = False; -const bool __feat%foo__D%is_filter = False; -const bool __feat%foo__D%supports_filters = False; -const bool __feat%foo__D%supports_sinks = False; -const bool __feat%foo__D%synchronization = False; -const bool __feat%foo__F%uses_random_access = False; -const bool __feat%foo__F%is_filter = False; -const bool __feat%foo__F%supports_filters = False; -const bool __feat%foo__F%supports_sinks = False; -const bool __feat%foo__F%synchronization = False; +const bool __feat%foo@@A%uses_random_access = False; +const bool __feat%foo@@A%is_filter = False; +const bool __feat%foo@@A%supports_filters = False; +const bool __feat%foo@@A%supports_sinks = False; +const bool __feat%foo@@A%synchronization = False; +const bool __feat%foo@@B%uses_random_access = False; +const bool __feat%foo@@B%is_filter = False; +const bool __feat%foo@@B%supports_filters = False; +const bool __feat%foo@@B%supports_sinks = False; +const bool __feat%foo@@B%synchronization = False; +const bool __feat%foo@@C%uses_random_access = False; +const bool __feat%foo@@C%is_filter = False; +const bool __feat%foo@@C%supports_filters = False; +const bool __feat%foo@@C%supports_sinks = False; +const bool __feat%foo@@C%synchronization = False; +const bool __feat%foo@@D%uses_random_access = False; +const bool __feat%foo@@D%is_filter = False; +const bool __feat%foo@@D%supports_filters = False; +const bool __feat%foo@@D%supports_sinks = False; +const bool __feat%foo@@D%synchronization = False; +const bool __feat%foo@@F%uses_random_access = False; +const bool __feat%foo@@F%is_filter = False; +const bool __feat%foo@@F%supports_filters = False; +const bool __feat%foo@@F%supports_sinks = False; +const bool __feat%foo@@F%synchronization = False; init function void __register_foo_A() { } diff --git a/tests/Baseline/spicy.optimization.unused-types/log b/tests/Baseline/spicy.optimization.unused-types/log index be99d8e47..44541e027 100644 --- a/tests/Baseline/spicy.optimization.unused-types/log +++ b/tests/Baseline/spicy.optimization.unused-types/log @@ -35,188 +35,188 @@ [debug/optimizer] disabling feature 'uses_random_access' of type 'foo::Priv6' since it is not used [debug/optimizer] disabling feature 'uses_random_access' of type 'foo::Pub2' since it is not used [debug/optimizer] disabling feature 'uses_random_access' of type 'foo::Pub3' since it is not used -[debug/optimizer] inlining constant 'foo::__feat%foo__Priv1%is_filter' -[debug/optimizer] inlining constant 'foo::__feat%foo__Priv1%supports_filters' -[debug/optimizer] inlining constant 'foo::__feat%foo__Priv1%supports_filters' -[debug/optimizer] inlining constant 'foo::__feat%foo__Priv1%supports_filters' -[debug/optimizer] inlining constant 'foo::__feat%foo__Priv1%supports_sinks' -[debug/optimizer] inlining constant 'foo::__feat%foo__Priv1%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__Priv1%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__Priv1%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__Priv1%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__Priv1%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__Priv1%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__Priv1%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__Priv1%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__Priv1%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__Priv1%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__Priv1%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__Priv1%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__Priv1%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__Priv1%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__Priv1%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__Priv10%supports_filters' -[debug/optimizer] inlining constant 'foo::__feat%foo__Priv10%supports_filters' -[debug/optimizer] inlining constant 'foo::__feat%foo__Priv10%supports_filters' -[debug/optimizer] inlining constant 'foo::__feat%foo__Priv10%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__Priv10%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__Priv10%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__Priv10%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__Priv10%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__Priv10%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__Priv10%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__Priv10%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__Priv10%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__Priv10%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__Priv10%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__Priv10%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__Priv10%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__Priv10%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__Priv10%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__Priv2%is_filter' -[debug/optimizer] inlining constant 'foo::__feat%foo__Priv2%supports_filters' -[debug/optimizer] inlining constant 'foo::__feat%foo__Priv2%supports_filters' -[debug/optimizer] inlining constant 'foo::__feat%foo__Priv2%supports_filters' -[debug/optimizer] inlining constant 'foo::__feat%foo__Priv2%supports_sinks' -[debug/optimizer] inlining constant 'foo::__feat%foo__Priv2%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__Priv2%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__Priv2%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__Priv2%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__Priv2%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__Priv2%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__Priv2%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__Priv2%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__Priv2%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__Priv2%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__Priv2%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__Priv2%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__Priv2%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__Priv2%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__Priv2%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__Priv3%is_filter' -[debug/optimizer] inlining constant 'foo::__feat%foo__Priv3%supports_filters' -[debug/optimizer] inlining constant 'foo::__feat%foo__Priv3%supports_filters' -[debug/optimizer] inlining constant 'foo::__feat%foo__Priv3%supports_filters' -[debug/optimizer] inlining constant 'foo::__feat%foo__Priv3%supports_sinks' -[debug/optimizer] inlining constant 'foo::__feat%foo__Priv3%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__Priv3%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__Priv3%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__Priv3%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__Priv3%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__Priv3%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__Priv3%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__Priv3%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__Priv3%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__Priv3%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__Priv3%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__Priv3%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__Priv3%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__Priv3%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__Priv3%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__Priv4%is_filter' -[debug/optimizer] inlining constant 'foo::__feat%foo__Priv4%supports_filters' -[debug/optimizer] inlining constant 'foo::__feat%foo__Priv4%supports_filters' -[debug/optimizer] inlining constant 'foo::__feat%foo__Priv4%supports_filters' -[debug/optimizer] inlining constant 'foo::__feat%foo__Priv4%supports_sinks' -[debug/optimizer] inlining constant 'foo::__feat%foo__Priv4%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__Priv4%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__Priv4%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__Priv4%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__Priv4%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__Priv4%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__Priv4%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__Priv4%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__Priv4%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__Priv4%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__Priv4%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__Priv4%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__Priv4%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__Priv4%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__Priv4%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__Priv4%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__Priv4%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__Priv4%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__Priv4%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__Priv5%is_filter' -[debug/optimizer] inlining constant 'foo::__feat%foo__Priv5%supports_filters' -[debug/optimizer] inlining constant 'foo::__feat%foo__Priv5%supports_filters' -[debug/optimizer] inlining constant 'foo::__feat%foo__Priv5%supports_filters' -[debug/optimizer] inlining constant 'foo::__feat%foo__Priv5%supports_sinks' -[debug/optimizer] inlining constant 'foo::__feat%foo__Priv5%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__Priv5%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__Priv5%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__Priv5%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__Priv5%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__Priv5%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__Priv5%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__Priv5%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__Priv5%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__Priv5%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__Priv5%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__Priv5%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__Priv5%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__Priv5%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__Priv5%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__Priv6%is_filter' -[debug/optimizer] inlining constant 'foo::__feat%foo__Priv6%supports_filters' -[debug/optimizer] inlining constant 'foo::__feat%foo__Priv6%supports_filters' -[debug/optimizer] inlining constant 'foo::__feat%foo__Priv6%supports_filters' -[debug/optimizer] inlining constant 'foo::__feat%foo__Priv6%supports_sinks' -[debug/optimizer] inlining constant 'foo::__feat%foo__Priv6%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__Priv6%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__Priv6%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__Priv6%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__Priv6%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__Priv6%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__Priv6%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__Priv6%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__Priv6%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__Priv6%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__Priv6%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__Priv6%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__Priv6%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__Priv6%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__Priv6%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__Pub2%supports_filters' -[debug/optimizer] inlining constant 'foo::__feat%foo__Pub2%supports_filters' -[debug/optimizer] inlining constant 'foo::__feat%foo__Pub2%supports_filters' -[debug/optimizer] inlining constant 'foo::__feat%foo__Pub2%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__Pub2%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__Pub2%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__Pub2%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__Pub2%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__Pub2%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__Pub2%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__Pub2%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__Pub2%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__Pub2%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__Pub2%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__Pub2%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__Pub2%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__Pub2%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__Pub2%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__Pub3%supports_filters' -[debug/optimizer] inlining constant 'foo::__feat%foo__Pub3%supports_filters' -[debug/optimizer] inlining constant 'foo::__feat%foo__Pub3%supports_filters' -[debug/optimizer] inlining constant 'foo::__feat%foo__Pub3%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__Pub3%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__Pub3%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__Pub3%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__Pub3%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__Pub3%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__Pub3%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__Pub3%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__Pub3%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__Pub3%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__Pub3%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__Pub3%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__Pub3%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__Pub3%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__Pub3%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__Pub3%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__Pub3%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__Pub3%uses_random_access' -[debug/optimizer] inlining constant 'foo::__feat%foo__Pub3%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Priv1%is_filter' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Priv1%supports_filters' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Priv1%supports_filters' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Priv1%supports_filters' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Priv1%supports_sinks' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Priv1%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Priv1%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Priv1%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Priv1%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Priv1%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Priv1%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Priv1%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Priv1%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Priv1%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Priv1%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Priv1%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Priv1%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Priv1%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Priv1%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Priv1%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Priv10%supports_filters' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Priv10%supports_filters' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Priv10%supports_filters' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Priv10%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Priv10%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Priv10%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Priv10%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Priv10%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Priv10%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Priv10%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Priv10%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Priv10%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Priv10%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Priv10%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Priv10%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Priv10%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Priv10%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Priv10%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Priv2%is_filter' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Priv2%supports_filters' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Priv2%supports_filters' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Priv2%supports_filters' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Priv2%supports_sinks' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Priv2%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Priv2%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Priv2%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Priv2%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Priv2%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Priv2%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Priv2%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Priv2%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Priv2%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Priv2%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Priv2%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Priv2%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Priv2%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Priv2%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Priv2%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Priv3%is_filter' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Priv3%supports_filters' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Priv3%supports_filters' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Priv3%supports_filters' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Priv3%supports_sinks' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Priv3%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Priv3%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Priv3%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Priv3%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Priv3%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Priv3%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Priv3%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Priv3%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Priv3%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Priv3%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Priv3%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Priv3%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Priv3%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Priv3%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Priv3%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Priv4%is_filter' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Priv4%supports_filters' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Priv4%supports_filters' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Priv4%supports_filters' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Priv4%supports_sinks' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Priv4%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Priv4%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Priv4%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Priv4%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Priv4%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Priv4%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Priv4%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Priv4%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Priv4%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Priv4%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Priv4%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Priv4%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Priv4%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Priv4%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Priv4%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Priv4%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Priv4%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Priv4%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Priv4%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Priv5%is_filter' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Priv5%supports_filters' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Priv5%supports_filters' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Priv5%supports_filters' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Priv5%supports_sinks' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Priv5%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Priv5%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Priv5%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Priv5%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Priv5%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Priv5%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Priv5%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Priv5%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Priv5%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Priv5%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Priv5%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Priv5%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Priv5%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Priv5%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Priv5%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Priv6%is_filter' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Priv6%supports_filters' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Priv6%supports_filters' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Priv6%supports_filters' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Priv6%supports_sinks' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Priv6%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Priv6%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Priv6%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Priv6%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Priv6%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Priv6%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Priv6%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Priv6%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Priv6%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Priv6%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Priv6%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Priv6%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Priv6%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Priv6%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Priv6%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Pub2%supports_filters' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Pub2%supports_filters' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Pub2%supports_filters' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Pub2%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Pub2%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Pub2%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Pub2%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Pub2%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Pub2%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Pub2%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Pub2%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Pub2%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Pub2%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Pub2%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Pub2%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Pub2%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Pub2%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Pub2%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Pub3%supports_filters' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Pub3%supports_filters' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Pub3%supports_filters' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Pub3%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Pub3%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Pub3%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Pub3%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Pub3%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Pub3%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Pub3%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Pub3%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Pub3%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Pub3%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Pub3%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Pub3%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Pub3%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Pub3%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Pub3%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Pub3%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Pub3%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Pub3%uses_random_access' +[debug/optimizer] inlining constant 'foo::__feat%foo@@Pub3%uses_random_access' [debug/optimizer] removing declaration for unused function foo::Priv1::__parse_foo_Priv1_stage2 [debug/optimizer] removing declaration for unused function foo::Priv1::__parse_stage1 [debug/optimizer] removing declaration for unused function foo::Priv1::parse1 diff --git a/tests/Baseline/spicy.optimization.unused-types/noopt.hlt b/tests/Baseline/spicy.optimization.unused-types/noopt.hlt index 3f2b0d3dd..0c229e2eb 100644 --- a/tests/Baseline/spicy.optimization.unused-types/noopt.hlt +++ b/tests/Baseline/spicy.optimization.unused-types/noopt.hlt @@ -253,51 +253,51 @@ public type Priv10 = struct { type Priv11 = enum { A = 0, B = 1, C = 2 }; type Priv12 = enum { A = 0, B = 1, C = 2 }; -const bool __feat%foo__Priv1%uses_random_access = True; -const bool __feat%foo__Priv1%is_filter = False; -const bool __feat%foo__Priv1%supports_filters = True; -const bool __feat%foo__Priv1%supports_sinks = True; -const bool __feat%foo__Priv1%synchronization = True; -const bool __feat%foo__Pub2%uses_random_access = True; -const bool __feat%foo__Pub2%is_filter = False; -const bool __feat%foo__Pub2%supports_filters = True; -const bool __feat%foo__Pub2%supports_sinks = True; -const bool __feat%foo__Pub2%synchronization = True; -const bool __feat%foo__Priv2%uses_random_access = True; -const bool __feat%foo__Priv2%is_filter = False; -const bool __feat%foo__Priv2%supports_filters = True; -const bool __feat%foo__Priv2%supports_sinks = True; -const bool __feat%foo__Priv2%synchronization = True; -const bool __feat%foo__Priv3%uses_random_access = True; -const bool __feat%foo__Priv3%is_filter = False; -const bool __feat%foo__Priv3%supports_filters = True; -const bool __feat%foo__Priv3%supports_sinks = True; -const bool __feat%foo__Priv3%synchronization = True; -const bool __feat%foo__Priv4%uses_random_access = True; -const bool __feat%foo__Priv4%is_filter = False; -const bool __feat%foo__Priv4%supports_filters = True; -const bool __feat%foo__Priv4%supports_sinks = True; -const bool __feat%foo__Priv4%synchronization = True; -const bool __feat%foo__Priv5%uses_random_access = True; -const bool __feat%foo__Priv5%is_filter = False; -const bool __feat%foo__Priv5%supports_filters = True; -const bool __feat%foo__Priv5%supports_sinks = True; -const bool __feat%foo__Priv5%synchronization = True; -const bool __feat%foo__Priv6%uses_random_access = True; -const bool __feat%foo__Priv6%is_filter = False; -const bool __feat%foo__Priv6%supports_filters = True; -const bool __feat%foo__Priv6%supports_sinks = True; -const bool __feat%foo__Priv6%synchronization = True; -const bool __feat%foo__Pub3%uses_random_access = True; -const bool __feat%foo__Pub3%is_filter = False; -const bool __feat%foo__Pub3%supports_filters = True; -const bool __feat%foo__Pub3%supports_sinks = True; -const bool __feat%foo__Pub3%synchronization = True; -const bool __feat%foo__Priv10%uses_random_access = True; -const bool __feat%foo__Priv10%is_filter = False; -const bool __feat%foo__Priv10%supports_filters = True; -const bool __feat%foo__Priv10%supports_sinks = True; -const bool __feat%foo__Priv10%synchronization = True; +const bool __feat%foo@@Priv1%uses_random_access = True; +const bool __feat%foo@@Priv1%is_filter = False; +const bool __feat%foo@@Priv1%supports_filters = True; +const bool __feat%foo@@Priv1%supports_sinks = True; +const bool __feat%foo@@Priv1%synchronization = True; +const bool __feat%foo@@Pub2%uses_random_access = True; +const bool __feat%foo@@Pub2%is_filter = False; +const bool __feat%foo@@Pub2%supports_filters = True; +const bool __feat%foo@@Pub2%supports_sinks = True; +const bool __feat%foo@@Pub2%synchronization = True; +const bool __feat%foo@@Priv2%uses_random_access = True; +const bool __feat%foo@@Priv2%is_filter = False; +const bool __feat%foo@@Priv2%supports_filters = True; +const bool __feat%foo@@Priv2%supports_sinks = True; +const bool __feat%foo@@Priv2%synchronization = True; +const bool __feat%foo@@Priv3%uses_random_access = True; +const bool __feat%foo@@Priv3%is_filter = False; +const bool __feat%foo@@Priv3%supports_filters = True; +const bool __feat%foo@@Priv3%supports_sinks = True; +const bool __feat%foo@@Priv3%synchronization = True; +const bool __feat%foo@@Priv4%uses_random_access = True; +const bool __feat%foo@@Priv4%is_filter = False; +const bool __feat%foo@@Priv4%supports_filters = True; +const bool __feat%foo@@Priv4%supports_sinks = True; +const bool __feat%foo@@Priv4%synchronization = True; +const bool __feat%foo@@Priv5%uses_random_access = True; +const bool __feat%foo@@Priv5%is_filter = False; +const bool __feat%foo@@Priv5%supports_filters = True; +const bool __feat%foo@@Priv5%supports_sinks = True; +const bool __feat%foo@@Priv5%synchronization = True; +const bool __feat%foo@@Priv6%uses_random_access = True; +const bool __feat%foo@@Priv6%is_filter = False; +const bool __feat%foo@@Priv6%supports_filters = True; +const bool __feat%foo@@Priv6%supports_sinks = True; +const bool __feat%foo@@Priv6%synchronization = True; +const bool __feat%foo@@Pub3%uses_random_access = True; +const bool __feat%foo@@Pub3%is_filter = False; +const bool __feat%foo@@Pub3%supports_filters = True; +const bool __feat%foo@@Pub3%supports_sinks = True; +const bool __feat%foo@@Pub3%synchronization = True; +const bool __feat%foo@@Priv10%uses_random_access = True; +const bool __feat%foo@@Priv10%is_filter = False; +const bool __feat%foo@@Priv10%supports_filters = True; +const bool __feat%foo@@Priv10%supports_sinks = True; +const bool __feat%foo@@Priv10%synchronization = True; global Priv11 en; global Priv12 em = Priv12::A; @@ -307,24 +307,24 @@ method method tuple, int<64>, iterator, optional, int<64>, iterator, optional> __result; try { - if ( __feat%foo__Priv1%uses_random_access ) + if ( __feat%foo@@Priv1%uses_random_access ) __trim = False; hilti::debugIndent("spicy"); - if ( __feat%foo__Priv1%uses_random_access ) { + if ( __feat%foo@@Priv1%uses_random_access ) { (*self).__begin = begin(__cur); (*self).__position = begin(__cur); } (*self).__error = __error; - if ( __feat%foo__Priv1%uses_random_access ) + if ( __feat%foo@@Priv1%uses_random_access ) (*self).__position_update = Null; (*self).__on_0x25_init(); - if ( __feat%foo__Priv1%uses_random_access ) + if ( __feat%foo@@Priv1%uses_random_access ) if ( (*self).__position_update ) { __cur = __cur.advance((*(*self).__position_update)); @@ -335,7 +335,7 @@ method method tuple, int<64>, iterator, optional filtered = Null; - if ( __feat%foo__Priv1%supports_filters ) + if ( __feat%foo@@Priv1%supports_filters ) if ( filtered = spicy_rt::filter_init(self, __data, __cur) ) { local value_ref filtered_data = filtered; @@ -356,22 +356,22 @@ method method tuple, int<64>, iterator, optional, int<64>, iterator, optional, int<64>, iterator, optional/unused-types.spicy:13:14" local tuple, int<64>, iterator, optional> __result; - if ( __feat%foo__Priv1%uses_random_access ) + if ( __feat%foo@@Priv1%uses_random_access ) (*self).__position = begin(__cur); (*self).__error = __error; - if ( __feat%foo__Priv1%uses_random_access ) + if ( __feat%foo@@Priv1%uses_random_access ) (*self).__position_update = Null; (*self).__on_0x25_done(); - if ( __feat%foo__Priv1%uses_random_access ) + if ( __feat%foo@@Priv1%uses_random_access ) if ( (*self).__position_update ) { __cur = __cur.advance((*(*self).__position_update)); @@ -426,7 +426,7 @@ method method tuple, int<64>, iterator, optional foo::Priv1::parse1(inout value_ref dat (ncur, lahead, lahead_end, error) = (*unit).__parse_stage1(data, ncur, True, lahead, lahead_end, error); # End parsing production: Unit: foo_Priv1 -> - if ( __feat%foo__Priv1%uses_random_access ) + if ( __feat%foo@@Priv1%uses_random_access ) (*unit).__position = begin(ncur); @@ -471,7 +471,7 @@ method extern method view foo::Priv1::parse3(inout value_ref - if ( __feat%foo__Priv1%uses_random_access ) + if ( __feat%foo@@Priv1%uses_random_access ) (*unit).__position = begin(ncur); @@ -493,7 +493,7 @@ method extern method view foo::Priv1::parse2(inout value_ref unit (ncur, lahead, lahead_end, error) = (*unit).__parse_stage1(data, ncur, True, lahead, lahead_end, error); # End parsing production: Unit: foo_Priv1 -> - if ( __feat%foo__Priv1%uses_random_access ) + if ( __feat%foo@@Priv1%uses_random_access ) (*unit).__position = begin(ncur); @@ -505,7 +505,7 @@ method extern method view foo::Priv1::parse2(inout value_ref unit init function void __register_foo_Priv1() { - if ( __feat%foo__Priv1%is_filter || __feat%foo__Priv1%supports_sinks ) { + if ( __feat%foo@@Priv1%is_filter || __feat%foo@@Priv1%supports_sinks ) { foo::Priv1::__parser = [$name="foo::Priv1", $is_public=False, $parse1=foo::Priv1::parse1, $parse2=foo::Priv1::parse2, $parse3=foo::Priv1::parse3, $context_new=Null, $type_info=typeinfo(Priv1), $description="", $mime_types=vector(), $ports=vector()]; spicy_rt::registerParser(foo::Priv1::__parser, $scope, Null); } @@ -517,24 +517,24 @@ method method tuple, int<64>, iterator, optional, int<64>, iterator, optional> __result; try { - if ( __feat%foo__Pub2%uses_random_access ) + if ( __feat%foo@@Pub2%uses_random_access ) __trim = False; hilti::debugIndent("spicy"); - if ( __feat%foo__Pub2%uses_random_access ) { + if ( __feat%foo@@Pub2%uses_random_access ) { (*self).__begin = begin(__cur); (*self).__position = begin(__cur); } (*self).__error = __error; - if ( __feat%foo__Pub2%uses_random_access ) + if ( __feat%foo@@Pub2%uses_random_access ) (*self).__position_update = Null; (*self).__on_0x25_init(); - if ( __feat%foo__Pub2%uses_random_access ) + if ( __feat%foo@@Pub2%uses_random_access ) if ( (*self).__position_update ) { __cur = __cur.advance((*(*self).__position_update)); @@ -545,7 +545,7 @@ method method tuple, int<64>, iterator, optional filtered = Null; - if ( __feat%foo__Pub2%supports_filters ) + if ( __feat%foo@@Pub2%supports_filters ) if ( filtered = spicy_rt::filter_init(self, __data, __cur) ) { local value_ref filtered_data = filtered; @@ -566,22 +566,22 @@ method method tuple, int<64>, iterator, optional, int<64>, iterator, optional, int<64>, iterator, optional/unused-types.spicy:16:20" local tuple, int<64>, iterator, optional> __result; - if ( __feat%foo__Pub2%uses_random_access ) + if ( __feat%foo@@Pub2%uses_random_access ) (*self).__position = begin(__cur); (*self).__error = __error; - if ( __feat%foo__Pub2%uses_random_access ) + if ( __feat%foo@@Pub2%uses_random_access ) (*self).__position_update = Null; (*self).__on_0x25_done(); - if ( __feat%foo__Pub2%uses_random_access ) + if ( __feat%foo@@Pub2%uses_random_access ) if ( (*self).__position_update ) { __cur = __cur.advance((*(*self).__position_update)); @@ -636,7 +636,7 @@ method method tuple, int<64>, iterator, optional foo::Pub2::parse1(inout value_ref data (ncur, lahead, lahead_end, error) = (*unit).__parse_stage1(data, ncur, True, lahead, lahead_end, error); # End parsing production: Unit: foo_Pub2 -> - if ( __feat%foo__Pub2%uses_random_access ) + if ( __feat%foo@@Pub2%uses_random_access ) (*unit).__position = begin(ncur); @@ -681,7 +681,7 @@ method extern method view foo::Pub2::parse3(inout value_ref - if ( __feat%foo__Pub2%uses_random_access ) + if ( __feat%foo@@Pub2%uses_random_access ) (*unit).__position = begin(ncur); @@ -703,7 +703,7 @@ method extern method view foo::Pub2::parse2(inout value_ref unit, (ncur, lahead, lahead_end, error) = (*unit).__parse_stage1(data, ncur, True, lahead, lahead_end, error); # End parsing production: Unit: foo_Pub2 -> - if ( __feat%foo__Pub2%uses_random_access ) + if ( __feat%foo@@Pub2%uses_random_access ) (*unit).__position = begin(ncur); @@ -723,24 +723,24 @@ method method tuple, int<64>, iterator, optional, int<64>, iterator, optional> __result; try { - if ( __feat%foo__Priv2%uses_random_access ) + if ( __feat%foo@@Priv2%uses_random_access ) __trim = False; hilti::debugIndent("spicy"); - if ( __feat%foo__Priv2%uses_random_access ) { + if ( __feat%foo@@Priv2%uses_random_access ) { (*self).__begin = begin(__cur); (*self).__position = begin(__cur); } (*self).__error = __error; - if ( __feat%foo__Priv2%uses_random_access ) + if ( __feat%foo@@Priv2%uses_random_access ) (*self).__position_update = Null; (*self).__on_0x25_init(); - if ( __feat%foo__Priv2%uses_random_access ) + if ( __feat%foo@@Priv2%uses_random_access ) if ( (*self).__position_update ) { __cur = __cur.advance((*(*self).__position_update)); @@ -751,7 +751,7 @@ method method tuple, int<64>, iterator, optional filtered = Null; - if ( __feat%foo__Priv2%supports_filters ) + if ( __feat%foo@@Priv2%supports_filters ) if ( filtered = spicy_rt::filter_init(self, __data, __cur) ) { local value_ref filtered_data = filtered; @@ -772,22 +772,22 @@ method method tuple, int<64>, iterator, optional, int<64>, iterator, optional, int<64>, iterator, optional/unused-types.spicy:19:14" local tuple, int<64>, iterator, optional> __result; - if ( __feat%foo__Priv2%uses_random_access ) + if ( __feat%foo@@Priv2%uses_random_access ) (*self).__position = begin(__cur); (*self).__error = __error; - if ( __feat%foo__Priv2%uses_random_access ) + if ( __feat%foo@@Priv2%uses_random_access ) (*self).__position_update = Null; (*self).__on_0x25_done(); - if ( __feat%foo__Priv2%uses_random_access ) + if ( __feat%foo@@Priv2%uses_random_access ) if ( (*self).__position_update ) { __cur = __cur.advance((*(*self).__position_update)); @@ -842,7 +842,7 @@ method method tuple, int<64>, iterator, optional foo::Priv2::parse1(inout value_ref dat (ncur, lahead, lahead_end, error) = (*unit).__parse_stage1(data, ncur, True, lahead, lahead_end, error); # End parsing production: Unit: foo_Priv2 -> - if ( __feat%foo__Priv2%uses_random_access ) + if ( __feat%foo@@Priv2%uses_random_access ) (*unit).__position = begin(ncur); @@ -887,7 +887,7 @@ method extern method view foo::Priv2::parse3(inout value_ref - if ( __feat%foo__Priv2%uses_random_access ) + if ( __feat%foo@@Priv2%uses_random_access ) (*unit).__position = begin(ncur); @@ -909,7 +909,7 @@ method extern method view foo::Priv2::parse2(inout value_ref unit (ncur, lahead, lahead_end, error) = (*unit).__parse_stage1(data, ncur, True, lahead, lahead_end, error); # End parsing production: Unit: foo_Priv2 -> - if ( __feat%foo__Priv2%uses_random_access ) + if ( __feat%foo@@Priv2%uses_random_access ) (*unit).__position = begin(ncur); @@ -921,7 +921,7 @@ method extern method view foo::Priv2::parse2(inout value_ref unit init function void __register_foo_Priv2() { - if ( __feat%foo__Priv2%is_filter || __feat%foo__Priv2%supports_sinks ) { + if ( __feat%foo@@Priv2%is_filter || __feat%foo@@Priv2%supports_sinks ) { foo::Priv2::__parser = [$name="foo::Priv2", $is_public=False, $parse1=foo::Priv2::parse1, $parse2=foo::Priv2::parse2, $parse3=foo::Priv2::parse3, $context_new=Null, $type_info=typeinfo(Priv2), $description="", $mime_types=vector(), $ports=vector()]; spicy_rt::registerParser(foo::Priv2::__parser, $scope, Null); } @@ -933,24 +933,24 @@ method method tuple, int<64>, iterator, optional, int<64>, iterator, optional> __result; try { - if ( __feat%foo__Priv3%uses_random_access ) + if ( __feat%foo@@Priv3%uses_random_access ) __trim = False; hilti::debugIndent("spicy"); - if ( __feat%foo__Priv3%uses_random_access ) { + if ( __feat%foo@@Priv3%uses_random_access ) { (*self).__begin = begin(__cur); (*self).__position = begin(__cur); } (*self).__error = __error; - if ( __feat%foo__Priv3%uses_random_access ) + if ( __feat%foo@@Priv3%uses_random_access ) (*self).__position_update = Null; (*self).__on_0x25_init(); - if ( __feat%foo__Priv3%uses_random_access ) + if ( __feat%foo@@Priv3%uses_random_access ) if ( (*self).__position_update ) { __cur = __cur.advance((*(*self).__position_update)); @@ -961,7 +961,7 @@ method method tuple, int<64>, iterator, optional filtered = Null; - if ( __feat%foo__Priv3%supports_filters ) + if ( __feat%foo@@Priv3%supports_filters ) if ( filtered = spicy_rt::filter_init(self, __data, __cur) ) { local value_ref filtered_data = filtered; @@ -982,22 +982,22 @@ method method tuple, int<64>, iterator, optional, int<64>, iterator, optional, int<64>, iterator, optional/unused-types.spicy:20:14" local tuple, int<64>, iterator, optional> __result; - if ( __feat%foo__Priv3%uses_random_access ) + if ( __feat%foo@@Priv3%uses_random_access ) (*self).__position = begin(__cur); (*self).__error = __error; - if ( __feat%foo__Priv3%uses_random_access ) + if ( __feat%foo@@Priv3%uses_random_access ) (*self).__position_update = Null; (*self).__on_0x25_done(); - if ( __feat%foo__Priv3%uses_random_access ) + if ( __feat%foo@@Priv3%uses_random_access ) if ( (*self).__position_update ) { __cur = __cur.advance((*(*self).__position_update)); @@ -1052,7 +1052,7 @@ method method tuple, int<64>, iterator, optional foo::Priv3::parse1(inout value_ref dat (ncur, lahead, lahead_end, error) = (*unit).__parse_stage1(data, ncur, True, lahead, lahead_end, error); # End parsing production: Unit: foo_Priv3 -> - if ( __feat%foo__Priv3%uses_random_access ) + if ( __feat%foo@@Priv3%uses_random_access ) (*unit).__position = begin(ncur); @@ -1097,7 +1097,7 @@ method extern method view foo::Priv3::parse3(inout value_ref - if ( __feat%foo__Priv3%uses_random_access ) + if ( __feat%foo@@Priv3%uses_random_access ) (*unit).__position = begin(ncur); @@ -1119,7 +1119,7 @@ method extern method view foo::Priv3::parse2(inout value_ref unit (ncur, lahead, lahead_end, error) = (*unit).__parse_stage1(data, ncur, True, lahead, lahead_end, error); # End parsing production: Unit: foo_Priv3 -> - if ( __feat%foo__Priv3%uses_random_access ) + if ( __feat%foo@@Priv3%uses_random_access ) (*unit).__position = begin(ncur); @@ -1131,7 +1131,7 @@ method extern method view foo::Priv3::parse2(inout value_ref unit init function void __register_foo_Priv3() { - if ( __feat%foo__Priv3%is_filter || __feat%foo__Priv3%supports_sinks ) { + if ( __feat%foo@@Priv3%is_filter || __feat%foo@@Priv3%supports_sinks ) { foo::Priv3::__parser = [$name="foo::Priv3", $is_public=False, $parse1=foo::Priv3::parse1, $parse2=foo::Priv3::parse2, $parse3=foo::Priv3::parse3, $context_new=Null, $type_info=typeinfo(Priv3), $description="", $mime_types=vector(), $ports=vector()]; spicy_rt::registerParser(foo::Priv3::__parser, $scope, Null); } @@ -1143,24 +1143,24 @@ method method tuple, int<64>, iterator, optional, int<64>, iterator, optional> __result; try { - if ( __feat%foo__Priv4%uses_random_access ) + if ( __feat%foo@@Priv4%uses_random_access ) __trim = False; hilti::debugIndent("spicy"); - if ( __feat%foo__Priv4%uses_random_access ) { + if ( __feat%foo@@Priv4%uses_random_access ) { (*self).__begin = begin(__cur); (*self).__position = begin(__cur); } (*self).__error = __error; - if ( __feat%foo__Priv4%uses_random_access ) + if ( __feat%foo@@Priv4%uses_random_access ) (*self).__position_update = Null; (*self).__on_0x25_init(); - if ( __feat%foo__Priv4%uses_random_access ) + if ( __feat%foo@@Priv4%uses_random_access ) if ( (*self).__position_update ) { __cur = __cur.advance((*(*self).__position_update)); @@ -1171,7 +1171,7 @@ method method tuple, int<64>, iterator, optional filtered = Null; - if ( __feat%foo__Priv4%supports_filters ) + if ( __feat%foo@@Priv4%supports_filters ) if ( filtered = spicy_rt::filter_init(self, __data, __cur) ) { local value_ref filtered_data = filtered; @@ -1192,22 +1192,22 @@ method method tuple, int<64>, iterator, optional, int<64>, iterator, optional, int<64>, iterator, optional - if ( __feat%foo__Priv4%uses_random_access ) + if ( __feat%foo@@Priv4%uses_random_access ) (*self).__position = begin(__cur); # "<...>/unused-types.spicy:20:14" @@ -1261,12 +1261,12 @@ method method tuple, int<64>, iterator, optional, int<64>, iterator, optional, int<64>, iterator, optional foo::Priv4::parse1(inout value_ref dat (ncur, lahead, lahead_end, error) = (*unit).__parse_stage1(data, ncur, True, lahead, lahead_end, error); # End parsing production: Unit: foo_Priv4 -> foo_Priv2_2 foo_Priv3_2 - if ( __feat%foo__Priv4%uses_random_access ) + if ( __feat%foo@@Priv4%uses_random_access ) (*unit).__position = begin(ncur); @@ -1345,7 +1345,7 @@ method extern method view foo::Priv4::parse3(inout value_ref foo_Priv2_2 foo_Priv3_2 - if ( __feat%foo__Priv4%uses_random_access ) + if ( __feat%foo@@Priv4%uses_random_access ) (*unit).__position = begin(ncur); @@ -1367,7 +1367,7 @@ method extern method view foo::Priv4::parse2(inout value_ref unit (ncur, lahead, lahead_end, error) = (*unit).__parse_stage1(data, ncur, True, lahead, lahead_end, error); # End parsing production: Unit: foo_Priv4 -> foo_Priv2_2 foo_Priv3_2 - if ( __feat%foo__Priv4%uses_random_access ) + if ( __feat%foo@@Priv4%uses_random_access ) (*unit).__position = begin(ncur); @@ -1379,7 +1379,7 @@ method extern method view foo::Priv4::parse2(inout value_ref unit init function void __register_foo_Priv4() { - if ( __feat%foo__Priv4%is_filter || __feat%foo__Priv4%supports_sinks ) { + if ( __feat%foo@@Priv4%is_filter || __feat%foo@@Priv4%supports_sinks ) { foo::Priv4::__parser = [$name="foo::Priv4", $is_public=False, $parse1=foo::Priv4::parse1, $parse2=foo::Priv4::parse2, $parse3=foo::Priv4::parse3, $context_new=Null, $type_info=typeinfo(Priv4), $description="", $mime_types=vector(), $ports=vector()]; spicy_rt::registerParser(foo::Priv4::__parser, $scope, Null); } @@ -1391,24 +1391,24 @@ method method tuple, int<64>, iterator, optional, int<64>, iterator, optional> __result; try { - if ( __feat%foo__Priv5%uses_random_access ) + if ( __feat%foo@@Priv5%uses_random_access ) __trim = False; hilti::debugIndent("spicy"); - if ( __feat%foo__Priv5%uses_random_access ) { + if ( __feat%foo@@Priv5%uses_random_access ) { (*self).__begin = begin(__cur); (*self).__position = begin(__cur); } (*self).__error = __error; - if ( __feat%foo__Priv5%uses_random_access ) + if ( __feat%foo@@Priv5%uses_random_access ) (*self).__position_update = Null; (*self).__on_0x25_init(); - if ( __feat%foo__Priv5%uses_random_access ) + if ( __feat%foo@@Priv5%uses_random_access ) if ( (*self).__position_update ) { __cur = __cur.advance((*(*self).__position_update)); @@ -1419,7 +1419,7 @@ method method tuple, int<64>, iterator, optional filtered = Null; - if ( __feat%foo__Priv5%supports_filters ) + if ( __feat%foo@@Priv5%supports_filters ) if ( filtered = spicy_rt::filter_init(self, __data, __cur) ) { local value_ref filtered_data = filtered; @@ -1440,22 +1440,22 @@ method method tuple, int<64>, iterator, optional, int<64>, iterator, optional, int<64>, iterator, optional/unused-types.spicy:27:14" local tuple, int<64>, iterator, optional> __result; - if ( __feat%foo__Priv5%uses_random_access ) + if ( __feat%foo@@Priv5%uses_random_access ) (*self).__position = begin(__cur); (*self).__error = __error; - if ( __feat%foo__Priv5%uses_random_access ) + if ( __feat%foo@@Priv5%uses_random_access ) (*self).__position_update = Null; (*self).__on_0x25_done(); - if ( __feat%foo__Priv5%uses_random_access ) + if ( __feat%foo@@Priv5%uses_random_access ) if ( (*self).__position_update ) { __cur = __cur.advance((*(*self).__position_update)); @@ -1510,7 +1510,7 @@ method method tuple, int<64>, iterator, optional foo::Priv5::parse1(inout value_ref dat (ncur, lahead, lahead_end, error) = (*unit).__parse_stage1(data, ncur, True, lahead, lahead_end, error); # End parsing production: Unit: foo_Priv5 -> - if ( __feat%foo__Priv5%uses_random_access ) + if ( __feat%foo@@Priv5%uses_random_access ) (*unit).__position = begin(ncur); @@ -1555,7 +1555,7 @@ method extern method view foo::Priv5::parse3(inout value_ref - if ( __feat%foo__Priv5%uses_random_access ) + if ( __feat%foo@@Priv5%uses_random_access ) (*unit).__position = begin(ncur); @@ -1577,7 +1577,7 @@ method extern method view foo::Priv5::parse2(inout value_ref unit (ncur, lahead, lahead_end, error) = (*unit).__parse_stage1(data, ncur, True, lahead, lahead_end, error); # End parsing production: Unit: foo_Priv5 -> - if ( __feat%foo__Priv5%uses_random_access ) + if ( __feat%foo@@Priv5%uses_random_access ) (*unit).__position = begin(ncur); @@ -1589,7 +1589,7 @@ method extern method view foo::Priv5::parse2(inout value_ref unit init function void __register_foo_Priv5() { - if ( __feat%foo__Priv5%is_filter || __feat%foo__Priv5%supports_sinks ) { + if ( __feat%foo@@Priv5%is_filter || __feat%foo@@Priv5%supports_sinks ) { foo::Priv5::__parser = [$name="foo::Priv5", $is_public=False, $parse1=foo::Priv5::parse1, $parse2=foo::Priv5::parse2, $parse3=foo::Priv5::parse3, $context_new=Null, $type_info=typeinfo(Priv5), $description="", $mime_types=vector(), $ports=vector()]; spicy_rt::registerParser(foo::Priv5::__parser, $scope, Null); } @@ -1601,24 +1601,24 @@ method method tuple, int<64>, iterator, optional, int<64>, iterator, optional> __result; try { - if ( __feat%foo__Priv6%uses_random_access ) + if ( __feat%foo@@Priv6%uses_random_access ) __trim = False; hilti::debugIndent("spicy"); - if ( __feat%foo__Priv6%uses_random_access ) { + if ( __feat%foo@@Priv6%uses_random_access ) { (*self).__begin = begin(__cur); (*self).__position = begin(__cur); } (*self).__error = __error; - if ( __feat%foo__Priv6%uses_random_access ) + if ( __feat%foo@@Priv6%uses_random_access ) (*self).__position_update = Null; (*self).__on_0x25_init(); - if ( __feat%foo__Priv6%uses_random_access ) + if ( __feat%foo@@Priv6%uses_random_access ) if ( (*self).__position_update ) { __cur = __cur.advance((*(*self).__position_update)); @@ -1629,7 +1629,7 @@ method method tuple, int<64>, iterator, optional filtered = Null; - if ( __feat%foo__Priv6%supports_filters ) + if ( __feat%foo@@Priv6%supports_filters ) if ( filtered = spicy_rt::filter_init(self, __data, __cur) ) { local value_ref filtered_data = filtered; @@ -1650,22 +1650,22 @@ method method tuple, int<64>, iterator, optional, int<64>, iterator, optional, int<64>, iterator, optional/unused-types.spicy:28:14" local tuple, int<64>, iterator, optional> __result; - if ( __feat%foo__Priv6%uses_random_access ) + if ( __feat%foo@@Priv6%uses_random_access ) (*self).__position = begin(__cur); (*self).__error = __error; - if ( __feat%foo__Priv6%uses_random_access ) + if ( __feat%foo@@Priv6%uses_random_access ) (*self).__position_update = Null; (*self).__on_0x25_done(); - if ( __feat%foo__Priv6%uses_random_access ) + if ( __feat%foo@@Priv6%uses_random_access ) if ( (*self).__position_update ) { __cur = __cur.advance((*(*self).__position_update)); @@ -1720,7 +1720,7 @@ method method tuple, int<64>, iterator, optional foo::Priv6::parse1(inout value_ref dat (ncur, lahead, lahead_end, error) = (*unit).__parse_stage1(data, ncur, True, lahead, lahead_end, error); # End parsing production: Unit: foo_Priv6 -> - if ( __feat%foo__Priv6%uses_random_access ) + if ( __feat%foo@@Priv6%uses_random_access ) (*unit).__position = begin(ncur); @@ -1765,7 +1765,7 @@ method extern method view foo::Priv6::parse3(inout value_ref - if ( __feat%foo__Priv6%uses_random_access ) + if ( __feat%foo@@Priv6%uses_random_access ) (*unit).__position = begin(ncur); @@ -1787,7 +1787,7 @@ method extern method view foo::Priv6::parse2(inout value_ref unit (ncur, lahead, lahead_end, error) = (*unit).__parse_stage1(data, ncur, True, lahead, lahead_end, error); # End parsing production: Unit: foo_Priv6 -> - if ( __feat%foo__Priv6%uses_random_access ) + if ( __feat%foo@@Priv6%uses_random_access ) (*unit).__position = begin(ncur); @@ -1799,7 +1799,7 @@ method extern method view foo::Priv6::parse2(inout value_ref unit init function void __register_foo_Priv6() { - if ( __feat%foo__Priv6%is_filter || __feat%foo__Priv6%supports_sinks ) { + if ( __feat%foo@@Priv6%is_filter || __feat%foo@@Priv6%supports_sinks ) { foo::Priv6::__parser = [$name="foo::Priv6", $is_public=False, $parse1=foo::Priv6::parse1, $parse2=foo::Priv6::parse2, $parse3=foo::Priv6::parse3, $context_new=Null, $type_info=typeinfo(Priv6), $description="", $mime_types=vector(), $ports=vector()]; spicy_rt::registerParser(foo::Priv6::__parser, $scope, Null); } @@ -1811,24 +1811,24 @@ method method tuple, int<64>, iterator, optional, int<64>, iterator, optional> __result; try { - if ( __feat%foo__Pub3%uses_random_access ) + if ( __feat%foo@@Pub3%uses_random_access ) __trim = False; hilti::debugIndent("spicy"); - if ( __feat%foo__Pub3%uses_random_access ) { + if ( __feat%foo@@Pub3%uses_random_access ) { (*self).__begin = begin(__cur); (*self).__position = begin(__cur); } (*self).__error = __error; - if ( __feat%foo__Pub3%uses_random_access ) + if ( __feat%foo@@Pub3%uses_random_access ) (*self).__position_update = Null; (*self).__on_0x25_init(); - if ( __feat%foo__Pub3%uses_random_access ) + if ( __feat%foo@@Pub3%uses_random_access ) if ( (*self).__position_update ) { __cur = __cur.advance((*(*self).__position_update)); @@ -1839,7 +1839,7 @@ method method tuple, int<64>, iterator, optional filtered = Null; - if ( __feat%foo__Pub3%supports_filters ) + if ( __feat%foo@@Pub3%supports_filters ) if ( filtered = spicy_rt::filter_init(self, __data, __cur) ) { local value_ref filtered_data = filtered; @@ -1860,22 +1860,22 @@ method method tuple, int<64>, iterator, optional, int<64>, iterator, optional, int<64>, iterator, optional - if ( __feat%foo__Pub3%uses_random_access ) + if ( __feat%foo@@Pub3%uses_random_access ) (*self).__position = begin(__cur); # "<...>/unused-types.spicy:28:14" @@ -1929,12 +1929,12 @@ method method tuple, int<64>, iterator, optional, int<64>, iterator, optional, int<64>, iterator, optional foo::Pub3::parse1(inout value_ref data (ncur, lahead, lahead_end, error) = (*unit).__parse_stage1(data, ncur, True, lahead, lahead_end, error); # End parsing production: Unit: foo_Pub3 -> foo_Priv5_2 foo_Priv6_2 - if ( __feat%foo__Pub3%uses_random_access ) + if ( __feat%foo@@Pub3%uses_random_access ) (*unit).__position = begin(ncur); @@ -2013,7 +2013,7 @@ method extern method view foo::Pub3::parse3(inout value_ref foo_Priv5_2 foo_Priv6_2 - if ( __feat%foo__Pub3%uses_random_access ) + if ( __feat%foo@@Pub3%uses_random_access ) (*unit).__position = begin(ncur); @@ -2035,7 +2035,7 @@ method extern method view foo::Pub3::parse2(inout value_ref unit, (ncur, lahead, lahead_end, error) = (*unit).__parse_stage1(data, ncur, True, lahead, lahead_end, error); # End parsing production: Unit: foo_Pub3 -> foo_Priv5_2 foo_Priv6_2 - if ( __feat%foo__Pub3%uses_random_access ) + if ( __feat%foo@@Pub3%uses_random_access ) (*unit).__position = begin(ncur); @@ -2055,24 +2055,24 @@ method method tuple, int<64>, iterator, optional, int<64>, iterator, optional> __result; try { - if ( __feat%foo__Priv10%uses_random_access ) + if ( __feat%foo@@Priv10%uses_random_access ) __trim = False; hilti::debugIndent("spicy"); - if ( __feat%foo__Priv10%uses_random_access ) { + if ( __feat%foo@@Priv10%uses_random_access ) { (*self).__begin = begin(__cur); (*self).__position = begin(__cur); } (*self).__error = __error; - if ( __feat%foo__Priv10%uses_random_access ) + if ( __feat%foo@@Priv10%uses_random_access ) (*self).__position_update = Null; (*self).__on_0x25_init(); - if ( __feat%foo__Priv10%uses_random_access ) + if ( __feat%foo@@Priv10%uses_random_access ) if ( (*self).__position_update ) { __cur = __cur.advance((*(*self).__position_update)); @@ -2083,7 +2083,7 @@ method method tuple, int<64>, iterator, optional filtered = Null; - if ( __feat%foo__Priv10%supports_filters ) + if ( __feat%foo@@Priv10%supports_filters ) if ( filtered = spicy_rt::filter_init(self, __data, __cur) ) { local value_ref filtered_data = filtered; @@ -2104,22 +2104,22 @@ method method tuple, int<64>, iterator, optional, int<64>, iterator, optional, int<64>, iterator, optional/unused-types.spicy:43:22-46:2" local tuple, int<64>, iterator, optional> __result; - if ( __feat%foo__Priv10%uses_random_access ) + if ( __feat%foo@@Priv10%uses_random_access ) (*self).__position = begin(__cur); (*self).__error = __error; - if ( __feat%foo__Priv10%uses_random_access ) + if ( __feat%foo@@Priv10%uses_random_access ) (*self).__position_update = Null; (*self).__on_0x25_done(); - if ( __feat%foo__Priv10%uses_random_access ) + if ( __feat%foo@@Priv10%uses_random_access ) if ( (*self).__position_update ) { __cur = __cur.advance((*(*self).__position_update)); @@ -2174,7 +2174,7 @@ method method tuple, int<64>, iterator, optional foo::Priv10::parse1(inout value_ref da (ncur, lahead, lahead_end, error) = (*unit).__parse_stage1(data, ncur, True, lahead, lahead_end, error); # End parsing production: Unit: foo_Priv10 -> - if ( __feat%foo__Priv10%uses_random_access ) + if ( __feat%foo@@Priv10%uses_random_access ) (*unit).__position = begin(ncur); @@ -2219,7 +2219,7 @@ method extern method view foo::Priv10::parse3(inout value_ref - if ( __feat%foo__Priv10%uses_random_access ) + if ( __feat%foo@@Priv10%uses_random_access ) (*unit).__position = begin(ncur); @@ -2241,7 +2241,7 @@ method extern method view foo::Priv10::parse2(inout value_ref un (ncur, lahead, lahead_end, error) = (*unit).__parse_stage1(data, ncur, True, lahead, lahead_end, error); # End parsing production: Unit: foo_Priv10 -> - if ( __feat%foo__Priv10%uses_random_access ) + if ( __feat%foo@@Priv10%uses_random_access ) (*unit).__position = begin(ncur); diff --git a/tests/Baseline/spicy.optimization.unused-types/opt.hlt b/tests/Baseline/spicy.optimization.unused-types/opt.hlt index 6ff14e0aa..72cdb5510 100644 --- a/tests/Baseline/spicy.optimization.unused-types/opt.hlt +++ b/tests/Baseline/spicy.optimization.unused-types/opt.hlt @@ -51,51 +51,51 @@ public type Priv10 = struct { type Priv11 = enum { A = 0, B = 1, C = 2 }; type Priv12 = enum { A = 0, B = 1, C = 2 }; -const bool __feat%foo__Priv1%uses_random_access = False; -const bool __feat%foo__Priv1%is_filter = False; -const bool __feat%foo__Priv1%supports_filters = False; -const bool __feat%foo__Priv1%supports_sinks = False; -const bool __feat%foo__Priv1%synchronization = False; -const bool __feat%foo__Pub2%uses_random_access = False; -const bool __feat%foo__Pub2%is_filter = False; -const bool __feat%foo__Pub2%supports_filters = False; -const bool __feat%foo__Pub2%supports_sinks = False; -const bool __feat%foo__Pub2%synchronization = False; -const bool __feat%foo__Priv2%uses_random_access = False; -const bool __feat%foo__Priv2%is_filter = False; -const bool __feat%foo__Priv2%supports_filters = False; -const bool __feat%foo__Priv2%supports_sinks = False; -const bool __feat%foo__Priv2%synchronization = False; -const bool __feat%foo__Priv3%uses_random_access = False; -const bool __feat%foo__Priv3%is_filter = False; -const bool __feat%foo__Priv3%supports_filters = False; -const bool __feat%foo__Priv3%supports_sinks = False; -const bool __feat%foo__Priv3%synchronization = False; -const bool __feat%foo__Priv4%uses_random_access = False; -const bool __feat%foo__Priv4%is_filter = False; -const bool __feat%foo__Priv4%supports_filters = False; -const bool __feat%foo__Priv4%supports_sinks = False; -const bool __feat%foo__Priv4%synchronization = False; -const bool __feat%foo__Priv5%uses_random_access = False; -const bool __feat%foo__Priv5%is_filter = False; -const bool __feat%foo__Priv5%supports_filters = False; -const bool __feat%foo__Priv5%supports_sinks = False; -const bool __feat%foo__Priv5%synchronization = False; -const bool __feat%foo__Priv6%uses_random_access = False; -const bool __feat%foo__Priv6%is_filter = False; -const bool __feat%foo__Priv6%supports_filters = False; -const bool __feat%foo__Priv6%supports_sinks = False; -const bool __feat%foo__Priv6%synchronization = False; -const bool __feat%foo__Pub3%uses_random_access = False; -const bool __feat%foo__Pub3%is_filter = False; -const bool __feat%foo__Pub3%supports_filters = False; -const bool __feat%foo__Pub3%supports_sinks = False; -const bool __feat%foo__Pub3%synchronization = False; -const bool __feat%foo__Priv10%uses_random_access = False; -const bool __feat%foo__Priv10%is_filter = False; -const bool __feat%foo__Priv10%supports_filters = False; -const bool __feat%foo__Priv10%supports_sinks = False; -const bool __feat%foo__Priv10%synchronization = False; +const bool __feat%foo@@Priv1%uses_random_access = False; +const bool __feat%foo@@Priv1%is_filter = False; +const bool __feat%foo@@Priv1%supports_filters = False; +const bool __feat%foo@@Priv1%supports_sinks = False; +const bool __feat%foo@@Priv1%synchronization = False; +const bool __feat%foo@@Pub2%uses_random_access = False; +const bool __feat%foo@@Pub2%is_filter = False; +const bool __feat%foo@@Pub2%supports_filters = False; +const bool __feat%foo@@Pub2%supports_sinks = False; +const bool __feat%foo@@Pub2%synchronization = False; +const bool __feat%foo@@Priv2%uses_random_access = False; +const bool __feat%foo@@Priv2%is_filter = False; +const bool __feat%foo@@Priv2%supports_filters = False; +const bool __feat%foo@@Priv2%supports_sinks = False; +const bool __feat%foo@@Priv2%synchronization = False; +const bool __feat%foo@@Priv3%uses_random_access = False; +const bool __feat%foo@@Priv3%is_filter = False; +const bool __feat%foo@@Priv3%supports_filters = False; +const bool __feat%foo@@Priv3%supports_sinks = False; +const bool __feat%foo@@Priv3%synchronization = False; +const bool __feat%foo@@Priv4%uses_random_access = False; +const bool __feat%foo@@Priv4%is_filter = False; +const bool __feat%foo@@Priv4%supports_filters = False; +const bool __feat%foo@@Priv4%supports_sinks = False; +const bool __feat%foo@@Priv4%synchronization = False; +const bool __feat%foo@@Priv5%uses_random_access = False; +const bool __feat%foo@@Priv5%is_filter = False; +const bool __feat%foo@@Priv5%supports_filters = False; +const bool __feat%foo@@Priv5%supports_sinks = False; +const bool __feat%foo@@Priv5%synchronization = False; +const bool __feat%foo@@Priv6%uses_random_access = False; +const bool __feat%foo@@Priv6%is_filter = False; +const bool __feat%foo@@Priv6%supports_filters = False; +const bool __feat%foo@@Priv6%supports_sinks = False; +const bool __feat%foo@@Priv6%synchronization = False; +const bool __feat%foo@@Pub3%uses_random_access = False; +const bool __feat%foo@@Pub3%is_filter = False; +const bool __feat%foo@@Pub3%supports_filters = False; +const bool __feat%foo@@Pub3%supports_sinks = False; +const bool __feat%foo@@Pub3%synchronization = False; +const bool __feat%foo@@Priv10%uses_random_access = False; +const bool __feat%foo@@Priv10%is_filter = False; +const bool __feat%foo@@Priv10%supports_filters = False; +const bool __feat%foo@@Priv10%supports_sinks = False; +const bool __feat%foo@@Priv10%synchronization = False; global Priv11 en; global Priv12 em = Priv12::A; diff --git a/tests/Baseline/spicy.types.unit.canonical-ids-with-import/output b/tests/Baseline/spicy.types.unit.canonical-ids-with-import/output index 9584d6a88..40dcaf4a4 100644 --- a/tests/Baseline/spicy.types.unit.canonical-ids-with-import/output +++ b/tests/Baseline/spicy.types.unit.canonical-ids-with-import/output @@ -304,11 +304,11 @@ [debug/ast-declarations] - Field "__error" (a::X::__error) [debug/ast-declarations] - ImportedModule "spicy_rt" (spicy_rt) [debug/ast-declarations] - ImportedModule "hilti" (hilti) -[debug/ast-declarations] - Constant "__feat%a__X%uses_random_access" (a::__feat%a__X%uses_random_access) -[debug/ast-declarations] - Constant "__feat%a__X%is_filter" (a::__feat%a__X%is_filter) -[debug/ast-declarations] - Constant "__feat%a__X%supports_filters" (a::__feat%a__X%supports_filters) -[debug/ast-declarations] - Constant "__feat%a__X%supports_sinks" (a::__feat%a__X%supports_sinks) -[debug/ast-declarations] - Constant "__feat%a__X%synchronization" (a::__feat%a__X%synchronization) +[debug/ast-declarations] - Constant "__feat%a@@X%uses_random_access" (a::__feat%a@@X%uses_random_access) +[debug/ast-declarations] - Constant "__feat%a@@X%is_filter" (a::__feat%a@@X%is_filter) +[debug/ast-declarations] - Constant "__feat%a@@X%supports_filters" (a::__feat%a@@X%supports_filters) +[debug/ast-declarations] - Constant "__feat%a@@X%supports_sinks" (a::__feat%a@@X%supports_sinks) +[debug/ast-declarations] - Constant "__feat%a@@X%synchronization" (a::__feat%a@@X%synchronization) [debug/ast-declarations] - Function "a::X::__parse_stage1" (a::X::__parse_stage1) [debug/ast-declarations] - Parameter "__data" (a::X::__parse_stage1::__data) [debug/ast-declarations] - Parameter "__cur" (a::X::__parse_stage1::__cur) diff --git a/tests/Baseline/spicy.types.unit.canonical-ids/output b/tests/Baseline/spicy.types.unit.canonical-ids/output index b84b19bb2..d23723422 100644 --- a/tests/Baseline/spicy.types.unit.canonical-ids/output +++ b/tests/Baseline/spicy.types.unit.canonical-ids/output @@ -362,11 +362,11 @@ [debug/ast-declarations] - Field "__error" (DNS::Pointer::__error) [debug/ast-declarations] - ImportedModule "spicy_rt" (spicy_rt) [debug/ast-declarations] - ImportedModule "hilti" (hilti) -[debug/ast-declarations] - Constant "__feat%DNS__Label%uses_random_access" (DNS::__feat%DNS__Label%uses_random_access) -[debug/ast-declarations] - Constant "__feat%DNS__Label%is_filter" (DNS::__feat%DNS__Label%is_filter) -[debug/ast-declarations] - Constant "__feat%DNS__Label%supports_filters" (DNS::__feat%DNS__Label%supports_filters) -[debug/ast-declarations] - Constant "__feat%DNS__Label%supports_sinks" (DNS::__feat%DNS__Label%supports_sinks) -[debug/ast-declarations] - Constant "__feat%DNS__Label%synchronization" (DNS::__feat%DNS__Label%synchronization) +[debug/ast-declarations] - Constant "__feat%DNS@@Label%uses_random_access" (DNS::__feat%DNS@@Label%uses_random_access) +[debug/ast-declarations] - Constant "__feat%DNS@@Label%is_filter" (DNS::__feat%DNS@@Label%is_filter) +[debug/ast-declarations] - Constant "__feat%DNS@@Label%supports_filters" (DNS::__feat%DNS@@Label%supports_filters) +[debug/ast-declarations] - Constant "__feat%DNS@@Label%supports_sinks" (DNS::__feat%DNS@@Label%supports_sinks) +[debug/ast-declarations] - Constant "__feat%DNS@@Label%synchronization" (DNS::__feat%DNS@@Label%synchronization) [debug/ast-declarations] - Function "DNS::Label::__parse_stage1" (DNS::Label::__parse_stage1) [debug/ast-declarations] - Parameter "__data" (DNS::Label::__parse_stage1::__data) [debug/ast-declarations] - Parameter "__cur" (DNS::Label::__parse_stage1::__cur) @@ -655,11 +655,11 @@ [debug/ast-declarations] - Parameter "__lahe" (DNS::Label::__parse_DNS_Label_stage2::__lahe) [debug/ast-declarations] - Parameter "__error" (DNS::Label::__parse_DNS_Label_stage2::__error) [debug/ast-declarations] - Field "__error" (DNS::Label::__error) -[debug/ast-declarations] - Constant "__feat%DNS__Pointer%uses_random_access" (DNS::__feat%DNS__Pointer%uses_random_access) -[debug/ast-declarations] - Constant "__feat%DNS__Pointer%is_filter" (DNS::__feat%DNS__Pointer%is_filter) -[debug/ast-declarations] - Constant "__feat%DNS__Pointer%supports_filters" (DNS::__feat%DNS__Pointer%supports_filters) -[debug/ast-declarations] - Constant "__feat%DNS__Pointer%supports_sinks" (DNS::__feat%DNS__Pointer%supports_sinks) -[debug/ast-declarations] - Constant "__feat%DNS__Pointer%synchronization" (DNS::__feat%DNS__Pointer%synchronization) +[debug/ast-declarations] - Constant "__feat%DNS@@Pointer%uses_random_access" (DNS::__feat%DNS@@Pointer%uses_random_access) +[debug/ast-declarations] - Constant "__feat%DNS@@Pointer%is_filter" (DNS::__feat%DNS@@Pointer%is_filter) +[debug/ast-declarations] - Constant "__feat%DNS@@Pointer%supports_filters" (DNS::__feat%DNS@@Pointer%supports_filters) +[debug/ast-declarations] - Constant "__feat%DNS@@Pointer%supports_sinks" (DNS::__feat%DNS@@Pointer%supports_sinks) +[debug/ast-declarations] - Constant "__feat%DNS@@Pointer%synchronization" (DNS::__feat%DNS@@Pointer%synchronization) [debug/ast-declarations] - Function "DNS::Pointer::__parse_stage1" (DNS::Pointer::__parse_stage1) [debug/ast-declarations] - Parameter "__data" (DNS::Pointer::__parse_stage1::__data) [debug/ast-declarations] - Parameter "__cur" (DNS::Pointer::__parse_stage1::__cur) diff --git a/tests/spicy/optimization/underscores-in-id.spicy b/tests/spicy/optimization/underscores-in-id.spicy new file mode 100644 index 000000000..2eab4da84 --- /dev/null +++ b/tests/spicy/optimization/underscores-in-id.spicy @@ -0,0 +1,10 @@ +# @TEST-DOC: Validate that the optimizer does not get confused by `__` in IDs. This is a regression test for #1503. + +# Just check that this outputs something without failure. +# @TEST-EXEC: echo | spicy-driver -d %INPUT + +module foo; + +public type X__x = unit { + on %init { print self.offset(); } +};