diff --git a/src/tint/resolver/resolver.h b/src/tint/resolver/resolver.h
index c162142..aab772e 100644
--- a/src/tint/resolver/resolver.h
+++ b/src/tint/resolver/resolver.h
@@ -210,6 +210,8 @@
     /// nodes are guaranteed to have been already resolved and any constant values calculated.
     ////////////////////////////////////////////////////////////////////////////////////////////////
     sem::Constant EvaluateConstantValue(const ast::Expression* expr, const sem::Type* type);
+    sem::Constant EvaluateConstantValue(const ast::IdentifierExpression* ident,
+                                        const sem::Type* type);
     sem::Constant EvaluateConstantValue(const ast::LiteralExpression* literal,
                                         const sem::Type* type);
     sem::Constant EvaluateConstantValue(const ast::CallExpression* call, const sem::Type* type);
diff --git a/src/tint/resolver/resolver_constants.cc b/src/tint/resolver/resolver_constants.cc
index 3cb8ddf4..74e4327 100644
--- a/src/tint/resolver/resolver_constants.cc
+++ b/src/tint/resolver/resolver_constants.cc
@@ -154,11 +154,20 @@
 sem::Constant Resolver::EvaluateConstantValue(const ast::Expression* expr, const sem::Type* type) {
     return Switch(
         expr,  //
+        [&](const ast::IdentifierExpression* e) { return EvaluateConstantValue(e, type); },
         [&](const ast::LiteralExpression* e) { return EvaluateConstantValue(e, type); },
         [&](const ast::CallExpression* e) { return EvaluateConstantValue(e, type); },
         [&](const ast::IndexAccessorExpression* e) { return EvaluateConstantValue(e, type); });
 }
 
+sem::Constant Resolver::EvaluateConstantValue(const ast::IdentifierExpression* ident,
+                                              const sem::Type*) {
+    if (auto* sem = builder_->Sem().Get(ident)) {
+        return sem->ConstantValue();
+    }
+    return {};
+}
+
 sem::Constant Resolver::EvaluateConstantValue(const ast::LiteralExpression* literal,
                                               const sem::Type* type) {
     return Switch(
diff --git a/src/tint/resolver/variable_test.cc b/src/tint/resolver/variable_test.cc
index ba62906..4e56eaf 100644
--- a/src/tint/resolver/variable_test.cc
+++ b/src/tint/resolver/variable_test.cc
@@ -1052,8 +1052,7 @@
     EXPECT_EQ(Sem().Get(c_maf32)->ConstantValue().ElementCount(), 9u);
 }
 
-// Enable when constants propagate between 'const' variables
-TEST_F(ResolverVariableTest, DISABLED_LocalConst_PropagateConstValue) {
+TEST_F(ResolverVariableTest, LocalConst_PropagateConstValue) {
     auto* a = Const("a", nullptr, Expr(42_i));
     auto* b = Const("b", nullptr, Expr("a"));
     auto* c = Const("c", nullptr, Expr("b"));
@@ -1256,8 +1255,7 @@
     EXPECT_EQ(Sem().Get(c_maf32)->ConstantValue().ElementCount(), 9u);
 }
 
-// Enable when constants propagate between 'const' variables
-TEST_F(ResolverVariableTest, DISABLED_GlobalConst_PropagateConstValue) {
+TEST_F(ResolverVariableTest, GlobalConst_PropagateConstValue) {
     GlobalConst("b", nullptr, Expr("a"));
     auto* c = GlobalConst("c", nullptr, Expr("b"));
     GlobalConst("a", nullptr, Expr(42_i));
