static constexpr Precedence GetPrecedence(const Expr<SomeKind<CAT>> &expr) {
return std::visit([](const auto &x) { return GetPrecedence(x); }, expr.u);
}
-static constexpr Precedence GetPrecedence(const Expr<SomeDerived> &expr) {
- return std::visit(
- [](const auto &x) { return ToPrecedence<std::decay_t<decltype(x)>>; },
- expr.u);
-}
-static constexpr Precedence GetPrecedence(const BOZLiteralConstant &) {
- return Precedence::Primary;
-}
-static constexpr Precedence GetPrecedence(const NullPointer &) {
- return Precedence::Primary;
-}
-static constexpr Precedence GetPrecedence(const Expr<SomeType> &expr) {
- return std::visit([](const auto &x) { return GetPrecedence(x); }, expr.u);
-}
template<typename T> static bool IsNegatedScalarConstant(const Expr<T> &expr) {
static constexpr TypeCategory cat{T::category};
DoSymbol(*symbol);
}
}
-
};
bool ModFileWriter::WriteAll() {
}
for (const auto &pair : scope.commonBlocks()) {
const Symbol *symbol{pair.second};
- SourceName name{pair.first};
if (symbols.insert(symbol).second) {
common.push_back(symbol);
}
}
const Scope *Scope::FindScope(parser::CharBlock source) const {
- return const_cast<const Scope *>(
- const_cast<Scope *>(this)->FindScope(source));
+ return const_cast<Scope *>(this)->FindScope(source);
}
Scope *Scope::FindScope(parser::CharBlock source) {
}
const Scope &SemanticsContext::FindScope(parser::CharBlock source) const {
- return const_cast<const Scope &>(
- const_cast<SemanticsContext *>(this)->FindScope(source));
+ return const_cast<SemanticsContext *>(this)->FindScope(source);
}
Scope &SemanticsContext::FindScope(parser::CharBlock source) {