History

Convert static members to constexpr getters. This is hopefully going to avoid the built issues on Mac.

arr committed 9 years ago

Commit b0ff2261 parent c55b47f2 files · +44 −44Browse files

Showing the changes to src/asm (1 of 2 files). Show all

Unified · Split

src/asm/type_signature.cpp+3−18
@@ -34,8 +34,6 @@ namespace · 33 unmodified lines
34 }34 }
35}35}
36 36
37const char sig_stream_t::delim = ',';
38
39uint32_t sig_stream_t::compute_signature_hash(const char *sig)37uint32_t sig_stream_t::compute_signature_hash(const char *sig)
40{38{
41 std::string sig_local{ sig };39 std::string sig_local{ sig };
@@ -142,12 +140,6 @@ sig_stream_t &disvm::assembly::sigkind::operator<<(sig_stream_t &os, const Tm &m · 100 unmodified lines
142 return os << m._s;140 return os << m._s;
143}141}
144 142
145template<> const char Ttuple::begin = '(';
146template<> const char Ttuple::end = ')';
147
148template<> const char Tmodule::begin = '{';
149template<> const char Tmodule::end = '}';
150
151sig_stream_t &disvm::assembly::sigkind::operator<<(sig_stream_t &os, const Ttuple &t)143sig_stream_t &disvm::assembly::sigkind::operator<<(sig_stream_t &os, const Ttuple &t)
152{144{
153 return os << t._s;145 return os << t._s;
@@ -158,25 +150,21 @@ sig_stream_t &disvm::assembly::sigkind::operator<<(sig_stream_t &os, const Tmodu · 4 unmodified lines
158 return os << m._s;150 return os << m._s;
159}151}
160 152
161const char *Tadt_pick_tag::tag_delim = "=>";
162const char Tadt_pick_tag::begin = '(';
163const char Tadt_pick_tag::end = ')';
164
165Tadt_pick_tag Tadt_pick_tag::create(const char *pick_tag, uint32_t adt_ref, std::initializer_list<const Tm> tms)153Tadt_pick_tag Tadt_pick_tag::create(const char *pick_tag, uint32_t adt_ref, std::initializer_list<const Tm> tms)
166{154{
167 sig_stream_t ss;155 sig_stream_t ss;
168 ss << pick_tag << Tadt_pick_tag::tag_delim << Tbasic_type::id << Tadt_pick_tag::begin;156 ss << pick_tag << Tadt_pick_tag::tag_delim() << Tbasic_type::id << Tadt_pick_tag::begin();
169 157
170 auto tm = tms.begin();158 auto tm = tms.begin();
171 for (auto c = 0; tm != tms.end(); tm++, c++)159 for (auto c = 0; tm != tms.end(); tm++, c++)
172 {160 {
173 if (c > 0)161 if (c > 0)
174 ss << sig_stream_t::delim;162 ss << sig_stream_t::delim();
175 163
176 ss << *tm;164 ss << *tm;
177 }165 }
178 166
179 ss << Tadt_pick_tag::end << Tref::id << adt_ref;167 ss << Tadt_pick_tag::end() << Tref::id << adt_ref;
180 168
181 return Tadt_pick_tag{ ss };169 return Tadt_pick_tag{ ss };
182}170}
@@ -186,9 +174,6 @@ sig_stream_t &disvm::assembly::sigkind::operator<<(sig_stream_t &os, const Tadt_ · 3 unmodified lines
186 return os << t._s;174 return os << t._s;
187}175}
188 176
189template<> const char Tnested_aggregate_type<type_id_t::adt>::begin = '(';
190template<> const char Tnested_aggregate_type<type_id_t::adt>::end = ')';
191
192sig_stream_t &disvm::assembly::sigkind::operator<<(sig_stream_t &os, const Tnested_aggregate_type<type_id_t::adt> &a)177sig_stream_t &disvm::assembly::sigkind::operator<<(sig_stream_t &os, const Tnested_aggregate_type<type_id_t::adt> &a)
193{178{
194 return os << a._s;179 return os << a._s;