diff --git a/src/shared/cplusplus/CheckDeclaration.cpp b/src/shared/cplusplus/CheckDeclaration.cpp
index 2eb017b2a1c785eecc159bcd9a7720d0e4556a8b..b58ad1a08000275a20ce91de03d81eb1b6659104 100644
--- a/src/shared/cplusplus/CheckDeclaration.cpp
+++ b/src/shared/cplusplus/CheckDeclaration.cpp
@@ -818,3 +818,17 @@ bool CheckDeclaration::visit(QtFlagsDeclarationAST *ast)
         semantic()->check(iter->value, _scope);
     return false;
 }
+
+bool CheckDeclaration::visit(QtPropertyDeclarationAST *ast)
+{
+    if (ast->type_id)
+        semantic()->check(ast->type_id, _scope);
+    if (ast->property_name)
+        semantic()->check(ast->property_name, _scope);
+    for (QtPropertyDeclarationItemListAST *iter = ast->property_declaration_items;
+         iter; iter = iter->next) {
+        if (iter->value)
+            semantic()->check(iter->value->expression, _scope);
+    }
+    return false;
+}
diff --git a/src/shared/cplusplus/CheckDeclaration.h b/src/shared/cplusplus/CheckDeclaration.h
index 269957257bbfd47c6e0f6cb919a67853ebafda20..6d06d42b9b051fcd8e875f0bd81a2dc115cabdbb 100644
--- a/src/shared/cplusplus/CheckDeclaration.h
+++ b/src/shared/cplusplus/CheckDeclaration.h
@@ -77,6 +77,7 @@ protected:
     virtual bool visit(SimpleDeclarationAST *ast);
     virtual bool visit(EmptyDeclarationAST *ast);
     virtual bool visit(AccessDeclarationAST *ast);
+    virtual bool visit(QtPropertyDeclarationAST *ast);
     virtual bool visit(QtEnumDeclarationAST *ast);
     virtual bool visit(QtFlagsDeclarationAST *ast);
     virtual bool visit(AsmDefinitionAST *ast);