diff --git a/libsolidity/CMakeLists.txt b/libsolidity/CMakeLists.txt
index 24b7d2d85..246a141d4 100644
--- a/libsolidity/CMakeLists.txt
+++ b/libsolidity/CMakeLists.txt
@@ -44,6 +44,8 @@ set(sources
analysis/SyntaxChecker.h
analysis/TypeChecker.cpp
analysis/TypeChecker.h
+ analysis/VariableCanBeImmutable.cpp
+ analysis/VariableCanBeImmutable.h
analysis/ViewPureChecker.cpp
analysis/ViewPureChecker.h
ast/AST.cpp
diff --git a/libsolidity/analysis/VariableCanBeImmutable.cpp b/libsolidity/analysis/VariableCanBeImmutable.cpp
new file mode 100644
index 000000000..f8d7c905e
--- /dev/null
+++ b/libsolidity/analysis/VariableCanBeImmutable.cpp
@@ -0,0 +1,125 @@
+/*
+ This file is part of solidity.
+
+ solidity is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ solidity is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with solidity. If not, see .
+*/
+// SPDX-License-Identifier: GPL-3.0
+
+#include
+#include
+#include
+#include
+
+#include
+
+#include
+#include
+#include
+
+#include