Really check everything in check_all
diff --git a/syntax/check.rs b/syntax/check.rs
index 33ca5bb..a99e982 100644
--- a/syntax/check.rs
+++ b/syntax/check.rs
@@ -30,10 +30,7 @@
 }
 
 fn do_typecheck(cx: &mut Check) {
-    for segment in cx.namespace {
-        ident::check(cx, segment);
-    }
-    ident::check_all(cx, cx.apis);
+    ident::check_all(cx, cx.namespace, cx.apis);
 
     for ty in cx.types {
         match ty {
diff --git a/syntax/ident.rs b/syntax/ident.rs
index 0694e32..cec424c 100644
--- a/syntax/ident.rs
+++ b/syntax/ident.rs
@@ -1,8 +1,9 @@
 use crate::syntax::check::Check;
+use crate::syntax::namespace::Namespace;
 use crate::syntax::{error, Api};
 use proc_macro2::Ident;
 
-pub(crate) fn check(cx: &mut Check, ident: &Ident) {
+fn check(cx: &mut Check, ident: &Ident) {
     let s = ident.to_string();
     if s.starts_with("cxxbridge") {
         cx.error(ident, error::CXXBRIDGE_RESERVED.msg);
@@ -12,7 +13,11 @@
     }
 }
 
-pub(crate) fn check_all(cx: &mut Check, apis: &[Api]) {
+pub(crate) fn check_all(cx: &mut Check, namespace: &Namespace, apis: &[Api]) {
+    for segment in namespace {
+        check(cx, segment);
+    }
+
     for api in apis {
         match api {
             Api::Include(_) => {}