diff --git a/tools/lint/cmd_add.c b/tools/lint/cmd_add.c
index 3904c7a..744ea80 100644
--- a/tools/lint/cmd_add.c
+++ b/tools/lint/cmd_add.c
@@ -94,12 +94,7 @@
             return 1;
 
         case 'i': /* --make-implemented */
-            if (yo->ctx_options & LY_CTX_REF_IMPLEMENTED) {
-                yo->ctx_options &= ~LY_CTX_REF_IMPLEMENTED;
-                yo->ctx_options |= LY_CTX_ALL_IMPLEMENTED;
-            } else {
-                yo->ctx_options |= LY_CTX_REF_IMPLEMENTED;
-            }
+            yo_opt_update_make_implemented(yo);
             break;
 
         case 'X': /* --extended-leafref */
diff --git a/tools/lint/cmd_load.c b/tools/lint/cmd_load.c
index bcd23d4..fe56d84 100644
--- a/tools/lint/cmd_load.c
+++ b/tools/lint/cmd_load.c
@@ -77,12 +77,7 @@
             return 1;
 
         case 'i': /* --make-implemented */
-            if (yo->ctx_options & LY_CTX_REF_IMPLEMENTED) {
-                yo->ctx_options &= ~LY_CTX_REF_IMPLEMENTED;
-                yo->ctx_options |= LY_CTX_ALL_IMPLEMENTED;
-            } else {
-                yo->ctx_options |= LY_CTX_REF_IMPLEMENTED;
-            }
+            yo_opt_update_make_implemented(yo);
             break;
 
         case 'X': /* --extended-leafref */
diff --git a/tools/lint/main_ni.c b/tools/lint/main_ni.c
index 3057366..40e4df8 100644
--- a/tools/lint/main_ni.c
+++ b/tools/lint/main_ni.c
@@ -568,12 +568,7 @@
             break;
 
         case 'i': /* --make-implemented */
-            if (yo->ctx_options & LY_CTX_REF_IMPLEMENTED) {
-                yo->ctx_options &= ~LY_CTX_REF_IMPLEMENTED;
-                yo->ctx_options |= LY_CTX_ALL_IMPLEMENTED;
-            } else {
-                yo->ctx_options |= LY_CTX_REF_IMPLEMENTED;
-            }
+            yo_opt_update_make_implemented(yo);
             break;
 
         case 'P': /* --schema-node */
diff --git a/tools/lint/yl_opt.c b/tools/lint/yl_opt.c
index 71492b2..1d21eb8 100644
--- a/tools/lint/yl_opt.c
+++ b/tools/lint/yl_opt.c
@@ -235,6 +235,17 @@
 }
 
 void
+yo_opt_update_make_implemented(struct yl_opt *yo)
+{
+    if (yo->ctx_options & LY_CTX_REF_IMPLEMENTED) {
+        yo->ctx_options &= ~LY_CTX_REF_IMPLEMENTED;
+        yo->ctx_options |= LY_CTX_ALL_IMPLEMENTED;
+    } else {
+        yo->ctx_options |= LY_CTX_REF_IMPLEMENTED;
+    }
+}
+
+void
 free_cmdline(char *argv[])
 {
     if (argv) {
diff --git a/tools/lint/yl_opt.h b/tools/lint/yl_opt.h
index a1569dd..e0ff7bd 100644
--- a/tools/lint/yl_opt.h
+++ b/tools/lint/yl_opt.h
@@ -206,6 +206,13 @@
 int yo_opt_update_data_in_format(const char *arg, struct yl_opt *yo);
 
 /**
+ * @brief Update @p yo according to the --make-implemented parameter.
+ *
+ * @param[in,out] yo yanglint options used to update.
+ */
+void yo_opt_update_make_implemented(struct yl_opt *yo);
+
+/**
  * @brief Helper function to prepare argc, argv pair from a command line string.
  *
  * @param[in] cmdline Complete command line string.
