diff --git a/src/mbgl/style/expression/collator_expression.cpp b/src/mbgl/style/expression/collator_expression.cpp index 0f2340ce7..577955577 100644 --- a/src/mbgl/style/expression/collator_expression.cpp +++ b/src/mbgl/style/expression/collator_expression.cpp @@ -13,7 +13,9 @@ CollatorExpression::CollatorExpression(std::unique_ptr caseSensitive std::optional> locale_) : Expression(Kind::CollatorExpression, type::Collator, - depsOf(caseSensitive_) | depsOf(diacriticSensitive_) | depsOf(locale_)), + depsOf(caseSensitive_) | depsOf(diacriticSensitive_) | depsOf(locale_) | + // Collations are treated as feature-dependent. See `style::expression::isFeatureConstant` + Dependency::Feature), caseSensitive(std::move(caseSensitive_)), diacriticSensitive(std::move(diacriticSensitive_)), locale(std::move(locale_)) {} diff --git a/test/style/expression/dependency.test.cpp b/test/style/expression/dependency.test.cpp index b6044cdd7..4671ab53e 100644 --- a/test/style/expression/dependency.test.cpp +++ b/test/style/expression/dependency.test.cpp @@ -1,3 +1,4 @@ +#include #include #include #include @@ -77,3 +78,8 @@ TEST(ExpressionDependencies, CustomLayer) { auto impl = makeMutable("", nullptr); EXPECT_EQ(Dependency::None, CustomLayerProperties{std::move(impl)}.getDependencies()); } + +TEST(ExpressionDependencies, Collation) { + auto collator = CollatorExpression(gt(literal(1.), zoom()), literal(true), literal("en-us")); + EXPECT_EQ(Dependency::Feature | Dependency::Zoom, collator.dependencies); +}