[ffigen] Added subkey symbol-address to expose native pointers and typedefs. (#175)

diff --git a/pkgs/ffigen/CHANGELOG.md b/pkgs/ffigen/CHANGELOG.md
index c1b4129..cd555c8 100644
--- a/pkgs/ffigen/CHANGELOG.md
+++ b/pkgs/ffigen/CHANGELOG.md
@@ -1,3 +1,6 @@
+# 2.2.0
+- Added subkey `symbol-address` to expose native symbol pointers for `functions` and `globals`.
+
 # 2.1.0
 - Added a new named constructor `NativeLibrary.fromLookup()` to support dynamic linking.
 - Updated dart SDK constraints to latest stable version `2.12.0`.
diff --git a/pkgs/ffigen/README.md b/pkgs/ffigen/README.md
index d531b4d..02c9083 100644
--- a/pkgs/ffigen/README.md
+++ b/pkgs/ffigen/README.md
@@ -162,6 +162,10 @@
     'clang_dispose': 'dispose'
     # Removes '_' from beginning of a name.
     '_(.*)': '$1'
+  symbol-address:
+    # Used to expose symbol and typedef.
+    include:
+      - myFunc
 enums:
   member-rename:
     '(.*)': # Matches any enum.
@@ -475,3 +479,18 @@
 
 This happens when an excluded struct is a dependency to some included declaration.
 (A dependency means a struct is being passed/returned by a function or is member of another struct in some way)
+
+### How to expose the native pointers and typedefs?
+
+By default all native pointers and typedefs are hidden, but you can use the
+`symbol-address` subkey for functions/globals and make them public by matching with its name. The pointers are then accesible via `nativeLibrary.addresses` and the native
+typedef are prefixed with `Native_`.
+
+Example -
+```yaml
+functions:
+  symbol-address:
+    include:
+      - 'myFunc'
+      - '.*' # Do this to expose all pointers.
+```
diff --git a/pkgs/ffigen/example/c_json/cjson_generated_bindings.dart b/pkgs/ffigen/example/c_json/cjson_generated_bindings.dart
index 19222cc..2b9d0a8 100644
--- a/pkgs/ffigen/example/c_json/cjson_generated_bindings.dart
+++ b/pkgs/ffigen/example/c_json/cjson_generated_bindings.dart
@@ -39,95 +39,102 @@
       : _lookup = lookup;
 
   ffi.Pointer<ffi.Int8> cJSON_Version() {
-    return (_cJSON_Version ??=
-        _lookup<ffi.NativeFunction<_c_cJSON_Version>>('cJSON_Version')
-            .asFunction<_dart_cJSON_Version>())();
+    return _cJSON_Version();
   }
 
-  _dart_cJSON_Version? _cJSON_Version;
+  late final _cJSON_Version_ptr =
+      _lookup<ffi.NativeFunction<_c_cJSON_Version>>('cJSON_Version');
+  late final _dart_cJSON_Version _cJSON_Version =
+      _cJSON_Version_ptr.asFunction<_dart_cJSON_Version>();
 
   void cJSON_InitHooks(
     ffi.Pointer<cJSON_Hooks> hooks,
   ) {
-    return (_cJSON_InitHooks ??=
-        _lookup<ffi.NativeFunction<_c_cJSON_InitHooks>>('cJSON_InitHooks')
-            .asFunction<_dart_cJSON_InitHooks>())(
+    return _cJSON_InitHooks(
       hooks,
     );
   }
 
-  _dart_cJSON_InitHooks? _cJSON_InitHooks;
+  late final _cJSON_InitHooks_ptr =
+      _lookup<ffi.NativeFunction<_c_cJSON_InitHooks>>('cJSON_InitHooks');
+  late final _dart_cJSON_InitHooks _cJSON_InitHooks =
+      _cJSON_InitHooks_ptr.asFunction<_dart_cJSON_InitHooks>();
 
   ffi.Pointer<cJSON> cJSON_Parse(
     ffi.Pointer<ffi.Int8> value,
   ) {
-    return (_cJSON_Parse ??=
-        _lookup<ffi.NativeFunction<_c_cJSON_Parse>>('cJSON_Parse')
-            .asFunction<_dart_cJSON_Parse>())(
+    return _cJSON_Parse(
       value,
     );
   }
 
-  _dart_cJSON_Parse? _cJSON_Parse;
+  late final _cJSON_Parse_ptr =
+      _lookup<ffi.NativeFunction<_c_cJSON_Parse>>('cJSON_Parse');
+  late final _dart_cJSON_Parse _cJSON_Parse =
+      _cJSON_Parse_ptr.asFunction<_dart_cJSON_Parse>();
 
   ffi.Pointer<cJSON> cJSON_ParseWithOpts(
     ffi.Pointer<ffi.Int8> value,
     ffi.Pointer<ffi.Pointer<ffi.Int8>> return_parse_end,
     int require_null_terminated,
   ) {
-    return (_cJSON_ParseWithOpts ??=
-        _lookup<ffi.NativeFunction<_c_cJSON_ParseWithOpts>>(
-                'cJSON_ParseWithOpts')
-            .asFunction<_dart_cJSON_ParseWithOpts>())(
+    return _cJSON_ParseWithOpts(
       value,
       return_parse_end,
       require_null_terminated,
     );
   }
 
-  _dart_cJSON_ParseWithOpts? _cJSON_ParseWithOpts;
+  late final _cJSON_ParseWithOpts_ptr =
+      _lookup<ffi.NativeFunction<_c_cJSON_ParseWithOpts>>(
+          'cJSON_ParseWithOpts');
+  late final _dart_cJSON_ParseWithOpts _cJSON_ParseWithOpts =
+      _cJSON_ParseWithOpts_ptr.asFunction<_dart_cJSON_ParseWithOpts>();
 
   ffi.Pointer<ffi.Int8> cJSON_Print(
     ffi.Pointer<cJSON> item,
   ) {
-    return (_cJSON_Print ??=
-        _lookup<ffi.NativeFunction<_c_cJSON_Print>>('cJSON_Print')
-            .asFunction<_dart_cJSON_Print>())(
+    return _cJSON_Print(
       item,
     );
   }
 
-  _dart_cJSON_Print? _cJSON_Print;
+  late final _cJSON_Print_ptr =
+      _lookup<ffi.NativeFunction<_c_cJSON_Print>>('cJSON_Print');
+  late final _dart_cJSON_Print _cJSON_Print =
+      _cJSON_Print_ptr.asFunction<_dart_cJSON_Print>();
 
   ffi.Pointer<ffi.Int8> cJSON_PrintUnformatted(
     ffi.Pointer<cJSON> item,
   ) {
-    return (_cJSON_PrintUnformatted ??=
-        _lookup<ffi.NativeFunction<_c_cJSON_PrintUnformatted>>(
-                'cJSON_PrintUnformatted')
-            .asFunction<_dart_cJSON_PrintUnformatted>())(
+    return _cJSON_PrintUnformatted(
       item,
     );
   }
 
-  _dart_cJSON_PrintUnformatted? _cJSON_PrintUnformatted;
+  late final _cJSON_PrintUnformatted_ptr =
+      _lookup<ffi.NativeFunction<_c_cJSON_PrintUnformatted>>(
+          'cJSON_PrintUnformatted');
+  late final _dart_cJSON_PrintUnformatted _cJSON_PrintUnformatted =
+      _cJSON_PrintUnformatted_ptr.asFunction<_dart_cJSON_PrintUnformatted>();
 
   ffi.Pointer<ffi.Int8> cJSON_PrintBuffered(
     ffi.Pointer<cJSON> item,
     int prebuffer,
     int fmt,
   ) {
-    return (_cJSON_PrintBuffered ??=
-        _lookup<ffi.NativeFunction<_c_cJSON_PrintBuffered>>(
-                'cJSON_PrintBuffered')
-            .asFunction<_dart_cJSON_PrintBuffered>())(
+    return _cJSON_PrintBuffered(
       item,
       prebuffer,
       fmt,
     );
   }
 
-  _dart_cJSON_PrintBuffered? _cJSON_PrintBuffered;
+  late final _cJSON_PrintBuffered_ptr =
+      _lookup<ffi.NativeFunction<_c_cJSON_PrintBuffered>>(
+          'cJSON_PrintBuffered');
+  late final _dart_cJSON_PrintBuffered _cJSON_PrintBuffered =
+      _cJSON_PrintBuffered_ptr.asFunction<_dart_cJSON_PrintBuffered>();
 
   int cJSON_PrintPreallocated(
     ffi.Pointer<cJSON> item,
@@ -135,10 +142,7 @@
     int length,
     int format,
   ) {
-    return (_cJSON_PrintPreallocated ??=
-        _lookup<ffi.NativeFunction<_c_cJSON_PrintPreallocated>>(
-                'cJSON_PrintPreallocated')
-            .asFunction<_dart_cJSON_PrintPreallocated>())(
+    return _cJSON_PrintPreallocated(
       item,
       buffer,
       length,
@@ -146,916 +150,1003 @@
     );
   }
 
-  _dart_cJSON_PrintPreallocated? _cJSON_PrintPreallocated;
+  late final _cJSON_PrintPreallocated_ptr =
+      _lookup<ffi.NativeFunction<_c_cJSON_PrintPreallocated>>(
+          'cJSON_PrintPreallocated');
+  late final _dart_cJSON_PrintPreallocated _cJSON_PrintPreallocated =
+      _cJSON_PrintPreallocated_ptr.asFunction<_dart_cJSON_PrintPreallocated>();
 
   void cJSON_Delete(
     ffi.Pointer<cJSON> item,
   ) {
-    return (_cJSON_Delete ??=
-        _lookup<ffi.NativeFunction<_c_cJSON_Delete>>('cJSON_Delete')
-            .asFunction<_dart_cJSON_Delete>())(
+    return _cJSON_Delete(
       item,
     );
   }
 
-  _dart_cJSON_Delete? _cJSON_Delete;
+  late final _cJSON_Delete_ptr =
+      _lookup<ffi.NativeFunction<_c_cJSON_Delete>>('cJSON_Delete');
+  late final _dart_cJSON_Delete _cJSON_Delete =
+      _cJSON_Delete_ptr.asFunction<_dart_cJSON_Delete>();
 
   int cJSON_GetArraySize(
     ffi.Pointer<cJSON> array,
   ) {
-    return (_cJSON_GetArraySize ??=
-        _lookup<ffi.NativeFunction<_c_cJSON_GetArraySize>>('cJSON_GetArraySize')
-            .asFunction<_dart_cJSON_GetArraySize>())(
+    return _cJSON_GetArraySize(
       array,
     );
   }
 
-  _dart_cJSON_GetArraySize? _cJSON_GetArraySize;
+  late final _cJSON_GetArraySize_ptr =
+      _lookup<ffi.NativeFunction<_c_cJSON_GetArraySize>>('cJSON_GetArraySize');
+  late final _dart_cJSON_GetArraySize _cJSON_GetArraySize =
+      _cJSON_GetArraySize_ptr.asFunction<_dart_cJSON_GetArraySize>();
 
   ffi.Pointer<cJSON> cJSON_GetArrayItem(
     ffi.Pointer<cJSON> array,
     int index,
   ) {
-    return (_cJSON_GetArrayItem ??=
-        _lookup<ffi.NativeFunction<_c_cJSON_GetArrayItem>>('cJSON_GetArrayItem')
-            .asFunction<_dart_cJSON_GetArrayItem>())(
+    return _cJSON_GetArrayItem(
       array,
       index,
     );
   }
 
-  _dart_cJSON_GetArrayItem? _cJSON_GetArrayItem;
+  late final _cJSON_GetArrayItem_ptr =
+      _lookup<ffi.NativeFunction<_c_cJSON_GetArrayItem>>('cJSON_GetArrayItem');
+  late final _dart_cJSON_GetArrayItem _cJSON_GetArrayItem =
+      _cJSON_GetArrayItem_ptr.asFunction<_dart_cJSON_GetArrayItem>();
 
   ffi.Pointer<cJSON> cJSON_GetObjectItem(
     ffi.Pointer<cJSON> object,
     ffi.Pointer<ffi.Int8> string,
   ) {
-    return (_cJSON_GetObjectItem ??=
-        _lookup<ffi.NativeFunction<_c_cJSON_GetObjectItem>>(
-                'cJSON_GetObjectItem')
-            .asFunction<_dart_cJSON_GetObjectItem>())(
+    return _cJSON_GetObjectItem(
       object,
       string,
     );
   }
 
-  _dart_cJSON_GetObjectItem? _cJSON_GetObjectItem;
+  late final _cJSON_GetObjectItem_ptr =
+      _lookup<ffi.NativeFunction<_c_cJSON_GetObjectItem>>(
+          'cJSON_GetObjectItem');
+  late final _dart_cJSON_GetObjectItem _cJSON_GetObjectItem =
+      _cJSON_GetObjectItem_ptr.asFunction<_dart_cJSON_GetObjectItem>();
 
   ffi.Pointer<cJSON> cJSON_GetObjectItemCaseSensitive(
     ffi.Pointer<cJSON> object,
     ffi.Pointer<ffi.Int8> string,
   ) {
-    return (_cJSON_GetObjectItemCaseSensitive ??=
-        _lookup<ffi.NativeFunction<_c_cJSON_GetObjectItemCaseSensitive>>(
-                'cJSON_GetObjectItemCaseSensitive')
-            .asFunction<_dart_cJSON_GetObjectItemCaseSensitive>())(
+    return _cJSON_GetObjectItemCaseSensitive(
       object,
       string,
     );
   }
 
-  _dart_cJSON_GetObjectItemCaseSensitive? _cJSON_GetObjectItemCaseSensitive;
+  late final _cJSON_GetObjectItemCaseSensitive_ptr =
+      _lookup<ffi.NativeFunction<_c_cJSON_GetObjectItemCaseSensitive>>(
+          'cJSON_GetObjectItemCaseSensitive');
+  late final _dart_cJSON_GetObjectItemCaseSensitive
+      _cJSON_GetObjectItemCaseSensitive = _cJSON_GetObjectItemCaseSensitive_ptr
+          .asFunction<_dart_cJSON_GetObjectItemCaseSensitive>();
 
   int cJSON_HasObjectItem(
     ffi.Pointer<cJSON> object,
     ffi.Pointer<ffi.Int8> string,
   ) {
-    return (_cJSON_HasObjectItem ??=
-        _lookup<ffi.NativeFunction<_c_cJSON_HasObjectItem>>(
-                'cJSON_HasObjectItem')
-            .asFunction<_dart_cJSON_HasObjectItem>())(
+    return _cJSON_HasObjectItem(
       object,
       string,
     );
   }
 
-  _dart_cJSON_HasObjectItem? _cJSON_HasObjectItem;
+  late final _cJSON_HasObjectItem_ptr =
+      _lookup<ffi.NativeFunction<_c_cJSON_HasObjectItem>>(
+          'cJSON_HasObjectItem');
+  late final _dart_cJSON_HasObjectItem _cJSON_HasObjectItem =
+      _cJSON_HasObjectItem_ptr.asFunction<_dart_cJSON_HasObjectItem>();
 
   ffi.Pointer<ffi.Int8> cJSON_GetErrorPtr() {
-    return (_cJSON_GetErrorPtr ??=
-        _lookup<ffi.NativeFunction<_c_cJSON_GetErrorPtr>>('cJSON_GetErrorPtr')
-            .asFunction<_dart_cJSON_GetErrorPtr>())();
+    return _cJSON_GetErrorPtr();
   }
 
-  _dart_cJSON_GetErrorPtr? _cJSON_GetErrorPtr;
+  late final _cJSON_GetErrorPtr_ptr =
+      _lookup<ffi.NativeFunction<_c_cJSON_GetErrorPtr>>('cJSON_GetErrorPtr');
+  late final _dart_cJSON_GetErrorPtr _cJSON_GetErrorPtr =
+      _cJSON_GetErrorPtr_ptr.asFunction<_dart_cJSON_GetErrorPtr>();
 
   ffi.Pointer<ffi.Int8> cJSON_GetStringValue(
     ffi.Pointer<cJSON> item,
   ) {
-    return (_cJSON_GetStringValue ??=
-        _lookup<ffi.NativeFunction<_c_cJSON_GetStringValue>>(
-                'cJSON_GetStringValue')
-            .asFunction<_dart_cJSON_GetStringValue>())(
+    return _cJSON_GetStringValue(
       item,
     );
   }
 
-  _dart_cJSON_GetStringValue? _cJSON_GetStringValue;
+  late final _cJSON_GetStringValue_ptr =
+      _lookup<ffi.NativeFunction<_c_cJSON_GetStringValue>>(
+          'cJSON_GetStringValue');
+  late final _dart_cJSON_GetStringValue _cJSON_GetStringValue =
+      _cJSON_GetStringValue_ptr.asFunction<_dart_cJSON_GetStringValue>();
 
   int cJSON_IsInvalid(
     ffi.Pointer<cJSON> item,
   ) {
-    return (_cJSON_IsInvalid ??=
-        _lookup<ffi.NativeFunction<_c_cJSON_IsInvalid>>('cJSON_IsInvalid')
-            .asFunction<_dart_cJSON_IsInvalid>())(
+    return _cJSON_IsInvalid(
       item,
     );
   }
 
-  _dart_cJSON_IsInvalid? _cJSON_IsInvalid;
+  late final _cJSON_IsInvalid_ptr =
+      _lookup<ffi.NativeFunction<_c_cJSON_IsInvalid>>('cJSON_IsInvalid');
+  late final _dart_cJSON_IsInvalid _cJSON_IsInvalid =
+      _cJSON_IsInvalid_ptr.asFunction<_dart_cJSON_IsInvalid>();
 
   int cJSON_IsFalse(
     ffi.Pointer<cJSON> item,
   ) {
-    return (_cJSON_IsFalse ??=
-        _lookup<ffi.NativeFunction<_c_cJSON_IsFalse>>('cJSON_IsFalse')
-            .asFunction<_dart_cJSON_IsFalse>())(
+    return _cJSON_IsFalse(
       item,
     );
   }
 
-  _dart_cJSON_IsFalse? _cJSON_IsFalse;
+  late final _cJSON_IsFalse_ptr =
+      _lookup<ffi.NativeFunction<_c_cJSON_IsFalse>>('cJSON_IsFalse');
+  late final _dart_cJSON_IsFalse _cJSON_IsFalse =
+      _cJSON_IsFalse_ptr.asFunction<_dart_cJSON_IsFalse>();
 
   int cJSON_IsTrue(
     ffi.Pointer<cJSON> item,
   ) {
-    return (_cJSON_IsTrue ??=
-        _lookup<ffi.NativeFunction<_c_cJSON_IsTrue>>('cJSON_IsTrue')
-            .asFunction<_dart_cJSON_IsTrue>())(
+    return _cJSON_IsTrue(
       item,
     );
   }
 
-  _dart_cJSON_IsTrue? _cJSON_IsTrue;
+  late final _cJSON_IsTrue_ptr =
+      _lookup<ffi.NativeFunction<_c_cJSON_IsTrue>>('cJSON_IsTrue');
+  late final _dart_cJSON_IsTrue _cJSON_IsTrue =
+      _cJSON_IsTrue_ptr.asFunction<_dart_cJSON_IsTrue>();
 
   int cJSON_IsBool(
     ffi.Pointer<cJSON> item,
   ) {
-    return (_cJSON_IsBool ??=
-        _lookup<ffi.NativeFunction<_c_cJSON_IsBool>>('cJSON_IsBool')
-            .asFunction<_dart_cJSON_IsBool>())(
+    return _cJSON_IsBool(
       item,
     );
   }
 
-  _dart_cJSON_IsBool? _cJSON_IsBool;
+  late final _cJSON_IsBool_ptr =
+      _lookup<ffi.NativeFunction<_c_cJSON_IsBool>>('cJSON_IsBool');
+  late final _dart_cJSON_IsBool _cJSON_IsBool =
+      _cJSON_IsBool_ptr.asFunction<_dart_cJSON_IsBool>();
 
   int cJSON_IsNull(
     ffi.Pointer<cJSON> item,
   ) {
-    return (_cJSON_IsNull ??=
-        _lookup<ffi.NativeFunction<_c_cJSON_IsNull>>('cJSON_IsNull')
-            .asFunction<_dart_cJSON_IsNull>())(
+    return _cJSON_IsNull(
       item,
     );
   }
 
-  _dart_cJSON_IsNull? _cJSON_IsNull;
+  late final _cJSON_IsNull_ptr =
+      _lookup<ffi.NativeFunction<_c_cJSON_IsNull>>('cJSON_IsNull');
+  late final _dart_cJSON_IsNull _cJSON_IsNull =
+      _cJSON_IsNull_ptr.asFunction<_dart_cJSON_IsNull>();
 
   int cJSON_IsNumber(
     ffi.Pointer<cJSON> item,
   ) {
-    return (_cJSON_IsNumber ??=
-        _lookup<ffi.NativeFunction<_c_cJSON_IsNumber>>('cJSON_IsNumber')
-            .asFunction<_dart_cJSON_IsNumber>())(
+    return _cJSON_IsNumber(
       item,
     );
   }
 
-  _dart_cJSON_IsNumber? _cJSON_IsNumber;
+  late final _cJSON_IsNumber_ptr =
+      _lookup<ffi.NativeFunction<_c_cJSON_IsNumber>>('cJSON_IsNumber');
+  late final _dart_cJSON_IsNumber _cJSON_IsNumber =
+      _cJSON_IsNumber_ptr.asFunction<_dart_cJSON_IsNumber>();
 
   int cJSON_IsString(
     ffi.Pointer<cJSON> item,
   ) {
-    return (_cJSON_IsString ??=
-        _lookup<ffi.NativeFunction<_c_cJSON_IsString>>('cJSON_IsString')
-            .asFunction<_dart_cJSON_IsString>())(
+    return _cJSON_IsString(
       item,
     );
   }
 
-  _dart_cJSON_IsString? _cJSON_IsString;
+  late final _cJSON_IsString_ptr =
+      _lookup<ffi.NativeFunction<_c_cJSON_IsString>>('cJSON_IsString');
+  late final _dart_cJSON_IsString _cJSON_IsString =
+      _cJSON_IsString_ptr.asFunction<_dart_cJSON_IsString>();
 
   int cJSON_IsArray(
     ffi.Pointer<cJSON> item,
   ) {
-    return (_cJSON_IsArray ??=
-        _lookup<ffi.NativeFunction<_c_cJSON_IsArray>>('cJSON_IsArray')
-            .asFunction<_dart_cJSON_IsArray>())(
+    return _cJSON_IsArray(
       item,
     );
   }
 
-  _dart_cJSON_IsArray? _cJSON_IsArray;
+  late final _cJSON_IsArray_ptr =
+      _lookup<ffi.NativeFunction<_c_cJSON_IsArray>>('cJSON_IsArray');
+  late final _dart_cJSON_IsArray _cJSON_IsArray =
+      _cJSON_IsArray_ptr.asFunction<_dart_cJSON_IsArray>();
 
   int cJSON_IsObject(
     ffi.Pointer<cJSON> item,
   ) {
-    return (_cJSON_IsObject ??=
-        _lookup<ffi.NativeFunction<_c_cJSON_IsObject>>('cJSON_IsObject')
-            .asFunction<_dart_cJSON_IsObject>())(
+    return _cJSON_IsObject(
       item,
     );
   }
 
-  _dart_cJSON_IsObject? _cJSON_IsObject;
+  late final _cJSON_IsObject_ptr =
+      _lookup<ffi.NativeFunction<_c_cJSON_IsObject>>('cJSON_IsObject');
+  late final _dart_cJSON_IsObject _cJSON_IsObject =
+      _cJSON_IsObject_ptr.asFunction<_dart_cJSON_IsObject>();
 
   int cJSON_IsRaw(
     ffi.Pointer<cJSON> item,
   ) {
-    return (_cJSON_IsRaw ??=
-        _lookup<ffi.NativeFunction<_c_cJSON_IsRaw>>('cJSON_IsRaw')
-            .asFunction<_dart_cJSON_IsRaw>())(
+    return _cJSON_IsRaw(
       item,
     );
   }
 
-  _dart_cJSON_IsRaw? _cJSON_IsRaw;
+  late final _cJSON_IsRaw_ptr =
+      _lookup<ffi.NativeFunction<_c_cJSON_IsRaw>>('cJSON_IsRaw');
+  late final _dart_cJSON_IsRaw _cJSON_IsRaw =
+      _cJSON_IsRaw_ptr.asFunction<_dart_cJSON_IsRaw>();
 
   ffi.Pointer<cJSON> cJSON_CreateNull() {
-    return (_cJSON_CreateNull ??=
-        _lookup<ffi.NativeFunction<_c_cJSON_CreateNull>>('cJSON_CreateNull')
-            .asFunction<_dart_cJSON_CreateNull>())();
+    return _cJSON_CreateNull();
   }
 
-  _dart_cJSON_CreateNull? _cJSON_CreateNull;
+  late final _cJSON_CreateNull_ptr =
+      _lookup<ffi.NativeFunction<_c_cJSON_CreateNull>>('cJSON_CreateNull');
+  late final _dart_cJSON_CreateNull _cJSON_CreateNull =
+      _cJSON_CreateNull_ptr.asFunction<_dart_cJSON_CreateNull>();
 
   ffi.Pointer<cJSON> cJSON_CreateTrue() {
-    return (_cJSON_CreateTrue ??=
-        _lookup<ffi.NativeFunction<_c_cJSON_CreateTrue>>('cJSON_CreateTrue')
-            .asFunction<_dart_cJSON_CreateTrue>())();
+    return _cJSON_CreateTrue();
   }
 
-  _dart_cJSON_CreateTrue? _cJSON_CreateTrue;
+  late final _cJSON_CreateTrue_ptr =
+      _lookup<ffi.NativeFunction<_c_cJSON_CreateTrue>>('cJSON_CreateTrue');
+  late final _dart_cJSON_CreateTrue _cJSON_CreateTrue =
+      _cJSON_CreateTrue_ptr.asFunction<_dart_cJSON_CreateTrue>();
 
   ffi.Pointer<cJSON> cJSON_CreateFalse() {
-    return (_cJSON_CreateFalse ??=
-        _lookup<ffi.NativeFunction<_c_cJSON_CreateFalse>>('cJSON_CreateFalse')
-            .asFunction<_dart_cJSON_CreateFalse>())();
+    return _cJSON_CreateFalse();
   }
 
-  _dart_cJSON_CreateFalse? _cJSON_CreateFalse;
+  late final _cJSON_CreateFalse_ptr =
+      _lookup<ffi.NativeFunction<_c_cJSON_CreateFalse>>('cJSON_CreateFalse');
+  late final _dart_cJSON_CreateFalse _cJSON_CreateFalse =
+      _cJSON_CreateFalse_ptr.asFunction<_dart_cJSON_CreateFalse>();
 
   ffi.Pointer<cJSON> cJSON_CreateBool(
     int boolean,
   ) {
-    return (_cJSON_CreateBool ??=
-        _lookup<ffi.NativeFunction<_c_cJSON_CreateBool>>('cJSON_CreateBool')
-            .asFunction<_dart_cJSON_CreateBool>())(
+    return _cJSON_CreateBool(
       boolean,
     );
   }
 
-  _dart_cJSON_CreateBool? _cJSON_CreateBool;
+  late final _cJSON_CreateBool_ptr =
+      _lookup<ffi.NativeFunction<_c_cJSON_CreateBool>>('cJSON_CreateBool');
+  late final _dart_cJSON_CreateBool _cJSON_CreateBool =
+      _cJSON_CreateBool_ptr.asFunction<_dart_cJSON_CreateBool>();
 
   ffi.Pointer<cJSON> cJSON_CreateNumber(
     double num,
   ) {
-    return (_cJSON_CreateNumber ??=
-        _lookup<ffi.NativeFunction<_c_cJSON_CreateNumber>>('cJSON_CreateNumber')
-            .asFunction<_dart_cJSON_CreateNumber>())(
+    return _cJSON_CreateNumber(
       num,
     );
   }
 
-  _dart_cJSON_CreateNumber? _cJSON_CreateNumber;
+  late final _cJSON_CreateNumber_ptr =
+      _lookup<ffi.NativeFunction<_c_cJSON_CreateNumber>>('cJSON_CreateNumber');
+  late final _dart_cJSON_CreateNumber _cJSON_CreateNumber =
+      _cJSON_CreateNumber_ptr.asFunction<_dart_cJSON_CreateNumber>();
 
   ffi.Pointer<cJSON> cJSON_CreateString(
     ffi.Pointer<ffi.Int8> string,
   ) {
-    return (_cJSON_CreateString ??=
-        _lookup<ffi.NativeFunction<_c_cJSON_CreateString>>('cJSON_CreateString')
-            .asFunction<_dart_cJSON_CreateString>())(
+    return _cJSON_CreateString(
       string,
     );
   }
 
-  _dart_cJSON_CreateString? _cJSON_CreateString;
+  late final _cJSON_CreateString_ptr =
+      _lookup<ffi.NativeFunction<_c_cJSON_CreateString>>('cJSON_CreateString');
+  late final _dart_cJSON_CreateString _cJSON_CreateString =
+      _cJSON_CreateString_ptr.asFunction<_dart_cJSON_CreateString>();
 
   ffi.Pointer<cJSON> cJSON_CreateRaw(
     ffi.Pointer<ffi.Int8> raw,
   ) {
-    return (_cJSON_CreateRaw ??=
-        _lookup<ffi.NativeFunction<_c_cJSON_CreateRaw>>('cJSON_CreateRaw')
-            .asFunction<_dart_cJSON_CreateRaw>())(
+    return _cJSON_CreateRaw(
       raw,
     );
   }
 
-  _dart_cJSON_CreateRaw? _cJSON_CreateRaw;
+  late final _cJSON_CreateRaw_ptr =
+      _lookup<ffi.NativeFunction<_c_cJSON_CreateRaw>>('cJSON_CreateRaw');
+  late final _dart_cJSON_CreateRaw _cJSON_CreateRaw =
+      _cJSON_CreateRaw_ptr.asFunction<_dart_cJSON_CreateRaw>();
 
   ffi.Pointer<cJSON> cJSON_CreateArray() {
-    return (_cJSON_CreateArray ??=
-        _lookup<ffi.NativeFunction<_c_cJSON_CreateArray>>('cJSON_CreateArray')
-            .asFunction<_dart_cJSON_CreateArray>())();
+    return _cJSON_CreateArray();
   }
 
-  _dart_cJSON_CreateArray? _cJSON_CreateArray;
+  late final _cJSON_CreateArray_ptr =
+      _lookup<ffi.NativeFunction<_c_cJSON_CreateArray>>('cJSON_CreateArray');
+  late final _dart_cJSON_CreateArray _cJSON_CreateArray =
+      _cJSON_CreateArray_ptr.asFunction<_dart_cJSON_CreateArray>();
 
   ffi.Pointer<cJSON> cJSON_CreateObject() {
-    return (_cJSON_CreateObject ??=
-        _lookup<ffi.NativeFunction<_c_cJSON_CreateObject>>('cJSON_CreateObject')
-            .asFunction<_dart_cJSON_CreateObject>())();
+    return _cJSON_CreateObject();
   }
 
-  _dart_cJSON_CreateObject? _cJSON_CreateObject;
+  late final _cJSON_CreateObject_ptr =
+      _lookup<ffi.NativeFunction<_c_cJSON_CreateObject>>('cJSON_CreateObject');
+  late final _dart_cJSON_CreateObject _cJSON_CreateObject =
+      _cJSON_CreateObject_ptr.asFunction<_dart_cJSON_CreateObject>();
 
   ffi.Pointer<cJSON> cJSON_CreateStringReference(
     ffi.Pointer<ffi.Int8> string,
   ) {
-    return (_cJSON_CreateStringReference ??=
-        _lookup<ffi.NativeFunction<_c_cJSON_CreateStringReference>>(
-                'cJSON_CreateStringReference')
-            .asFunction<_dart_cJSON_CreateStringReference>())(
+    return _cJSON_CreateStringReference(
       string,
     );
   }
 
-  _dart_cJSON_CreateStringReference? _cJSON_CreateStringReference;
+  late final _cJSON_CreateStringReference_ptr =
+      _lookup<ffi.NativeFunction<_c_cJSON_CreateStringReference>>(
+          'cJSON_CreateStringReference');
+  late final _dart_cJSON_CreateStringReference _cJSON_CreateStringReference =
+      _cJSON_CreateStringReference_ptr
+          .asFunction<_dart_cJSON_CreateStringReference>();
 
   ffi.Pointer<cJSON> cJSON_CreateObjectReference(
     ffi.Pointer<cJSON> child,
   ) {
-    return (_cJSON_CreateObjectReference ??=
-        _lookup<ffi.NativeFunction<_c_cJSON_CreateObjectReference>>(
-                'cJSON_CreateObjectReference')
-            .asFunction<_dart_cJSON_CreateObjectReference>())(
+    return _cJSON_CreateObjectReference(
       child,
     );
   }
 
-  _dart_cJSON_CreateObjectReference? _cJSON_CreateObjectReference;
+  late final _cJSON_CreateObjectReference_ptr =
+      _lookup<ffi.NativeFunction<_c_cJSON_CreateObjectReference>>(
+          'cJSON_CreateObjectReference');
+  late final _dart_cJSON_CreateObjectReference _cJSON_CreateObjectReference =
+      _cJSON_CreateObjectReference_ptr
+          .asFunction<_dart_cJSON_CreateObjectReference>();
 
   ffi.Pointer<cJSON> cJSON_CreateArrayReference(
     ffi.Pointer<cJSON> child,
   ) {
-    return (_cJSON_CreateArrayReference ??=
-        _lookup<ffi.NativeFunction<_c_cJSON_CreateArrayReference>>(
-                'cJSON_CreateArrayReference')
-            .asFunction<_dart_cJSON_CreateArrayReference>())(
+    return _cJSON_CreateArrayReference(
       child,
     );
   }
 
-  _dart_cJSON_CreateArrayReference? _cJSON_CreateArrayReference;
+  late final _cJSON_CreateArrayReference_ptr =
+      _lookup<ffi.NativeFunction<_c_cJSON_CreateArrayReference>>(
+          'cJSON_CreateArrayReference');
+  late final _dart_cJSON_CreateArrayReference _cJSON_CreateArrayReference =
+      _cJSON_CreateArrayReference_ptr
+          .asFunction<_dart_cJSON_CreateArrayReference>();
 
   ffi.Pointer<cJSON> cJSON_CreateIntArray(
     ffi.Pointer<ffi.Int32> numbers,
     int count,
   ) {
-    return (_cJSON_CreateIntArray ??=
-        _lookup<ffi.NativeFunction<_c_cJSON_CreateIntArray>>(
-                'cJSON_CreateIntArray')
-            .asFunction<_dart_cJSON_CreateIntArray>())(
+    return _cJSON_CreateIntArray(
       numbers,
       count,
     );
   }
 
-  _dart_cJSON_CreateIntArray? _cJSON_CreateIntArray;
+  late final _cJSON_CreateIntArray_ptr =
+      _lookup<ffi.NativeFunction<_c_cJSON_CreateIntArray>>(
+          'cJSON_CreateIntArray');
+  late final _dart_cJSON_CreateIntArray _cJSON_CreateIntArray =
+      _cJSON_CreateIntArray_ptr.asFunction<_dart_cJSON_CreateIntArray>();
 
   ffi.Pointer<cJSON> cJSON_CreateFloatArray(
     ffi.Pointer<ffi.Float> numbers,
     int count,
   ) {
-    return (_cJSON_CreateFloatArray ??=
-        _lookup<ffi.NativeFunction<_c_cJSON_CreateFloatArray>>(
-                'cJSON_CreateFloatArray')
-            .asFunction<_dart_cJSON_CreateFloatArray>())(
+    return _cJSON_CreateFloatArray(
       numbers,
       count,
     );
   }
 
-  _dart_cJSON_CreateFloatArray? _cJSON_CreateFloatArray;
+  late final _cJSON_CreateFloatArray_ptr =
+      _lookup<ffi.NativeFunction<_c_cJSON_CreateFloatArray>>(
+          'cJSON_CreateFloatArray');
+  late final _dart_cJSON_CreateFloatArray _cJSON_CreateFloatArray =
+      _cJSON_CreateFloatArray_ptr.asFunction<_dart_cJSON_CreateFloatArray>();
 
   ffi.Pointer<cJSON> cJSON_CreateDoubleArray(
     ffi.Pointer<ffi.Double> numbers,
     int count,
   ) {
-    return (_cJSON_CreateDoubleArray ??=
-        _lookup<ffi.NativeFunction<_c_cJSON_CreateDoubleArray>>(
-                'cJSON_CreateDoubleArray')
-            .asFunction<_dart_cJSON_CreateDoubleArray>())(
+    return _cJSON_CreateDoubleArray(
       numbers,
       count,
     );
   }
 
-  _dart_cJSON_CreateDoubleArray? _cJSON_CreateDoubleArray;
+  late final _cJSON_CreateDoubleArray_ptr =
+      _lookup<ffi.NativeFunction<_c_cJSON_CreateDoubleArray>>(
+          'cJSON_CreateDoubleArray');
+  late final _dart_cJSON_CreateDoubleArray _cJSON_CreateDoubleArray =
+      _cJSON_CreateDoubleArray_ptr.asFunction<_dart_cJSON_CreateDoubleArray>();
 
   ffi.Pointer<cJSON> cJSON_CreateStringArray(
     ffi.Pointer<ffi.Pointer<ffi.Int8>> strings,
     int count,
   ) {
-    return (_cJSON_CreateStringArray ??=
-        _lookup<ffi.NativeFunction<_c_cJSON_CreateStringArray>>(
-                'cJSON_CreateStringArray')
-            .asFunction<_dart_cJSON_CreateStringArray>())(
+    return _cJSON_CreateStringArray(
       strings,
       count,
     );
   }
 
-  _dart_cJSON_CreateStringArray? _cJSON_CreateStringArray;
+  late final _cJSON_CreateStringArray_ptr =
+      _lookup<ffi.NativeFunction<_c_cJSON_CreateStringArray>>(
+          'cJSON_CreateStringArray');
+  late final _dart_cJSON_CreateStringArray _cJSON_CreateStringArray =
+      _cJSON_CreateStringArray_ptr.asFunction<_dart_cJSON_CreateStringArray>();
 
   void cJSON_AddItemToArray(
     ffi.Pointer<cJSON> array,
     ffi.Pointer<cJSON> item,
   ) {
-    return (_cJSON_AddItemToArray ??=
-        _lookup<ffi.NativeFunction<_c_cJSON_AddItemToArray>>(
-                'cJSON_AddItemToArray')
-            .asFunction<_dart_cJSON_AddItemToArray>())(
+    return _cJSON_AddItemToArray(
       array,
       item,
     );
   }
 
-  _dart_cJSON_AddItemToArray? _cJSON_AddItemToArray;
+  late final _cJSON_AddItemToArray_ptr =
+      _lookup<ffi.NativeFunction<_c_cJSON_AddItemToArray>>(
+          'cJSON_AddItemToArray');
+  late final _dart_cJSON_AddItemToArray _cJSON_AddItemToArray =
+      _cJSON_AddItemToArray_ptr.asFunction<_dart_cJSON_AddItemToArray>();
 
   void cJSON_AddItemToObject(
     ffi.Pointer<cJSON> object,
     ffi.Pointer<ffi.Int8> string,
     ffi.Pointer<cJSON> item,
   ) {
-    return (_cJSON_AddItemToObject ??=
-        _lookup<ffi.NativeFunction<_c_cJSON_AddItemToObject>>(
-                'cJSON_AddItemToObject')
-            .asFunction<_dart_cJSON_AddItemToObject>())(
+    return _cJSON_AddItemToObject(
       object,
       string,
       item,
     );
   }
 
-  _dart_cJSON_AddItemToObject? _cJSON_AddItemToObject;
+  late final _cJSON_AddItemToObject_ptr =
+      _lookup<ffi.NativeFunction<_c_cJSON_AddItemToObject>>(
+          'cJSON_AddItemToObject');
+  late final _dart_cJSON_AddItemToObject _cJSON_AddItemToObject =
+      _cJSON_AddItemToObject_ptr.asFunction<_dart_cJSON_AddItemToObject>();
 
   void cJSON_AddItemToObjectCS(
     ffi.Pointer<cJSON> object,
     ffi.Pointer<ffi.Int8> string,
     ffi.Pointer<cJSON> item,
   ) {
-    return (_cJSON_AddItemToObjectCS ??=
-        _lookup<ffi.NativeFunction<_c_cJSON_AddItemToObjectCS>>(
-                'cJSON_AddItemToObjectCS')
-            .asFunction<_dart_cJSON_AddItemToObjectCS>())(
+    return _cJSON_AddItemToObjectCS(
       object,
       string,
       item,
     );
   }
 
-  _dart_cJSON_AddItemToObjectCS? _cJSON_AddItemToObjectCS;
+  late final _cJSON_AddItemToObjectCS_ptr =
+      _lookup<ffi.NativeFunction<_c_cJSON_AddItemToObjectCS>>(
+          'cJSON_AddItemToObjectCS');
+  late final _dart_cJSON_AddItemToObjectCS _cJSON_AddItemToObjectCS =
+      _cJSON_AddItemToObjectCS_ptr.asFunction<_dart_cJSON_AddItemToObjectCS>();
 
   void cJSON_AddItemReferenceToArray(
     ffi.Pointer<cJSON> array,
     ffi.Pointer<cJSON> item,
   ) {
-    return (_cJSON_AddItemReferenceToArray ??=
-        _lookup<ffi.NativeFunction<_c_cJSON_AddItemReferenceToArray>>(
-                'cJSON_AddItemReferenceToArray')
-            .asFunction<_dart_cJSON_AddItemReferenceToArray>())(
+    return _cJSON_AddItemReferenceToArray(
       array,
       item,
     );
   }
 
-  _dart_cJSON_AddItemReferenceToArray? _cJSON_AddItemReferenceToArray;
+  late final _cJSON_AddItemReferenceToArray_ptr =
+      _lookup<ffi.NativeFunction<_c_cJSON_AddItemReferenceToArray>>(
+          'cJSON_AddItemReferenceToArray');
+  late final _dart_cJSON_AddItemReferenceToArray
+      _cJSON_AddItemReferenceToArray = _cJSON_AddItemReferenceToArray_ptr
+          .asFunction<_dart_cJSON_AddItemReferenceToArray>();
 
   void cJSON_AddItemReferenceToObject(
     ffi.Pointer<cJSON> object,
     ffi.Pointer<ffi.Int8> string,
     ffi.Pointer<cJSON> item,
   ) {
-    return (_cJSON_AddItemReferenceToObject ??=
-        _lookup<ffi.NativeFunction<_c_cJSON_AddItemReferenceToObject>>(
-                'cJSON_AddItemReferenceToObject')
-            .asFunction<_dart_cJSON_AddItemReferenceToObject>())(
+    return _cJSON_AddItemReferenceToObject(
       object,
       string,
       item,
     );
   }
 
-  _dart_cJSON_AddItemReferenceToObject? _cJSON_AddItemReferenceToObject;
+  late final _cJSON_AddItemReferenceToObject_ptr =
+      _lookup<ffi.NativeFunction<_c_cJSON_AddItemReferenceToObject>>(
+          'cJSON_AddItemReferenceToObject');
+  late final _dart_cJSON_AddItemReferenceToObject
+      _cJSON_AddItemReferenceToObject = _cJSON_AddItemReferenceToObject_ptr
+          .asFunction<_dart_cJSON_AddItemReferenceToObject>();
 
   ffi.Pointer<cJSON> cJSON_DetachItemViaPointer(
     ffi.Pointer<cJSON> parent,
     ffi.Pointer<cJSON> item,
   ) {
-    return (_cJSON_DetachItemViaPointer ??=
-        _lookup<ffi.NativeFunction<_c_cJSON_DetachItemViaPointer>>(
-                'cJSON_DetachItemViaPointer')
-            .asFunction<_dart_cJSON_DetachItemViaPointer>())(
+    return _cJSON_DetachItemViaPointer(
       parent,
       item,
     );
   }
 
-  _dart_cJSON_DetachItemViaPointer? _cJSON_DetachItemViaPointer;
+  late final _cJSON_DetachItemViaPointer_ptr =
+      _lookup<ffi.NativeFunction<_c_cJSON_DetachItemViaPointer>>(
+          'cJSON_DetachItemViaPointer');
+  late final _dart_cJSON_DetachItemViaPointer _cJSON_DetachItemViaPointer =
+      _cJSON_DetachItemViaPointer_ptr
+          .asFunction<_dart_cJSON_DetachItemViaPointer>();
 
   ffi.Pointer<cJSON> cJSON_DetachItemFromArray(
     ffi.Pointer<cJSON> array,
     int which,
   ) {
-    return (_cJSON_DetachItemFromArray ??=
-        _lookup<ffi.NativeFunction<_c_cJSON_DetachItemFromArray>>(
-                'cJSON_DetachItemFromArray')
-            .asFunction<_dart_cJSON_DetachItemFromArray>())(
+    return _cJSON_DetachItemFromArray(
       array,
       which,
     );
   }
 
-  _dart_cJSON_DetachItemFromArray? _cJSON_DetachItemFromArray;
+  late final _cJSON_DetachItemFromArray_ptr =
+      _lookup<ffi.NativeFunction<_c_cJSON_DetachItemFromArray>>(
+          'cJSON_DetachItemFromArray');
+  late final _dart_cJSON_DetachItemFromArray _cJSON_DetachItemFromArray =
+      _cJSON_DetachItemFromArray_ptr
+          .asFunction<_dart_cJSON_DetachItemFromArray>();
 
   void cJSON_DeleteItemFromArray(
     ffi.Pointer<cJSON> array,
     int which,
   ) {
-    return (_cJSON_DeleteItemFromArray ??=
-        _lookup<ffi.NativeFunction<_c_cJSON_DeleteItemFromArray>>(
-                'cJSON_DeleteItemFromArray')
-            .asFunction<_dart_cJSON_DeleteItemFromArray>())(
+    return _cJSON_DeleteItemFromArray(
       array,
       which,
     );
   }
 
-  _dart_cJSON_DeleteItemFromArray? _cJSON_DeleteItemFromArray;
+  late final _cJSON_DeleteItemFromArray_ptr =
+      _lookup<ffi.NativeFunction<_c_cJSON_DeleteItemFromArray>>(
+          'cJSON_DeleteItemFromArray');
+  late final _dart_cJSON_DeleteItemFromArray _cJSON_DeleteItemFromArray =
+      _cJSON_DeleteItemFromArray_ptr
+          .asFunction<_dart_cJSON_DeleteItemFromArray>();
 
   ffi.Pointer<cJSON> cJSON_DetachItemFromObject(
     ffi.Pointer<cJSON> object,
     ffi.Pointer<ffi.Int8> string,
   ) {
-    return (_cJSON_DetachItemFromObject ??=
-        _lookup<ffi.NativeFunction<_c_cJSON_DetachItemFromObject>>(
-                'cJSON_DetachItemFromObject')
-            .asFunction<_dart_cJSON_DetachItemFromObject>())(
+    return _cJSON_DetachItemFromObject(
       object,
       string,
     );
   }
 
-  _dart_cJSON_DetachItemFromObject? _cJSON_DetachItemFromObject;
+  late final _cJSON_DetachItemFromObject_ptr =
+      _lookup<ffi.NativeFunction<_c_cJSON_DetachItemFromObject>>(
+          'cJSON_DetachItemFromObject');
+  late final _dart_cJSON_DetachItemFromObject _cJSON_DetachItemFromObject =
+      _cJSON_DetachItemFromObject_ptr
+          .asFunction<_dart_cJSON_DetachItemFromObject>();
 
   ffi.Pointer<cJSON> cJSON_DetachItemFromObjectCaseSensitive(
     ffi.Pointer<cJSON> object,
     ffi.Pointer<ffi.Int8> string,
   ) {
-    return (_cJSON_DetachItemFromObjectCaseSensitive ??=
-        _lookup<ffi.NativeFunction<_c_cJSON_DetachItemFromObjectCaseSensitive>>(
-                'cJSON_DetachItemFromObjectCaseSensitive')
-            .asFunction<_dart_cJSON_DetachItemFromObjectCaseSensitive>())(
+    return _cJSON_DetachItemFromObjectCaseSensitive(
       object,
       string,
     );
   }
 
-  _dart_cJSON_DetachItemFromObjectCaseSensitive?
-      _cJSON_DetachItemFromObjectCaseSensitive;
+  late final _cJSON_DetachItemFromObjectCaseSensitive_ptr =
+      _lookup<ffi.NativeFunction<_c_cJSON_DetachItemFromObjectCaseSensitive>>(
+          'cJSON_DetachItemFromObjectCaseSensitive');
+  late final _dart_cJSON_DetachItemFromObjectCaseSensitive
+      _cJSON_DetachItemFromObjectCaseSensitive =
+      _cJSON_DetachItemFromObjectCaseSensitive_ptr
+          .asFunction<_dart_cJSON_DetachItemFromObjectCaseSensitive>();
 
   void cJSON_DeleteItemFromObject(
     ffi.Pointer<cJSON> object,
     ffi.Pointer<ffi.Int8> string,
   ) {
-    return (_cJSON_DeleteItemFromObject ??=
-        _lookup<ffi.NativeFunction<_c_cJSON_DeleteItemFromObject>>(
-                'cJSON_DeleteItemFromObject')
-            .asFunction<_dart_cJSON_DeleteItemFromObject>())(
+    return _cJSON_DeleteItemFromObject(
       object,
       string,
     );
   }
 
-  _dart_cJSON_DeleteItemFromObject? _cJSON_DeleteItemFromObject;
+  late final _cJSON_DeleteItemFromObject_ptr =
+      _lookup<ffi.NativeFunction<_c_cJSON_DeleteItemFromObject>>(
+          'cJSON_DeleteItemFromObject');
+  late final _dart_cJSON_DeleteItemFromObject _cJSON_DeleteItemFromObject =
+      _cJSON_DeleteItemFromObject_ptr
+          .asFunction<_dart_cJSON_DeleteItemFromObject>();
 
   void cJSON_DeleteItemFromObjectCaseSensitive(
     ffi.Pointer<cJSON> object,
     ffi.Pointer<ffi.Int8> string,
   ) {
-    return (_cJSON_DeleteItemFromObjectCaseSensitive ??=
-        _lookup<ffi.NativeFunction<_c_cJSON_DeleteItemFromObjectCaseSensitive>>(
-                'cJSON_DeleteItemFromObjectCaseSensitive')
-            .asFunction<_dart_cJSON_DeleteItemFromObjectCaseSensitive>())(
+    return _cJSON_DeleteItemFromObjectCaseSensitive(
       object,
       string,
     );
   }
 
-  _dart_cJSON_DeleteItemFromObjectCaseSensitive?
-      _cJSON_DeleteItemFromObjectCaseSensitive;
+  late final _cJSON_DeleteItemFromObjectCaseSensitive_ptr =
+      _lookup<ffi.NativeFunction<_c_cJSON_DeleteItemFromObjectCaseSensitive>>(
+          'cJSON_DeleteItemFromObjectCaseSensitive');
+  late final _dart_cJSON_DeleteItemFromObjectCaseSensitive
+      _cJSON_DeleteItemFromObjectCaseSensitive =
+      _cJSON_DeleteItemFromObjectCaseSensitive_ptr
+          .asFunction<_dart_cJSON_DeleteItemFromObjectCaseSensitive>();
 
   void cJSON_InsertItemInArray(
     ffi.Pointer<cJSON> array,
     int which,
     ffi.Pointer<cJSON> newitem,
   ) {
-    return (_cJSON_InsertItemInArray ??=
-        _lookup<ffi.NativeFunction<_c_cJSON_InsertItemInArray>>(
-                'cJSON_InsertItemInArray')
-            .asFunction<_dart_cJSON_InsertItemInArray>())(
+    return _cJSON_InsertItemInArray(
       array,
       which,
       newitem,
     );
   }
 
-  _dart_cJSON_InsertItemInArray? _cJSON_InsertItemInArray;
+  late final _cJSON_InsertItemInArray_ptr =
+      _lookup<ffi.NativeFunction<_c_cJSON_InsertItemInArray>>(
+          'cJSON_InsertItemInArray');
+  late final _dart_cJSON_InsertItemInArray _cJSON_InsertItemInArray =
+      _cJSON_InsertItemInArray_ptr.asFunction<_dart_cJSON_InsertItemInArray>();
 
   int cJSON_ReplaceItemViaPointer(
     ffi.Pointer<cJSON> parent,
     ffi.Pointer<cJSON> item,
     ffi.Pointer<cJSON> replacement,
   ) {
-    return (_cJSON_ReplaceItemViaPointer ??=
-        _lookup<ffi.NativeFunction<_c_cJSON_ReplaceItemViaPointer>>(
-                'cJSON_ReplaceItemViaPointer')
-            .asFunction<_dart_cJSON_ReplaceItemViaPointer>())(
+    return _cJSON_ReplaceItemViaPointer(
       parent,
       item,
       replacement,
     );
   }
 
-  _dart_cJSON_ReplaceItemViaPointer? _cJSON_ReplaceItemViaPointer;
+  late final _cJSON_ReplaceItemViaPointer_ptr =
+      _lookup<ffi.NativeFunction<_c_cJSON_ReplaceItemViaPointer>>(
+          'cJSON_ReplaceItemViaPointer');
+  late final _dart_cJSON_ReplaceItemViaPointer _cJSON_ReplaceItemViaPointer =
+      _cJSON_ReplaceItemViaPointer_ptr
+          .asFunction<_dart_cJSON_ReplaceItemViaPointer>();
 
   void cJSON_ReplaceItemInArray(
     ffi.Pointer<cJSON> array,
     int which,
     ffi.Pointer<cJSON> newitem,
   ) {
-    return (_cJSON_ReplaceItemInArray ??=
-        _lookup<ffi.NativeFunction<_c_cJSON_ReplaceItemInArray>>(
-                'cJSON_ReplaceItemInArray')
-            .asFunction<_dart_cJSON_ReplaceItemInArray>())(
+    return _cJSON_ReplaceItemInArray(
       array,
       which,
       newitem,
     );
   }
 
-  _dart_cJSON_ReplaceItemInArray? _cJSON_ReplaceItemInArray;
+  late final _cJSON_ReplaceItemInArray_ptr =
+      _lookup<ffi.NativeFunction<_c_cJSON_ReplaceItemInArray>>(
+          'cJSON_ReplaceItemInArray');
+  late final _dart_cJSON_ReplaceItemInArray _cJSON_ReplaceItemInArray =
+      _cJSON_ReplaceItemInArray_ptr
+          .asFunction<_dart_cJSON_ReplaceItemInArray>();
 
   void cJSON_ReplaceItemInObject(
     ffi.Pointer<cJSON> object,
     ffi.Pointer<ffi.Int8> string,
     ffi.Pointer<cJSON> newitem,
   ) {
-    return (_cJSON_ReplaceItemInObject ??=
-        _lookup<ffi.NativeFunction<_c_cJSON_ReplaceItemInObject>>(
-                'cJSON_ReplaceItemInObject')
-            .asFunction<_dart_cJSON_ReplaceItemInObject>())(
+    return _cJSON_ReplaceItemInObject(
       object,
       string,
       newitem,
     );
   }
 
-  _dart_cJSON_ReplaceItemInObject? _cJSON_ReplaceItemInObject;
+  late final _cJSON_ReplaceItemInObject_ptr =
+      _lookup<ffi.NativeFunction<_c_cJSON_ReplaceItemInObject>>(
+          'cJSON_ReplaceItemInObject');
+  late final _dart_cJSON_ReplaceItemInObject _cJSON_ReplaceItemInObject =
+      _cJSON_ReplaceItemInObject_ptr
+          .asFunction<_dart_cJSON_ReplaceItemInObject>();
 
   void cJSON_ReplaceItemInObjectCaseSensitive(
     ffi.Pointer<cJSON> object,
     ffi.Pointer<ffi.Int8> string,
     ffi.Pointer<cJSON> newitem,
   ) {
-    return (_cJSON_ReplaceItemInObjectCaseSensitive ??=
-        _lookup<ffi.NativeFunction<_c_cJSON_ReplaceItemInObjectCaseSensitive>>(
-                'cJSON_ReplaceItemInObjectCaseSensitive')
-            .asFunction<_dart_cJSON_ReplaceItemInObjectCaseSensitive>())(
+    return _cJSON_ReplaceItemInObjectCaseSensitive(
       object,
       string,
       newitem,
     );
   }
 
-  _dart_cJSON_ReplaceItemInObjectCaseSensitive?
-      _cJSON_ReplaceItemInObjectCaseSensitive;
+  late final _cJSON_ReplaceItemInObjectCaseSensitive_ptr =
+      _lookup<ffi.NativeFunction<_c_cJSON_ReplaceItemInObjectCaseSensitive>>(
+          'cJSON_ReplaceItemInObjectCaseSensitive');
+  late final _dart_cJSON_ReplaceItemInObjectCaseSensitive
+      _cJSON_ReplaceItemInObjectCaseSensitive =
+      _cJSON_ReplaceItemInObjectCaseSensitive_ptr
+          .asFunction<_dart_cJSON_ReplaceItemInObjectCaseSensitive>();
 
   ffi.Pointer<cJSON> cJSON_Duplicate(
     ffi.Pointer<cJSON> item,
     int recurse,
   ) {
-    return (_cJSON_Duplicate ??=
-        _lookup<ffi.NativeFunction<_c_cJSON_Duplicate>>('cJSON_Duplicate')
-            .asFunction<_dart_cJSON_Duplicate>())(
+    return _cJSON_Duplicate(
       item,
       recurse,
     );
   }
 
-  _dart_cJSON_Duplicate? _cJSON_Duplicate;
+  late final _cJSON_Duplicate_ptr =
+      _lookup<ffi.NativeFunction<_c_cJSON_Duplicate>>('cJSON_Duplicate');
+  late final _dart_cJSON_Duplicate _cJSON_Duplicate =
+      _cJSON_Duplicate_ptr.asFunction<_dart_cJSON_Duplicate>();
 
   int cJSON_Compare(
     ffi.Pointer<cJSON> a,
     ffi.Pointer<cJSON> b,
     int case_sensitive,
   ) {
-    return (_cJSON_Compare ??=
-        _lookup<ffi.NativeFunction<_c_cJSON_Compare>>('cJSON_Compare')
-            .asFunction<_dart_cJSON_Compare>())(
+    return _cJSON_Compare(
       a,
       b,
       case_sensitive,
     );
   }
 
-  _dart_cJSON_Compare? _cJSON_Compare;
+  late final _cJSON_Compare_ptr =
+      _lookup<ffi.NativeFunction<_c_cJSON_Compare>>('cJSON_Compare');
+  late final _dart_cJSON_Compare _cJSON_Compare =
+      _cJSON_Compare_ptr.asFunction<_dart_cJSON_Compare>();
 
   void cJSON_Minify(
     ffi.Pointer<ffi.Int8> json,
   ) {
-    return (_cJSON_Minify ??=
-        _lookup<ffi.NativeFunction<_c_cJSON_Minify>>('cJSON_Minify')
-            .asFunction<_dart_cJSON_Minify>())(
+    return _cJSON_Minify(
       json,
     );
   }
 
-  _dart_cJSON_Minify? _cJSON_Minify;
+  late final _cJSON_Minify_ptr =
+      _lookup<ffi.NativeFunction<_c_cJSON_Minify>>('cJSON_Minify');
+  late final _dart_cJSON_Minify _cJSON_Minify =
+      _cJSON_Minify_ptr.asFunction<_dart_cJSON_Minify>();
 
   ffi.Pointer<cJSON> cJSON_AddNullToObject(
     ffi.Pointer<cJSON> object,
     ffi.Pointer<ffi.Int8> name,
   ) {
-    return (_cJSON_AddNullToObject ??=
-        _lookup<ffi.NativeFunction<_c_cJSON_AddNullToObject>>(
-                'cJSON_AddNullToObject')
-            .asFunction<_dart_cJSON_AddNullToObject>())(
+    return _cJSON_AddNullToObject(
       object,
       name,
     );
   }
 
-  _dart_cJSON_AddNullToObject? _cJSON_AddNullToObject;
+  late final _cJSON_AddNullToObject_ptr =
+      _lookup<ffi.NativeFunction<_c_cJSON_AddNullToObject>>(
+          'cJSON_AddNullToObject');
+  late final _dart_cJSON_AddNullToObject _cJSON_AddNullToObject =
+      _cJSON_AddNullToObject_ptr.asFunction<_dart_cJSON_AddNullToObject>();
 
   ffi.Pointer<cJSON> cJSON_AddTrueToObject(
     ffi.Pointer<cJSON> object,
     ffi.Pointer<ffi.Int8> name,
   ) {
-    return (_cJSON_AddTrueToObject ??=
-        _lookup<ffi.NativeFunction<_c_cJSON_AddTrueToObject>>(
-                'cJSON_AddTrueToObject')
-            .asFunction<_dart_cJSON_AddTrueToObject>())(
+    return _cJSON_AddTrueToObject(
       object,
       name,
     );
   }
 
-  _dart_cJSON_AddTrueToObject? _cJSON_AddTrueToObject;
+  late final _cJSON_AddTrueToObject_ptr =
+      _lookup<ffi.NativeFunction<_c_cJSON_AddTrueToObject>>(
+          'cJSON_AddTrueToObject');
+  late final _dart_cJSON_AddTrueToObject _cJSON_AddTrueToObject =
+      _cJSON_AddTrueToObject_ptr.asFunction<_dart_cJSON_AddTrueToObject>();
 
   ffi.Pointer<cJSON> cJSON_AddFalseToObject(
     ffi.Pointer<cJSON> object,
     ffi.Pointer<ffi.Int8> name,
   ) {
-    return (_cJSON_AddFalseToObject ??=
-        _lookup<ffi.NativeFunction<_c_cJSON_AddFalseToObject>>(
-                'cJSON_AddFalseToObject')
-            .asFunction<_dart_cJSON_AddFalseToObject>())(
+    return _cJSON_AddFalseToObject(
       object,
       name,
     );
   }
 
-  _dart_cJSON_AddFalseToObject? _cJSON_AddFalseToObject;
+  late final _cJSON_AddFalseToObject_ptr =
+      _lookup<ffi.NativeFunction<_c_cJSON_AddFalseToObject>>(
+          'cJSON_AddFalseToObject');
+  late final _dart_cJSON_AddFalseToObject _cJSON_AddFalseToObject =
+      _cJSON_AddFalseToObject_ptr.asFunction<_dart_cJSON_AddFalseToObject>();
 
   ffi.Pointer<cJSON> cJSON_AddBoolToObject(
     ffi.Pointer<cJSON> object,
     ffi.Pointer<ffi.Int8> name,
     int boolean,
   ) {
-    return (_cJSON_AddBoolToObject ??=
-        _lookup<ffi.NativeFunction<_c_cJSON_AddBoolToObject>>(
-                'cJSON_AddBoolToObject')
-            .asFunction<_dart_cJSON_AddBoolToObject>())(
+    return _cJSON_AddBoolToObject(
       object,
       name,
       boolean,
     );
   }
 
-  _dart_cJSON_AddBoolToObject? _cJSON_AddBoolToObject;
+  late final _cJSON_AddBoolToObject_ptr =
+      _lookup<ffi.NativeFunction<_c_cJSON_AddBoolToObject>>(
+          'cJSON_AddBoolToObject');
+  late final _dart_cJSON_AddBoolToObject _cJSON_AddBoolToObject =
+      _cJSON_AddBoolToObject_ptr.asFunction<_dart_cJSON_AddBoolToObject>();
 
   ffi.Pointer<cJSON> cJSON_AddNumberToObject(
     ffi.Pointer<cJSON> object,
     ffi.Pointer<ffi.Int8> name,
     double number,
   ) {
-    return (_cJSON_AddNumberToObject ??=
-        _lookup<ffi.NativeFunction<_c_cJSON_AddNumberToObject>>(
-                'cJSON_AddNumberToObject')
-            .asFunction<_dart_cJSON_AddNumberToObject>())(
+    return _cJSON_AddNumberToObject(
       object,
       name,
       number,
     );
   }
 
-  _dart_cJSON_AddNumberToObject? _cJSON_AddNumberToObject;
+  late final _cJSON_AddNumberToObject_ptr =
+      _lookup<ffi.NativeFunction<_c_cJSON_AddNumberToObject>>(
+          'cJSON_AddNumberToObject');
+  late final _dart_cJSON_AddNumberToObject _cJSON_AddNumberToObject =
+      _cJSON_AddNumberToObject_ptr.asFunction<_dart_cJSON_AddNumberToObject>();
 
   ffi.Pointer<cJSON> cJSON_AddStringToObject(
     ffi.Pointer<cJSON> object,
     ffi.Pointer<ffi.Int8> name,
     ffi.Pointer<ffi.Int8> string,
   ) {
-    return (_cJSON_AddStringToObject ??=
-        _lookup<ffi.NativeFunction<_c_cJSON_AddStringToObject>>(
-                'cJSON_AddStringToObject')
-            .asFunction<_dart_cJSON_AddStringToObject>())(
+    return _cJSON_AddStringToObject(
       object,
       name,
       string,
     );
   }
 
-  _dart_cJSON_AddStringToObject? _cJSON_AddStringToObject;
+  late final _cJSON_AddStringToObject_ptr =
+      _lookup<ffi.NativeFunction<_c_cJSON_AddStringToObject>>(
+          'cJSON_AddStringToObject');
+  late final _dart_cJSON_AddStringToObject _cJSON_AddStringToObject =
+      _cJSON_AddStringToObject_ptr.asFunction<_dart_cJSON_AddStringToObject>();
 
   ffi.Pointer<cJSON> cJSON_AddRawToObject(
     ffi.Pointer<cJSON> object,
     ffi.Pointer<ffi.Int8> name,
     ffi.Pointer<ffi.Int8> raw,
   ) {
-    return (_cJSON_AddRawToObject ??=
-        _lookup<ffi.NativeFunction<_c_cJSON_AddRawToObject>>(
-                'cJSON_AddRawToObject')
-            .asFunction<_dart_cJSON_AddRawToObject>())(
+    return _cJSON_AddRawToObject(
       object,
       name,
       raw,
     );
   }
 
-  _dart_cJSON_AddRawToObject? _cJSON_AddRawToObject;
+  late final _cJSON_AddRawToObject_ptr =
+      _lookup<ffi.NativeFunction<_c_cJSON_AddRawToObject>>(
+          'cJSON_AddRawToObject');
+  late final _dart_cJSON_AddRawToObject _cJSON_AddRawToObject =
+      _cJSON_AddRawToObject_ptr.asFunction<_dart_cJSON_AddRawToObject>();
 
   ffi.Pointer<cJSON> cJSON_AddObjectToObject(
     ffi.Pointer<cJSON> object,
     ffi.Pointer<ffi.Int8> name,
   ) {
-    return (_cJSON_AddObjectToObject ??=
-        _lookup<ffi.NativeFunction<_c_cJSON_AddObjectToObject>>(
-                'cJSON_AddObjectToObject')
-            .asFunction<_dart_cJSON_AddObjectToObject>())(
+    return _cJSON_AddObjectToObject(
       object,
       name,
     );
   }
 
-  _dart_cJSON_AddObjectToObject? _cJSON_AddObjectToObject;
+  late final _cJSON_AddObjectToObject_ptr =
+      _lookup<ffi.NativeFunction<_c_cJSON_AddObjectToObject>>(
+          'cJSON_AddObjectToObject');
+  late final _dart_cJSON_AddObjectToObject _cJSON_AddObjectToObject =
+      _cJSON_AddObjectToObject_ptr.asFunction<_dart_cJSON_AddObjectToObject>();
 
   ffi.Pointer<cJSON> cJSON_AddArrayToObject(
     ffi.Pointer<cJSON> object,
     ffi.Pointer<ffi.Int8> name,
   ) {
-    return (_cJSON_AddArrayToObject ??=
-        _lookup<ffi.NativeFunction<_c_cJSON_AddArrayToObject>>(
-                'cJSON_AddArrayToObject')
-            .asFunction<_dart_cJSON_AddArrayToObject>())(
+    return _cJSON_AddArrayToObject(
       object,
       name,
     );
   }
 
-  _dart_cJSON_AddArrayToObject? _cJSON_AddArrayToObject;
+  late final _cJSON_AddArrayToObject_ptr =
+      _lookup<ffi.NativeFunction<_c_cJSON_AddArrayToObject>>(
+          'cJSON_AddArrayToObject');
+  late final _dart_cJSON_AddArrayToObject _cJSON_AddArrayToObject =
+      _cJSON_AddArrayToObject_ptr.asFunction<_dart_cJSON_AddArrayToObject>();
 
   double cJSON_SetNumberHelper(
     ffi.Pointer<cJSON> object,
     double number,
   ) {
-    return (_cJSON_SetNumberHelper ??=
-        _lookup<ffi.NativeFunction<_c_cJSON_SetNumberHelper>>(
-                'cJSON_SetNumberHelper')
-            .asFunction<_dart_cJSON_SetNumberHelper>())(
+    return _cJSON_SetNumberHelper(
       object,
       number,
     );
   }
 
-  _dart_cJSON_SetNumberHelper? _cJSON_SetNumberHelper;
+  late final _cJSON_SetNumberHelper_ptr =
+      _lookup<ffi.NativeFunction<_c_cJSON_SetNumberHelper>>(
+          'cJSON_SetNumberHelper');
+  late final _dart_cJSON_SetNumberHelper _cJSON_SetNumberHelper =
+      _cJSON_SetNumberHelper_ptr.asFunction<_dart_cJSON_SetNumberHelper>();
 
   ffi.Pointer<ffi.Void> cJSON_malloc(
     int size,
   ) {
-    return (_cJSON_malloc ??=
-        _lookup<ffi.NativeFunction<_c_cJSON_malloc>>('cJSON_malloc')
-            .asFunction<_dart_cJSON_malloc>())(
+    return _cJSON_malloc(
       size,
     );
   }
 
-  _dart_cJSON_malloc? _cJSON_malloc;
+  late final _cJSON_malloc_ptr =
+      _lookup<ffi.NativeFunction<_c_cJSON_malloc>>('cJSON_malloc');
+  late final _dart_cJSON_malloc _cJSON_malloc =
+      _cJSON_malloc_ptr.asFunction<_dart_cJSON_malloc>();
 
   void cJSON_free(
     ffi.Pointer<ffi.Void> object,
   ) {
-    return (_cJSON_free ??=
-        _lookup<ffi.NativeFunction<_c_cJSON_free>>('cJSON_free')
-            .asFunction<_dart_cJSON_free>())(
+    return _cJSON_free(
       object,
     );
   }
 
-  _dart_cJSON_free? _cJSON_free;
+  late final _cJSON_free_ptr =
+      _lookup<ffi.NativeFunction<_c_cJSON_free>>('cJSON_free');
+  late final _dart_cJSON_free _cJSON_free =
+      _cJSON_free_ptr.asFunction<_dart_cJSON_free>();
 }
 
 class cJSON extends ffi.Struct {
diff --git a/pkgs/ffigen/example/libclang-example/generated_bindings.dart b/pkgs/ffigen/example/libclang-example/generated_bindings.dart
index d90bcd9..cd366f3 100644
--- a/pkgs/ffigen/example/libclang-example/generated_bindings.dart
+++ b/pkgs/ffigen/example/libclang-example/generated_bindings.dart
@@ -27,42 +27,45 @@
   ffi.Pointer<ffi.Int8> clang_getCString(
     CXString string,
   ) {
-    return (_clang_getCString ??=
-        _lookup<ffi.NativeFunction<_c_clang_getCString>>('clang_getCString')
-            .asFunction<_dart_clang_getCString>())(
+    return _clang_getCString(
       string,
     );
   }
 
-  _dart_clang_getCString? _clang_getCString;
+  late final _clang_getCString_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_getCString>>('clang_getCString');
+  late final _dart_clang_getCString _clang_getCString =
+      _clang_getCString_ptr.asFunction<_dart_clang_getCString>();
 
   /// Free the given string.
   void clang_disposeString(
     CXString string,
   ) {
-    return (_clang_disposeString ??=
-        _lookup<ffi.NativeFunction<_c_clang_disposeString>>(
-                'clang_disposeString')
-            .asFunction<_dart_clang_disposeString>())(
+    return _clang_disposeString(
       string,
     );
   }
 
-  _dart_clang_disposeString? _clang_disposeString;
+  late final _clang_disposeString_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_disposeString>>(
+          'clang_disposeString');
+  late final _dart_clang_disposeString _clang_disposeString =
+      _clang_disposeString_ptr.asFunction<_dart_clang_disposeString>();
 
   /// Free the given string set.
   void clang_disposeStringSet(
     ffi.Pointer<CXStringSet> set_1,
   ) {
-    return (_clang_disposeStringSet ??=
-        _lookup<ffi.NativeFunction<_c_clang_disposeStringSet>>(
-                'clang_disposeStringSet')
-            .asFunction<_dart_clang_disposeStringSet>())(
+    return _clang_disposeStringSet(
       set_1,
     );
   }
 
-  _dart_clang_disposeStringSet? _clang_disposeStringSet;
+  late final _clang_disposeStringSet_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_disposeStringSet>>(
+          'clang_disposeStringSet');
+  late final _dart_clang_disposeStringSet _clang_disposeStringSet =
+      _clang_disposeStringSet_ptr.asFunction<_dart_clang_disposeStringSet>();
 
   /// Provides a shared context for creating translation units.
   ///
@@ -106,15 +109,17 @@
     int excludeDeclarationsFromPCH,
     int displayDiagnostics,
   ) {
-    return (_clang_createIndex ??=
-        _lookup<ffi.NativeFunction<_c_clang_createIndex>>('clang_createIndex')
-            .asFunction<_dart_clang_createIndex>())(
+    return _clang_createIndex(
       excludeDeclarationsFromPCH,
       displayDiagnostics,
     );
   }
 
-  _dart_clang_createIndex? _clang_createIndex;
+  late final _clang_createIndex_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_createIndex>>(
+          'clang_createIndex');
+  late final _dart_clang_createIndex _clang_createIndex =
+      _clang_createIndex_ptr.asFunction<_dart_clang_createIndex>();
 
   /// Destroy the given index.
   ///
@@ -123,14 +128,16 @@
   void clang_disposeIndex(
     ffi.Pointer<ffi.Void> index,
   ) {
-    return (_clang_disposeIndex ??=
-        _lookup<ffi.NativeFunction<_c_clang_disposeIndex>>('clang_disposeIndex')
-            .asFunction<_dart_clang_disposeIndex>())(
+    return _clang_disposeIndex(
       index,
     );
   }
 
-  _dart_clang_disposeIndex? _clang_disposeIndex;
+  late final _clang_disposeIndex_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_disposeIndex>>(
+          'clang_disposeIndex');
+  late final _dart_clang_disposeIndex _clang_disposeIndex =
+      _clang_disposeIndex_ptr.asFunction<_dart_clang_disposeIndex>();
 
   /// Sets general options associated with a CXIndex.
   ///
@@ -147,16 +154,18 @@
     ffi.Pointer<ffi.Void> arg0,
     int options,
   ) {
-    return (_clang_CXIndex_setGlobalOptions ??=
-        _lookup<ffi.NativeFunction<_c_clang_CXIndex_setGlobalOptions>>(
-                'clang_CXIndex_setGlobalOptions')
-            .asFunction<_dart_clang_CXIndex_setGlobalOptions>())(
+    return _clang_CXIndex_setGlobalOptions(
       arg0,
       options,
     );
   }
 
-  _dart_clang_CXIndex_setGlobalOptions? _clang_CXIndex_setGlobalOptions;
+  late final _clang_CXIndex_setGlobalOptions_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_CXIndex_setGlobalOptions>>(
+          'clang_CXIndex_setGlobalOptions');
+  late final _dart_clang_CXIndex_setGlobalOptions
+      _clang_CXIndex_setGlobalOptions = _clang_CXIndex_setGlobalOptions_ptr
+          .asFunction<_dart_clang_CXIndex_setGlobalOptions>();
 
   /// Gets the general options associated with a CXIndex.
   ///
@@ -165,15 +174,17 @@
   int clang_CXIndex_getGlobalOptions(
     ffi.Pointer<ffi.Void> arg0,
   ) {
-    return (_clang_CXIndex_getGlobalOptions ??=
-        _lookup<ffi.NativeFunction<_c_clang_CXIndex_getGlobalOptions>>(
-                'clang_CXIndex_getGlobalOptions')
-            .asFunction<_dart_clang_CXIndex_getGlobalOptions>())(
+    return _clang_CXIndex_getGlobalOptions(
       arg0,
     );
   }
 
-  _dart_clang_CXIndex_getGlobalOptions? _clang_CXIndex_getGlobalOptions;
+  late final _clang_CXIndex_getGlobalOptions_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_CXIndex_getGlobalOptions>>(
+          'clang_CXIndex_getGlobalOptions');
+  late final _dart_clang_CXIndex_getGlobalOptions
+      _clang_CXIndex_getGlobalOptions = _clang_CXIndex_getGlobalOptions_ptr
+          .asFunction<_dart_clang_CXIndex_getGlobalOptions>();
 
   /// Sets the invocation emission path option in a CXIndex.
   ///
@@ -184,44 +195,50 @@
     ffi.Pointer<ffi.Void> arg0,
     ffi.Pointer<ffi.Int8> Path,
   ) {
-    return (_clang_CXIndex_setInvocationEmissionPathOption ??= _lookup<
-                ffi.NativeFunction<
-                    _c_clang_CXIndex_setInvocationEmissionPathOption>>(
-            'clang_CXIndex_setInvocationEmissionPathOption')
-        .asFunction<_dart_clang_CXIndex_setInvocationEmissionPathOption>())(
+    return _clang_CXIndex_setInvocationEmissionPathOption(
       arg0,
       Path,
     );
   }
 
-  _dart_clang_CXIndex_setInvocationEmissionPathOption?
-      _clang_CXIndex_setInvocationEmissionPathOption;
+  late final _clang_CXIndex_setInvocationEmissionPathOption_ptr = _lookup<
+          ffi.NativeFunction<
+              Native_clang_CXIndex_setInvocationEmissionPathOption>>(
+      'clang_CXIndex_setInvocationEmissionPathOption');
+  late final _dart_clang_CXIndex_setInvocationEmissionPathOption
+      _clang_CXIndex_setInvocationEmissionPathOption =
+      _clang_CXIndex_setInvocationEmissionPathOption_ptr
+          .asFunction<_dart_clang_CXIndex_setInvocationEmissionPathOption>();
 
   /// Retrieve the complete file and path name of the given file.
   CXString clang_getFileName(
     ffi.Pointer<ffi.Void> SFile,
   ) {
-    return (_clang_getFileName ??=
-        _lookup<ffi.NativeFunction<_c_clang_getFileName>>('clang_getFileName')
-            .asFunction<_dart_clang_getFileName>())(
+    return _clang_getFileName(
       SFile,
     );
   }
 
-  _dart_clang_getFileName? _clang_getFileName;
+  late final _clang_getFileName_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_getFileName>>(
+          'clang_getFileName');
+  late final _dart_clang_getFileName _clang_getFileName =
+      _clang_getFileName_ptr.asFunction<_dart_clang_getFileName>();
 
   /// Retrieve the last modification time of the given file.
   int clang_getFileTime(
     ffi.Pointer<ffi.Void> SFile,
   ) {
-    return (_clang_getFileTime ??=
-        _lookup<ffi.NativeFunction<_c_clang_getFileTime>>('clang_getFileTime')
-            .asFunction<_dart_clang_getFileTime>())(
+    return _clang_getFileTime(
       SFile,
     );
   }
 
-  _dart_clang_getFileTime? _clang_getFileTime;
+  late final _clang_getFileTime_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_getFileTime>>(
+          'clang_getFileTime');
+  late final _dart_clang_getFileTime _clang_getFileTime =
+      _clang_getFileTime_ptr.asFunction<_dart_clang_getFileTime>();
 
   /// Retrieve the unique ID for the given \c file.
   ///
@@ -233,16 +250,17 @@
     ffi.Pointer<ffi.Void> file,
     ffi.Pointer<CXFileUniqueID> outID,
   ) {
-    return (_clang_getFileUniqueID ??=
-        _lookup<ffi.NativeFunction<_c_clang_getFileUniqueID>>(
-                'clang_getFileUniqueID')
-            .asFunction<_dart_clang_getFileUniqueID>())(
+    return _clang_getFileUniqueID(
       file,
       outID,
     );
   }
 
-  _dart_clang_getFileUniqueID? _clang_getFileUniqueID;
+  late final _clang_getFileUniqueID_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_getFileUniqueID>>(
+          'clang_getFileUniqueID');
+  late final _dart_clang_getFileUniqueID _clang_getFileUniqueID =
+      _clang_getFileUniqueID_ptr.asFunction<_dart_clang_getFileUniqueID>();
 
   /// Determine whether the given header is guarded against
   /// multiple inclusions, either with the conventional
@@ -251,16 +269,19 @@
     ffi.Pointer<CXTranslationUnitImpl> tu,
     ffi.Pointer<ffi.Void> file,
   ) {
-    return (_clang_isFileMultipleIncludeGuarded ??=
-        _lookup<ffi.NativeFunction<_c_clang_isFileMultipleIncludeGuarded>>(
-                'clang_isFileMultipleIncludeGuarded')
-            .asFunction<_dart_clang_isFileMultipleIncludeGuarded>())(
+    return _clang_isFileMultipleIncludeGuarded(
       tu,
       file,
     );
   }
 
-  _dart_clang_isFileMultipleIncludeGuarded? _clang_isFileMultipleIncludeGuarded;
+  late final _clang_isFileMultipleIncludeGuarded_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_isFileMultipleIncludeGuarded>>(
+          'clang_isFileMultipleIncludeGuarded');
+  late final _dart_clang_isFileMultipleIncludeGuarded
+      _clang_isFileMultipleIncludeGuarded =
+      _clang_isFileMultipleIncludeGuarded_ptr
+          .asFunction<_dart_clang_isFileMultipleIncludeGuarded>();
 
   /// Retrieve a file handle within the given translation unit.
   ///
@@ -274,15 +295,16 @@
     ffi.Pointer<CXTranslationUnitImpl> tu,
     ffi.Pointer<ffi.Int8> file_name,
   ) {
-    return (_clang_getFile ??=
-        _lookup<ffi.NativeFunction<_c_clang_getFile>>('clang_getFile')
-            .asFunction<_dart_clang_getFile>())(
+    return _clang_getFile(
       tu,
       file_name,
     );
   }
 
-  _dart_clang_getFile? _clang_getFile;
+  late final _clang_getFile_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_getFile>>('clang_getFile');
+  late final _dart_clang_getFile _clang_getFile =
+      _clang_getFile_ptr.asFunction<_dart_clang_getFile>();
 
   /// Retrieve the buffer associated with the given file.
   ///
@@ -299,17 +321,18 @@
     ffi.Pointer<ffi.Void> file,
     ffi.Pointer<ffi.Uint64> size,
   ) {
-    return (_clang_getFileContents ??=
-        _lookup<ffi.NativeFunction<_c_clang_getFileContents>>(
-                'clang_getFileContents')
-            .asFunction<_dart_clang_getFileContents>())(
+    return _clang_getFileContents(
       tu,
       file,
       size,
     );
   }
 
-  _dart_clang_getFileContents? _clang_getFileContents;
+  late final _clang_getFileContents_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_getFileContents>>(
+          'clang_getFileContents');
+  late final _dart_clang_getFileContents _clang_getFileContents =
+      _clang_getFileContents_ptr.asFunction<_dart_clang_getFileContents>();
 
   /// Returns non-zero if the \c file1 and \c file2 point to the same file,
   /// or they are both NULL.
@@ -317,15 +340,17 @@
     ffi.Pointer<ffi.Void> file1,
     ffi.Pointer<ffi.Void> file2,
   ) {
-    return (_clang_File_isEqual ??=
-        _lookup<ffi.NativeFunction<_c_clang_File_isEqual>>('clang_File_isEqual')
-            .asFunction<_dart_clang_File_isEqual>())(
+    return _clang_File_isEqual(
       file1,
       file2,
     );
   }
 
-  _dart_clang_File_isEqual? _clang_File_isEqual;
+  late final _clang_File_isEqual_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_File_isEqual>>(
+          'clang_File_isEqual');
+  late final _dart_clang_File_isEqual _clang_File_isEqual =
+      _clang_File_isEqual_ptr.asFunction<_dart_clang_File_isEqual>();
 
   /// Returns the real path name of \c file.
   ///
@@ -333,25 +358,28 @@
   CXString clang_File_tryGetRealPathName(
     ffi.Pointer<ffi.Void> file,
   ) {
-    return (_clang_File_tryGetRealPathName ??=
-        _lookup<ffi.NativeFunction<_c_clang_File_tryGetRealPathName>>(
-                'clang_File_tryGetRealPathName')
-            .asFunction<_dart_clang_File_tryGetRealPathName>())(
+    return _clang_File_tryGetRealPathName(
       file,
     );
   }
 
-  _dart_clang_File_tryGetRealPathName? _clang_File_tryGetRealPathName;
+  late final _clang_File_tryGetRealPathName_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_File_tryGetRealPathName>>(
+          'clang_File_tryGetRealPathName');
+  late final _dart_clang_File_tryGetRealPathName
+      _clang_File_tryGetRealPathName = _clang_File_tryGetRealPathName_ptr
+          .asFunction<_dart_clang_File_tryGetRealPathName>();
 
   /// Retrieve a NULL (invalid) source location.
   CXSourceLocation clang_getNullLocation() {
-    return (_clang_getNullLocation ??=
-        _lookup<ffi.NativeFunction<_c_clang_getNullLocation>>(
-                'clang_getNullLocation')
-            .asFunction<_dart_clang_getNullLocation>())();
+    return _clang_getNullLocation();
   }
 
-  _dart_clang_getNullLocation? _clang_getNullLocation;
+  late final _clang_getNullLocation_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_getNullLocation>>(
+          'clang_getNullLocation');
+  late final _dart_clang_getNullLocation _clang_getNullLocation =
+      _clang_getNullLocation_ptr.asFunction<_dart_clang_getNullLocation>();
 
   /// Determine whether two source locations, which must refer into
   /// the same translation unit, refer to exactly the same point in the source
@@ -363,16 +391,17 @@
     CXSourceLocation loc1,
     CXSourceLocation loc2,
   ) {
-    return (_clang_equalLocations ??=
-        _lookup<ffi.NativeFunction<_c_clang_equalLocations>>(
-                'clang_equalLocations')
-            .asFunction<_dart_clang_equalLocations>())(
+    return _clang_equalLocations(
       loc1,
       loc2,
     );
   }
 
-  _dart_clang_equalLocations? _clang_equalLocations;
+  late final _clang_equalLocations_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_equalLocations>>(
+          'clang_equalLocations');
+  late final _dart_clang_equalLocations _clang_equalLocations =
+      _clang_equalLocations_ptr.asFunction<_dart_clang_equalLocations>();
 
   /// Retrieves the source location associated with a given file/line/column
   /// in a particular translation unit.
@@ -382,9 +411,7 @@
     int line,
     int column,
   ) {
-    return (_clang_getLocation ??=
-        _lookup<ffi.NativeFunction<_c_clang_getLocation>>('clang_getLocation')
-            .asFunction<_dart_clang_getLocation>())(
+    return _clang_getLocation(
       tu,
       file,
       line,
@@ -392,7 +419,11 @@
     );
   }
 
-  _dart_clang_getLocation? _clang_getLocation;
+  late final _clang_getLocation_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_getLocation>>(
+          'clang_getLocation');
+  late final _dart_clang_getLocation _clang_getLocation =
+      _clang_getLocation_ptr.asFunction<_dart_clang_getLocation>();
 
   /// Retrieves the source location associated with a given character offset
   /// in a particular translation unit.
@@ -401,55 +432,63 @@
     ffi.Pointer<ffi.Void> file,
     int offset,
   ) {
-    return (_clang_getLocationForOffset ??=
-        _lookup<ffi.NativeFunction<_c_clang_getLocationForOffset>>(
-                'clang_getLocationForOffset')
-            .asFunction<_dart_clang_getLocationForOffset>())(
+    return _clang_getLocationForOffset(
       tu,
       file,
       offset,
     );
   }
 
-  _dart_clang_getLocationForOffset? _clang_getLocationForOffset;
+  late final _clang_getLocationForOffset_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_getLocationForOffset>>(
+          'clang_getLocationForOffset');
+  late final _dart_clang_getLocationForOffset _clang_getLocationForOffset =
+      _clang_getLocationForOffset_ptr
+          .asFunction<_dart_clang_getLocationForOffset>();
 
   /// Returns non-zero if the given source location is in a system header.
   int clang_Location_isInSystemHeader(
     CXSourceLocation location,
   ) {
-    return (_clang_Location_isInSystemHeader ??=
-        _lookup<ffi.NativeFunction<_c_clang_Location_isInSystemHeader>>(
-                'clang_Location_isInSystemHeader')
-            .asFunction<_dart_clang_Location_isInSystemHeader>())(
+    return _clang_Location_isInSystemHeader(
       location,
     );
   }
 
-  _dart_clang_Location_isInSystemHeader? _clang_Location_isInSystemHeader;
+  late final _clang_Location_isInSystemHeader_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_Location_isInSystemHeader>>(
+          'clang_Location_isInSystemHeader');
+  late final _dart_clang_Location_isInSystemHeader
+      _clang_Location_isInSystemHeader = _clang_Location_isInSystemHeader_ptr
+          .asFunction<_dart_clang_Location_isInSystemHeader>();
 
   /// Returns non-zero if the given source location is in the main file of
   /// the corresponding translation unit.
   int clang_Location_isFromMainFile(
     CXSourceLocation location,
   ) {
-    return (_clang_Location_isFromMainFile ??=
-        _lookup<ffi.NativeFunction<_c_clang_Location_isFromMainFile>>(
-                'clang_Location_isFromMainFile')
-            .asFunction<_dart_clang_Location_isFromMainFile>())(
+    return _clang_Location_isFromMainFile(
       location,
     );
   }
 
-  _dart_clang_Location_isFromMainFile? _clang_Location_isFromMainFile;
+  late final _clang_Location_isFromMainFile_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_Location_isFromMainFile>>(
+          'clang_Location_isFromMainFile');
+  late final _dart_clang_Location_isFromMainFile
+      _clang_Location_isFromMainFile = _clang_Location_isFromMainFile_ptr
+          .asFunction<_dart_clang_Location_isFromMainFile>();
 
   /// Retrieve a NULL (invalid) source range.
   CXSourceRange clang_getNullRange() {
-    return (_clang_getNullRange ??=
-        _lookup<ffi.NativeFunction<_c_clang_getNullRange>>('clang_getNullRange')
-            .asFunction<_dart_clang_getNullRange>())();
+    return _clang_getNullRange();
   }
 
-  _dart_clang_getNullRange? _clang_getNullRange;
+  late final _clang_getNullRange_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_getNullRange>>(
+          'clang_getNullRange');
+  late final _dart_clang_getNullRange _clang_getNullRange =
+      _clang_getNullRange_ptr.asFunction<_dart_clang_getNullRange>();
 
   /// Retrieve a source range given the beginning and ending source
   /// locations.
@@ -457,15 +496,16 @@
     CXSourceLocation begin,
     CXSourceLocation end,
   ) {
-    return (_clang_getRange ??=
-        _lookup<ffi.NativeFunction<_c_clang_getRange>>('clang_getRange')
-            .asFunction<_dart_clang_getRange>())(
+    return _clang_getRange(
       begin,
       end,
     );
   }
 
-  _dart_clang_getRange? _clang_getRange;
+  late final _clang_getRange_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_getRange>>('clang_getRange');
+  late final _dart_clang_getRange _clang_getRange =
+      _clang_getRange_ptr.asFunction<_dart_clang_getRange>();
 
   /// Determine whether two ranges are equivalent.
   ///
@@ -474,28 +514,32 @@
     CXSourceRange range1,
     CXSourceRange range2,
   ) {
-    return (_clang_equalRanges ??=
-        _lookup<ffi.NativeFunction<_c_clang_equalRanges>>('clang_equalRanges')
-            .asFunction<_dart_clang_equalRanges>())(
+    return _clang_equalRanges(
       range1,
       range2,
     );
   }
 
-  _dart_clang_equalRanges? _clang_equalRanges;
+  late final _clang_equalRanges_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_equalRanges>>(
+          'clang_equalRanges');
+  late final _dart_clang_equalRanges _clang_equalRanges =
+      _clang_equalRanges_ptr.asFunction<_dart_clang_equalRanges>();
 
   /// Returns non-zero if \p range is null.
   int clang_Range_isNull(
     CXSourceRange range,
   ) {
-    return (_clang_Range_isNull ??=
-        _lookup<ffi.NativeFunction<_c_clang_Range_isNull>>('clang_Range_isNull')
-            .asFunction<_dart_clang_Range_isNull>())(
+    return _clang_Range_isNull(
       range,
     );
   }
 
-  _dart_clang_Range_isNull? _clang_Range_isNull;
+  late final _clang_Range_isNull_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_Range_isNull>>(
+          'clang_Range_isNull');
+  late final _dart_clang_Range_isNull _clang_Range_isNull =
+      _clang_Range_isNull_ptr.asFunction<_dart_clang_Range_isNull>();
 
   /// Retrieve the file, line, column, and offset represented by
   /// the given source location.
@@ -524,10 +568,7 @@
     ffi.Pointer<ffi.Uint32> column,
     ffi.Pointer<ffi.Uint32> offset,
   ) {
-    return (_clang_getExpansionLocation ??=
-        _lookup<ffi.NativeFunction<_c_clang_getExpansionLocation>>(
-                'clang_getExpansionLocation')
-            .asFunction<_dart_clang_getExpansionLocation>())(
+    return _clang_getExpansionLocation(
       location,
       file,
       line,
@@ -536,7 +577,12 @@
     );
   }
 
-  _dart_clang_getExpansionLocation? _clang_getExpansionLocation;
+  late final _clang_getExpansionLocation_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_getExpansionLocation>>(
+          'clang_getExpansionLocation');
+  late final _dart_clang_getExpansionLocation _clang_getExpansionLocation =
+      _clang_getExpansionLocation_ptr
+          .asFunction<_dart_clang_getExpansionLocation>();
 
   /// Retrieve the file, line and column represented by the given source
   /// location, as specified in a # line directive.
@@ -582,10 +628,7 @@
     ffi.Pointer<ffi.Uint32> line,
     ffi.Pointer<ffi.Uint32> column,
   ) {
-    return (_clang_getPresumedLocation ??=
-        _lookup<ffi.NativeFunction<_c_clang_getPresumedLocation>>(
-                'clang_getPresumedLocation')
-            .asFunction<_dart_clang_getPresumedLocation>())(
+    return _clang_getPresumedLocation(
       location,
       filename,
       line,
@@ -593,7 +636,12 @@
     );
   }
 
-  _dart_clang_getPresumedLocation? _clang_getPresumedLocation;
+  late final _clang_getPresumedLocation_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_getPresumedLocation>>(
+          'clang_getPresumedLocation');
+  late final _dart_clang_getPresumedLocation _clang_getPresumedLocation =
+      _clang_getPresumedLocation_ptr
+          .asFunction<_dart_clang_getPresumedLocation>();
 
   /// Legacy API to retrieve the file, line, column, and offset represented
   /// by the given source location.
@@ -608,10 +656,7 @@
     ffi.Pointer<ffi.Uint32> column,
     ffi.Pointer<ffi.Uint32> offset,
   ) {
-    return (_clang_getInstantiationLocation ??=
-        _lookup<ffi.NativeFunction<_c_clang_getInstantiationLocation>>(
-                'clang_getInstantiationLocation')
-            .asFunction<_dart_clang_getInstantiationLocation>())(
+    return _clang_getInstantiationLocation(
       location,
       file,
       line,
@@ -620,7 +665,12 @@
     );
   }
 
-  _dart_clang_getInstantiationLocation? _clang_getInstantiationLocation;
+  late final _clang_getInstantiationLocation_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_getInstantiationLocation>>(
+          'clang_getInstantiationLocation');
+  late final _dart_clang_getInstantiationLocation
+      _clang_getInstantiationLocation = _clang_getInstantiationLocation_ptr
+          .asFunction<_dart_clang_getInstantiationLocation>();
 
   /// Retrieve the file, line, column, and offset represented by
   /// the given source location.
@@ -649,10 +699,7 @@
     ffi.Pointer<ffi.Uint32> column,
     ffi.Pointer<ffi.Uint32> offset,
   ) {
-    return (_clang_getSpellingLocation ??=
-        _lookup<ffi.NativeFunction<_c_clang_getSpellingLocation>>(
-                'clang_getSpellingLocation')
-            .asFunction<_dart_clang_getSpellingLocation>())(
+    return _clang_getSpellingLocation(
       location,
       file,
       line,
@@ -661,7 +708,12 @@
     );
   }
 
-  _dart_clang_getSpellingLocation? _clang_getSpellingLocation;
+  late final _clang_getSpellingLocation_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_getSpellingLocation>>(
+          'clang_getSpellingLocation');
+  late final _dart_clang_getSpellingLocation _clang_getSpellingLocation =
+      _clang_getSpellingLocation_ptr
+          .asFunction<_dart_clang_getSpellingLocation>();
 
   /// Retrieve the file, line, column, and offset represented by
   /// the given source location.
@@ -691,10 +743,7 @@
     ffi.Pointer<ffi.Uint32> column,
     ffi.Pointer<ffi.Uint32> offset,
   ) {
-    return (_clang_getFileLocation ??=
-        _lookup<ffi.NativeFunction<_c_clang_getFileLocation>>(
-                'clang_getFileLocation')
-            .asFunction<_dart_clang_getFileLocation>())(
+    return _clang_getFileLocation(
       location,
       file,
       line,
@@ -703,36 +752,43 @@
     );
   }
 
-  _dart_clang_getFileLocation? _clang_getFileLocation;
+  late final _clang_getFileLocation_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_getFileLocation>>(
+          'clang_getFileLocation');
+  late final _dart_clang_getFileLocation _clang_getFileLocation =
+      _clang_getFileLocation_ptr.asFunction<_dart_clang_getFileLocation>();
 
   /// Retrieve a source location representing the first character within a
   /// source range.
   CXSourceLocation clang_getRangeStart(
     CXSourceRange range,
   ) {
-    return (_clang_getRangeStart ??=
-        _lookup<ffi.NativeFunction<_c_clang_getRangeStart>>(
-                'clang_getRangeStart')
-            .asFunction<_dart_clang_getRangeStart>())(
+    return _clang_getRangeStart(
       range,
     );
   }
 
-  _dart_clang_getRangeStart? _clang_getRangeStart;
+  late final _clang_getRangeStart_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_getRangeStart>>(
+          'clang_getRangeStart');
+  late final _dart_clang_getRangeStart _clang_getRangeStart =
+      _clang_getRangeStart_ptr.asFunction<_dart_clang_getRangeStart>();
 
   /// Retrieve a source location representing the last character within a
   /// source range.
   CXSourceLocation clang_getRangeEnd(
     CXSourceRange range,
   ) {
-    return (_clang_getRangeEnd ??=
-        _lookup<ffi.NativeFunction<_c_clang_getRangeEnd>>('clang_getRangeEnd')
-            .asFunction<_dart_clang_getRangeEnd>())(
+    return _clang_getRangeEnd(
       range,
     );
   }
 
-  _dart_clang_getRangeEnd? _clang_getRangeEnd;
+  late final _clang_getRangeEnd_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_getRangeEnd>>(
+          'clang_getRangeEnd');
+  late final _dart_clang_getRangeEnd _clang_getRangeEnd =
+      _clang_getRangeEnd_ptr.asFunction<_dart_clang_getRangeEnd>();
 
   /// Retrieve all ranges that were skipped by the preprocessor.
   ///
@@ -742,16 +798,17 @@
     ffi.Pointer<CXTranslationUnitImpl> tu,
     ffi.Pointer<ffi.Void> file,
   ) {
-    return (_clang_getSkippedRanges ??=
-        _lookup<ffi.NativeFunction<_c_clang_getSkippedRanges>>(
-                'clang_getSkippedRanges')
-            .asFunction<_dart_clang_getSkippedRanges>())(
+    return _clang_getSkippedRanges(
       tu,
       file,
     );
   }
 
-  _dart_clang_getSkippedRanges? _clang_getSkippedRanges;
+  late final _clang_getSkippedRanges_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_getSkippedRanges>>(
+          'clang_getSkippedRanges');
+  late final _dart_clang_getSkippedRanges _clang_getSkippedRanges =
+      _clang_getSkippedRanges_ptr.asFunction<_dart_clang_getSkippedRanges>();
 
   /// Retrieve all ranges from all files that were skipped by the
   /// preprocessor.
@@ -761,43 +818,49 @@
   ffi.Pointer<CXSourceRangeList> clang_getAllSkippedRanges(
     ffi.Pointer<CXTranslationUnitImpl> tu,
   ) {
-    return (_clang_getAllSkippedRanges ??=
-        _lookup<ffi.NativeFunction<_c_clang_getAllSkippedRanges>>(
-                'clang_getAllSkippedRanges')
-            .asFunction<_dart_clang_getAllSkippedRanges>())(
+    return _clang_getAllSkippedRanges(
       tu,
     );
   }
 
-  _dart_clang_getAllSkippedRanges? _clang_getAllSkippedRanges;
+  late final _clang_getAllSkippedRanges_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_getAllSkippedRanges>>(
+          'clang_getAllSkippedRanges');
+  late final _dart_clang_getAllSkippedRanges _clang_getAllSkippedRanges =
+      _clang_getAllSkippedRanges_ptr
+          .asFunction<_dart_clang_getAllSkippedRanges>();
 
   /// Destroy the given \c CXSourceRangeList.
   void clang_disposeSourceRangeList(
     ffi.Pointer<CXSourceRangeList> ranges,
   ) {
-    return (_clang_disposeSourceRangeList ??=
-        _lookup<ffi.NativeFunction<_c_clang_disposeSourceRangeList>>(
-                'clang_disposeSourceRangeList')
-            .asFunction<_dart_clang_disposeSourceRangeList>())(
+    return _clang_disposeSourceRangeList(
       ranges,
     );
   }
 
-  _dart_clang_disposeSourceRangeList? _clang_disposeSourceRangeList;
+  late final _clang_disposeSourceRangeList_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_disposeSourceRangeList>>(
+          'clang_disposeSourceRangeList');
+  late final _dart_clang_disposeSourceRangeList _clang_disposeSourceRangeList =
+      _clang_disposeSourceRangeList_ptr
+          .asFunction<_dart_clang_disposeSourceRangeList>();
 
   /// Determine the number of diagnostics in a CXDiagnosticSet.
   int clang_getNumDiagnosticsInSet(
     ffi.Pointer<ffi.Void> Diags,
   ) {
-    return (_clang_getNumDiagnosticsInSet ??=
-        _lookup<ffi.NativeFunction<_c_clang_getNumDiagnosticsInSet>>(
-                'clang_getNumDiagnosticsInSet')
-            .asFunction<_dart_clang_getNumDiagnosticsInSet>())(
+    return _clang_getNumDiagnosticsInSet(
       Diags,
     );
   }
 
-  _dart_clang_getNumDiagnosticsInSet? _clang_getNumDiagnosticsInSet;
+  late final _clang_getNumDiagnosticsInSet_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_getNumDiagnosticsInSet>>(
+          'clang_getNumDiagnosticsInSet');
+  late final _dart_clang_getNumDiagnosticsInSet _clang_getNumDiagnosticsInSet =
+      _clang_getNumDiagnosticsInSet_ptr
+          .asFunction<_dart_clang_getNumDiagnosticsInSet>();
 
   /// Retrieve a diagnostic associated with the given CXDiagnosticSet.
   ///
@@ -810,16 +873,18 @@
     ffi.Pointer<ffi.Void> Diags,
     int Index,
   ) {
-    return (_clang_getDiagnosticInSet ??=
-        _lookup<ffi.NativeFunction<_c_clang_getDiagnosticInSet>>(
-                'clang_getDiagnosticInSet')
-            .asFunction<_dart_clang_getDiagnosticInSet>())(
+    return _clang_getDiagnosticInSet(
       Diags,
       Index,
     );
   }
 
-  _dart_clang_getDiagnosticInSet? _clang_getDiagnosticInSet;
+  late final _clang_getDiagnosticInSet_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_getDiagnosticInSet>>(
+          'clang_getDiagnosticInSet');
+  late final _dart_clang_getDiagnosticInSet _clang_getDiagnosticInSet =
+      _clang_getDiagnosticInSet_ptr
+          .asFunction<_dart_clang_getDiagnosticInSet>();
 
   /// Deserialize a set of diagnostics from a Clang diagnostics bitcode
   /// file.
@@ -837,31 +902,34 @@
     ffi.Pointer<ffi.Int32> error,
     ffi.Pointer<CXString> errorString,
   ) {
-    return (_clang_loadDiagnostics ??=
-        _lookup<ffi.NativeFunction<_c_clang_loadDiagnostics>>(
-                'clang_loadDiagnostics')
-            .asFunction<_dart_clang_loadDiagnostics>())(
+    return _clang_loadDiagnostics(
       file,
       error,
       errorString,
     );
   }
 
-  _dart_clang_loadDiagnostics? _clang_loadDiagnostics;
+  late final _clang_loadDiagnostics_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_loadDiagnostics>>(
+          'clang_loadDiagnostics');
+  late final _dart_clang_loadDiagnostics _clang_loadDiagnostics =
+      _clang_loadDiagnostics_ptr.asFunction<_dart_clang_loadDiagnostics>();
 
   /// Release a CXDiagnosticSet and all of its contained diagnostics.
   void clang_disposeDiagnosticSet(
     ffi.Pointer<ffi.Void> Diags,
   ) {
-    return (_clang_disposeDiagnosticSet ??=
-        _lookup<ffi.NativeFunction<_c_clang_disposeDiagnosticSet>>(
-                'clang_disposeDiagnosticSet')
-            .asFunction<_dart_clang_disposeDiagnosticSet>())(
+    return _clang_disposeDiagnosticSet(
       Diags,
     );
   }
 
-  _dart_clang_disposeDiagnosticSet? _clang_disposeDiagnosticSet;
+  late final _clang_disposeDiagnosticSet_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_disposeDiagnosticSet>>(
+          'clang_disposeDiagnosticSet');
+  late final _dart_clang_disposeDiagnosticSet _clang_disposeDiagnosticSet =
+      _clang_disposeDiagnosticSet_ptr
+          .asFunction<_dart_clang_disposeDiagnosticSet>();
 
   /// Retrieve the child diagnostics of a CXDiagnostic.
   ///
@@ -870,30 +938,33 @@
   ffi.Pointer<ffi.Void> clang_getChildDiagnostics(
     ffi.Pointer<ffi.Void> D,
   ) {
-    return (_clang_getChildDiagnostics ??=
-        _lookup<ffi.NativeFunction<_c_clang_getChildDiagnostics>>(
-                'clang_getChildDiagnostics')
-            .asFunction<_dart_clang_getChildDiagnostics>())(
+    return _clang_getChildDiagnostics(
       D,
     );
   }
 
-  _dart_clang_getChildDiagnostics? _clang_getChildDiagnostics;
+  late final _clang_getChildDiagnostics_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_getChildDiagnostics>>(
+          'clang_getChildDiagnostics');
+  late final _dart_clang_getChildDiagnostics _clang_getChildDiagnostics =
+      _clang_getChildDiagnostics_ptr
+          .asFunction<_dart_clang_getChildDiagnostics>();
 
   /// Determine the number of diagnostics produced for the given
   /// translation unit.
   int clang_getNumDiagnostics(
     ffi.Pointer<CXTranslationUnitImpl> Unit,
   ) {
-    return (_clang_getNumDiagnostics ??=
-        _lookup<ffi.NativeFunction<_c_clang_getNumDiagnostics>>(
-                'clang_getNumDiagnostics')
-            .asFunction<_dart_clang_getNumDiagnostics>())(
+    return _clang_getNumDiagnostics(
       Unit,
     );
   }
 
-  _dart_clang_getNumDiagnostics? _clang_getNumDiagnostics;
+  late final _clang_getNumDiagnostics_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_getNumDiagnostics>>(
+          'clang_getNumDiagnostics');
+  late final _dart_clang_getNumDiagnostics _clang_getNumDiagnostics =
+      _clang_getNumDiagnostics_ptr.asFunction<_dart_clang_getNumDiagnostics>();
 
   /// Retrieve a diagnostic associated with the given translation unit.
   ///
@@ -906,16 +977,17 @@
     ffi.Pointer<CXTranslationUnitImpl> Unit,
     int Index,
   ) {
-    return (_clang_getDiagnostic ??=
-        _lookup<ffi.NativeFunction<_c_clang_getDiagnostic>>(
-                'clang_getDiagnostic')
-            .asFunction<_dart_clang_getDiagnostic>())(
+    return _clang_getDiagnostic(
       Unit,
       Index,
     );
   }
 
-  _dart_clang_getDiagnostic? _clang_getDiagnostic;
+  late final _clang_getDiagnostic_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_getDiagnostic>>(
+          'clang_getDiagnostic');
+  late final _dart_clang_getDiagnostic _clang_getDiagnostic =
+      _clang_getDiagnostic_ptr.asFunction<_dart_clang_getDiagnostic>();
 
   /// Retrieve the complete set of diagnostics associated with a
   /// translation unit.
@@ -924,29 +996,32 @@
   ffi.Pointer<ffi.Void> clang_getDiagnosticSetFromTU(
     ffi.Pointer<CXTranslationUnitImpl> Unit,
   ) {
-    return (_clang_getDiagnosticSetFromTU ??=
-        _lookup<ffi.NativeFunction<_c_clang_getDiagnosticSetFromTU>>(
-                'clang_getDiagnosticSetFromTU')
-            .asFunction<_dart_clang_getDiagnosticSetFromTU>())(
+    return _clang_getDiagnosticSetFromTU(
       Unit,
     );
   }
 
-  _dart_clang_getDiagnosticSetFromTU? _clang_getDiagnosticSetFromTU;
+  late final _clang_getDiagnosticSetFromTU_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_getDiagnosticSetFromTU>>(
+          'clang_getDiagnosticSetFromTU');
+  late final _dart_clang_getDiagnosticSetFromTU _clang_getDiagnosticSetFromTU =
+      _clang_getDiagnosticSetFromTU_ptr
+          .asFunction<_dart_clang_getDiagnosticSetFromTU>();
 
   /// Destroy a diagnostic.
   void clang_disposeDiagnostic(
     ffi.Pointer<ffi.Void> Diagnostic,
   ) {
-    return (_clang_disposeDiagnostic ??=
-        _lookup<ffi.NativeFunction<_c_clang_disposeDiagnostic>>(
-                'clang_disposeDiagnostic')
-            .asFunction<_dart_clang_disposeDiagnostic>())(
+    return _clang_disposeDiagnostic(
       Diagnostic,
     );
   }
 
-  _dart_clang_disposeDiagnostic? _clang_disposeDiagnostic;
+  late final _clang_disposeDiagnostic_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_disposeDiagnostic>>(
+          'clang_disposeDiagnostic');
+  late final _dart_clang_disposeDiagnostic _clang_disposeDiagnostic =
+      _clang_disposeDiagnostic_ptr.asFunction<_dart_clang_disposeDiagnostic>();
 
   /// Format the given diagnostic in a manner that is suitable for display.
   ///
@@ -965,16 +1040,17 @@
     ffi.Pointer<ffi.Void> Diagnostic,
     int Options,
   ) {
-    return (_clang_formatDiagnostic ??=
-        _lookup<ffi.NativeFunction<_c_clang_formatDiagnostic>>(
-                'clang_formatDiagnostic')
-            .asFunction<_dart_clang_formatDiagnostic>())(
+    return _clang_formatDiagnostic(
       Diagnostic,
       Options,
     );
   }
 
-  _dart_clang_formatDiagnostic? _clang_formatDiagnostic;
+  late final _clang_formatDiagnostic_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_formatDiagnostic>>(
+          'clang_formatDiagnostic');
+  late final _dart_clang_formatDiagnostic _clang_formatDiagnostic =
+      _clang_formatDiagnostic_ptr.asFunction<_dart_clang_formatDiagnostic>();
 
   /// Retrieve the set of display options most similar to the
   /// default behavior of the clang compiler.
@@ -982,28 +1058,32 @@
   /// \returns A set of display options suitable for use with \c
   /// clang_formatDiagnostic().
   int clang_defaultDiagnosticDisplayOptions() {
-    return (_clang_defaultDiagnosticDisplayOptions ??=
-        _lookup<ffi.NativeFunction<_c_clang_defaultDiagnosticDisplayOptions>>(
-                'clang_defaultDiagnosticDisplayOptions')
-            .asFunction<_dart_clang_defaultDiagnosticDisplayOptions>())();
+    return _clang_defaultDiagnosticDisplayOptions();
   }
 
-  _dart_clang_defaultDiagnosticDisplayOptions?
-      _clang_defaultDiagnosticDisplayOptions;
+  late final _clang_defaultDiagnosticDisplayOptions_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_defaultDiagnosticDisplayOptions>>(
+          'clang_defaultDiagnosticDisplayOptions');
+  late final _dart_clang_defaultDiagnosticDisplayOptions
+      _clang_defaultDiagnosticDisplayOptions =
+      _clang_defaultDiagnosticDisplayOptions_ptr
+          .asFunction<_dart_clang_defaultDiagnosticDisplayOptions>();
 
   /// Determine the severity of the given diagnostic.
   int clang_getDiagnosticSeverity(
     ffi.Pointer<ffi.Void> arg0,
   ) {
-    return (_clang_getDiagnosticSeverity ??=
-        _lookup<ffi.NativeFunction<_c_clang_getDiagnosticSeverity>>(
-                'clang_getDiagnosticSeverity')
-            .asFunction<_dart_clang_getDiagnosticSeverity>())(
+    return _clang_getDiagnosticSeverity(
       arg0,
     );
   }
 
-  _dart_clang_getDiagnosticSeverity? _clang_getDiagnosticSeverity;
+  late final _clang_getDiagnosticSeverity_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_getDiagnosticSeverity>>(
+          'clang_getDiagnosticSeverity');
+  late final _dart_clang_getDiagnosticSeverity _clang_getDiagnosticSeverity =
+      _clang_getDiagnosticSeverity_ptr
+          .asFunction<_dart_clang_getDiagnosticSeverity>();
 
   /// Retrieve the source location of the given diagnostic.
   ///
@@ -1012,29 +1092,33 @@
   CXSourceLocation clang_getDiagnosticLocation(
     ffi.Pointer<ffi.Void> arg0,
   ) {
-    return (_clang_getDiagnosticLocation ??=
-        _lookup<ffi.NativeFunction<_c_clang_getDiagnosticLocation>>(
-                'clang_getDiagnosticLocation')
-            .asFunction<_dart_clang_getDiagnosticLocation>())(
+    return _clang_getDiagnosticLocation(
       arg0,
     );
   }
 
-  _dart_clang_getDiagnosticLocation? _clang_getDiagnosticLocation;
+  late final _clang_getDiagnosticLocation_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_getDiagnosticLocation>>(
+          'clang_getDiagnosticLocation');
+  late final _dart_clang_getDiagnosticLocation _clang_getDiagnosticLocation =
+      _clang_getDiagnosticLocation_ptr
+          .asFunction<_dart_clang_getDiagnosticLocation>();
 
   /// Retrieve the text of the given diagnostic.
   CXString clang_getDiagnosticSpelling(
     ffi.Pointer<ffi.Void> arg0,
   ) {
-    return (_clang_getDiagnosticSpelling ??=
-        _lookup<ffi.NativeFunction<_c_clang_getDiagnosticSpelling>>(
-                'clang_getDiagnosticSpelling')
-            .asFunction<_dart_clang_getDiagnosticSpelling>())(
+    return _clang_getDiagnosticSpelling(
       arg0,
     );
   }
 
-  _dart_clang_getDiagnosticSpelling? _clang_getDiagnosticSpelling;
+  late final _clang_getDiagnosticSpelling_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_getDiagnosticSpelling>>(
+          'clang_getDiagnosticSpelling');
+  late final _dart_clang_getDiagnosticSpelling _clang_getDiagnosticSpelling =
+      _clang_getDiagnosticSpelling_ptr
+          .asFunction<_dart_clang_getDiagnosticSpelling>();
 
   /// Retrieve the name of the command-line option that enabled this
   /// diagnostic.
@@ -1050,16 +1134,18 @@
     ffi.Pointer<ffi.Void> Diag,
     ffi.Pointer<CXString> Disable,
   ) {
-    return (_clang_getDiagnosticOption ??=
-        _lookup<ffi.NativeFunction<_c_clang_getDiagnosticOption>>(
-                'clang_getDiagnosticOption')
-            .asFunction<_dart_clang_getDiagnosticOption>())(
+    return _clang_getDiagnosticOption(
       Diag,
       Disable,
     );
   }
 
-  _dart_clang_getDiagnosticOption? _clang_getDiagnosticOption;
+  late final _clang_getDiagnosticOption_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_getDiagnosticOption>>(
+          'clang_getDiagnosticOption');
+  late final _dart_clang_getDiagnosticOption _clang_getDiagnosticOption =
+      _clang_getDiagnosticOption_ptr
+          .asFunction<_dart_clang_getDiagnosticOption>();
 
   /// Retrieve the category number for this diagnostic.
   ///
@@ -1072,15 +1158,17 @@
   int clang_getDiagnosticCategory(
     ffi.Pointer<ffi.Void> arg0,
   ) {
-    return (_clang_getDiagnosticCategory ??=
-        _lookup<ffi.NativeFunction<_c_clang_getDiagnosticCategory>>(
-                'clang_getDiagnosticCategory')
-            .asFunction<_dart_clang_getDiagnosticCategory>())(
+    return _clang_getDiagnosticCategory(
       arg0,
     );
   }
 
-  _dart_clang_getDiagnosticCategory? _clang_getDiagnosticCategory;
+  late final _clang_getDiagnosticCategory_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_getDiagnosticCategory>>(
+          'clang_getDiagnosticCategory');
+  late final _dart_clang_getDiagnosticCategory _clang_getDiagnosticCategory =
+      _clang_getDiagnosticCategory_ptr
+          .asFunction<_dart_clang_getDiagnosticCategory>();
 
   /// Retrieve the name of a particular diagnostic category.  This
   /// is now deprecated.  Use clang_getDiagnosticCategoryText()
@@ -1093,15 +1181,17 @@
   CXString clang_getDiagnosticCategoryName(
     int Category,
   ) {
-    return (_clang_getDiagnosticCategoryName ??=
-        _lookup<ffi.NativeFunction<_c_clang_getDiagnosticCategoryName>>(
-                'clang_getDiagnosticCategoryName')
-            .asFunction<_dart_clang_getDiagnosticCategoryName>())(
+    return _clang_getDiagnosticCategoryName(
       Category,
     );
   }
 
-  _dart_clang_getDiagnosticCategoryName? _clang_getDiagnosticCategoryName;
+  late final _clang_getDiagnosticCategoryName_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_getDiagnosticCategoryName>>(
+          'clang_getDiagnosticCategoryName');
+  late final _dart_clang_getDiagnosticCategoryName
+      _clang_getDiagnosticCategoryName = _clang_getDiagnosticCategoryName_ptr
+          .asFunction<_dart_clang_getDiagnosticCategoryName>();
 
   /// Retrieve the diagnostic category text for a given diagnostic.
   ///
@@ -1109,30 +1199,34 @@
   CXString clang_getDiagnosticCategoryText(
     ffi.Pointer<ffi.Void> arg0,
   ) {
-    return (_clang_getDiagnosticCategoryText ??=
-        _lookup<ffi.NativeFunction<_c_clang_getDiagnosticCategoryText>>(
-                'clang_getDiagnosticCategoryText')
-            .asFunction<_dart_clang_getDiagnosticCategoryText>())(
+    return _clang_getDiagnosticCategoryText(
       arg0,
     );
   }
 
-  _dart_clang_getDiagnosticCategoryText? _clang_getDiagnosticCategoryText;
+  late final _clang_getDiagnosticCategoryText_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_getDiagnosticCategoryText>>(
+          'clang_getDiagnosticCategoryText');
+  late final _dart_clang_getDiagnosticCategoryText
+      _clang_getDiagnosticCategoryText = _clang_getDiagnosticCategoryText_ptr
+          .asFunction<_dart_clang_getDiagnosticCategoryText>();
 
   /// Determine the number of source ranges associated with the given
   /// diagnostic.
   int clang_getDiagnosticNumRanges(
     ffi.Pointer<ffi.Void> arg0,
   ) {
-    return (_clang_getDiagnosticNumRanges ??=
-        _lookup<ffi.NativeFunction<_c_clang_getDiagnosticNumRanges>>(
-                'clang_getDiagnosticNumRanges')
-            .asFunction<_dart_clang_getDiagnosticNumRanges>())(
+    return _clang_getDiagnosticNumRanges(
       arg0,
     );
   }
 
-  _dart_clang_getDiagnosticNumRanges? _clang_getDiagnosticNumRanges;
+  late final _clang_getDiagnosticNumRanges_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_getDiagnosticNumRanges>>(
+          'clang_getDiagnosticNumRanges');
+  late final _dart_clang_getDiagnosticNumRanges _clang_getDiagnosticNumRanges =
+      _clang_getDiagnosticNumRanges_ptr
+          .asFunction<_dart_clang_getDiagnosticNumRanges>();
 
   /// Retrieve a source range associated with the diagnostic.
   ///
@@ -1149,31 +1243,35 @@
     ffi.Pointer<ffi.Void> Diagnostic,
     int Range,
   ) {
-    return (_clang_getDiagnosticRange ??=
-        _lookup<ffi.NativeFunction<_c_clang_getDiagnosticRange>>(
-                'clang_getDiagnosticRange')
-            .asFunction<_dart_clang_getDiagnosticRange>())(
+    return _clang_getDiagnosticRange(
       Diagnostic,
       Range,
     );
   }
 
-  _dart_clang_getDiagnosticRange? _clang_getDiagnosticRange;
+  late final _clang_getDiagnosticRange_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_getDiagnosticRange>>(
+          'clang_getDiagnosticRange');
+  late final _dart_clang_getDiagnosticRange _clang_getDiagnosticRange =
+      _clang_getDiagnosticRange_ptr
+          .asFunction<_dart_clang_getDiagnosticRange>();
 
   /// Determine the number of fix-it hints associated with the
   /// given diagnostic.
   int clang_getDiagnosticNumFixIts(
     ffi.Pointer<ffi.Void> Diagnostic,
   ) {
-    return (_clang_getDiagnosticNumFixIts ??=
-        _lookup<ffi.NativeFunction<_c_clang_getDiagnosticNumFixIts>>(
-                'clang_getDiagnosticNumFixIts')
-            .asFunction<_dart_clang_getDiagnosticNumFixIts>())(
+    return _clang_getDiagnosticNumFixIts(
       Diagnostic,
     );
   }
 
-  _dart_clang_getDiagnosticNumFixIts? _clang_getDiagnosticNumFixIts;
+  late final _clang_getDiagnosticNumFixIts_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_getDiagnosticNumFixIts>>(
+          'clang_getDiagnosticNumFixIts');
+  late final _dart_clang_getDiagnosticNumFixIts _clang_getDiagnosticNumFixIts =
+      _clang_getDiagnosticNumFixIts_ptr
+          .asFunction<_dart_clang_getDiagnosticNumFixIts>();
 
   /// Retrieve the replacement information for a given fix-it.
   ///
@@ -1203,31 +1301,35 @@
     int FixIt,
     ffi.Pointer<CXSourceRange> ReplacementRange,
   ) {
-    return (_clang_getDiagnosticFixIt ??=
-        _lookup<ffi.NativeFunction<_c_clang_getDiagnosticFixIt>>(
-                'clang_getDiagnosticFixIt')
-            .asFunction<_dart_clang_getDiagnosticFixIt>())(
+    return _clang_getDiagnosticFixIt(
       Diagnostic,
       FixIt,
       ReplacementRange,
     );
   }
 
-  _dart_clang_getDiagnosticFixIt? _clang_getDiagnosticFixIt;
+  late final _clang_getDiagnosticFixIt_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_getDiagnosticFixIt>>(
+          'clang_getDiagnosticFixIt');
+  late final _dart_clang_getDiagnosticFixIt _clang_getDiagnosticFixIt =
+      _clang_getDiagnosticFixIt_ptr
+          .asFunction<_dart_clang_getDiagnosticFixIt>();
 
   /// Get the original translation unit source file name.
   CXString clang_getTranslationUnitSpelling(
     ffi.Pointer<CXTranslationUnitImpl> CTUnit,
   ) {
-    return (_clang_getTranslationUnitSpelling ??=
-        _lookup<ffi.NativeFunction<_c_clang_getTranslationUnitSpelling>>(
-                'clang_getTranslationUnitSpelling')
-            .asFunction<_dart_clang_getTranslationUnitSpelling>())(
+    return _clang_getTranslationUnitSpelling(
       CTUnit,
     );
   }
 
-  _dart_clang_getTranslationUnitSpelling? _clang_getTranslationUnitSpelling;
+  late final _clang_getTranslationUnitSpelling_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_getTranslationUnitSpelling>>(
+          'clang_getTranslationUnitSpelling');
+  late final _dart_clang_getTranslationUnitSpelling
+      _clang_getTranslationUnitSpelling = _clang_getTranslationUnitSpelling_ptr
+          .asFunction<_dart_clang_getTranslationUnitSpelling>();
 
   /// Return the CXTranslationUnit for a given source file and the provided
   /// command line arguments one would pass to the compiler.
@@ -1275,11 +1377,7 @@
     int num_unsaved_files,
     ffi.Pointer<CXUnsavedFile> unsaved_files,
   ) {
-    return (_clang_createTranslationUnitFromSourceFile ??= _lookup<
-                ffi.NativeFunction<
-                    _c_clang_createTranslationUnitFromSourceFile>>(
-            'clang_createTranslationUnitFromSourceFile')
-        .asFunction<_dart_clang_createTranslationUnitFromSourceFile>())(
+    return _clang_createTranslationUnitFromSourceFile(
       CIdx,
       source_filename,
       num_clang_command_line_args,
@@ -1289,8 +1387,13 @@
     );
   }
 
-  _dart_clang_createTranslationUnitFromSourceFile?
-      _clang_createTranslationUnitFromSourceFile;
+  late final _clang_createTranslationUnitFromSourceFile_ptr = _lookup<
+          ffi.NativeFunction<Native_clang_createTranslationUnitFromSourceFile>>(
+      'clang_createTranslationUnitFromSourceFile');
+  late final _dart_clang_createTranslationUnitFromSourceFile
+      _clang_createTranslationUnitFromSourceFile =
+      _clang_createTranslationUnitFromSourceFile_ptr
+          .asFunction<_dart_clang_createTranslationUnitFromSourceFile>();
 
   /// Same as \c clang_createTranslationUnit2, but returns
   /// the \c CXTranslationUnit instead of an error code.  In case of an error this
@@ -1300,16 +1403,18 @@
     ffi.Pointer<ffi.Void> CIdx,
     ffi.Pointer<ffi.Int8> ast_filename,
   ) {
-    return (_clang_createTranslationUnit ??=
-        _lookup<ffi.NativeFunction<_c_clang_createTranslationUnit>>(
-                'clang_createTranslationUnit')
-            .asFunction<_dart_clang_createTranslationUnit>())(
+    return _clang_createTranslationUnit(
       CIdx,
       ast_filename,
     );
   }
 
-  _dart_clang_createTranslationUnit? _clang_createTranslationUnit;
+  late final _clang_createTranslationUnit_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_createTranslationUnit>>(
+          'clang_createTranslationUnit');
+  late final _dart_clang_createTranslationUnit _clang_createTranslationUnit =
+      _clang_createTranslationUnit_ptr
+          .asFunction<_dart_clang_createTranslationUnit>();
 
   /// Create a translation unit from an AST file (\c -emit-ast).
   ///
@@ -1322,17 +1427,19 @@
     ffi.Pointer<ffi.Int8> ast_filename,
     ffi.Pointer<ffi.Pointer<CXTranslationUnitImpl>> out_TU,
   ) {
-    return (_clang_createTranslationUnit2 ??=
-        _lookup<ffi.NativeFunction<_c_clang_createTranslationUnit2>>(
-                'clang_createTranslationUnit2')
-            .asFunction<_dart_clang_createTranslationUnit2>())(
+    return _clang_createTranslationUnit2(
       CIdx,
       ast_filename,
       out_TU,
     );
   }
 
-  _dart_clang_createTranslationUnit2? _clang_createTranslationUnit2;
+  late final _clang_createTranslationUnit2_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_createTranslationUnit2>>(
+          'clang_createTranslationUnit2');
+  late final _dart_clang_createTranslationUnit2 _clang_createTranslationUnit2 =
+      _clang_createTranslationUnit2_ptr
+          .asFunction<_dart_clang_createTranslationUnit2>();
 
   /// Returns the set of flags that is suitable for parsing a translation
   /// unit that is being edited.
@@ -1345,15 +1452,17 @@
   /// preamble) geared toward improving the performance of these routines. The
   /// set of optimizations enabled may change from one version to the next.
   int clang_defaultEditingTranslationUnitOptions() {
-    return (_clang_defaultEditingTranslationUnitOptions ??= _lookup<
-                ffi.NativeFunction<
-                    _c_clang_defaultEditingTranslationUnitOptions>>(
-            'clang_defaultEditingTranslationUnitOptions')
-        .asFunction<_dart_clang_defaultEditingTranslationUnitOptions>())();
+    return _clang_defaultEditingTranslationUnitOptions();
   }
 
-  _dart_clang_defaultEditingTranslationUnitOptions?
-      _clang_defaultEditingTranslationUnitOptions;
+  late final _clang_defaultEditingTranslationUnitOptions_ptr = _lookup<
+          ffi.NativeFunction<
+              Native_clang_defaultEditingTranslationUnitOptions>>(
+      'clang_defaultEditingTranslationUnitOptions');
+  late final _dart_clang_defaultEditingTranslationUnitOptions
+      _clang_defaultEditingTranslationUnitOptions =
+      _clang_defaultEditingTranslationUnitOptions_ptr
+          .asFunction<_dart_clang_defaultEditingTranslationUnitOptions>();
 
   /// Same as \c clang_parseTranslationUnit2, but returns
   /// the \c CXTranslationUnit instead of an error code.  In case of an error this
@@ -1368,10 +1477,7 @@
     int num_unsaved_files,
     int options,
   ) {
-    return (_clang_parseTranslationUnit ??=
-        _lookup<ffi.NativeFunction<_c_clang_parseTranslationUnit>>(
-                'clang_parseTranslationUnit')
-            .asFunction<_dart_clang_parseTranslationUnit>())(
+    return _clang_parseTranslationUnit(
       CIdx,
       source_filename,
       command_line_args,
@@ -1382,7 +1488,12 @@
     );
   }
 
-  _dart_clang_parseTranslationUnit? _clang_parseTranslationUnit;
+  late final _clang_parseTranslationUnit_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_parseTranslationUnit>>(
+          'clang_parseTranslationUnit');
+  late final _dart_clang_parseTranslationUnit _clang_parseTranslationUnit =
+      _clang_parseTranslationUnit_ptr
+          .asFunction<_dart_clang_parseTranslationUnit>();
 
   /// Parse the given source file and the translation unit corresponding
   /// to that file.
@@ -1436,10 +1547,7 @@
     int options,
     ffi.Pointer<ffi.Pointer<CXTranslationUnitImpl>> out_TU,
   ) {
-    return (_clang_parseTranslationUnit2 ??=
-        _lookup<ffi.NativeFunction<_c_clang_parseTranslationUnit2>>(
-                'clang_parseTranslationUnit2')
-            .asFunction<_dart_clang_parseTranslationUnit2>())(
+    return _clang_parseTranslationUnit2(
       CIdx,
       source_filename,
       command_line_args,
@@ -1451,7 +1559,12 @@
     );
   }
 
-  _dart_clang_parseTranslationUnit2? _clang_parseTranslationUnit2;
+  late final _clang_parseTranslationUnit2_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_parseTranslationUnit2>>(
+          'clang_parseTranslationUnit2');
+  late final _dart_clang_parseTranslationUnit2 _clang_parseTranslationUnit2 =
+      _clang_parseTranslationUnit2_ptr
+          .asFunction<_dart_clang_parseTranslationUnit2>();
 
   /// Same as clang_parseTranslationUnit2 but requires a full command line
   /// for \c command_line_args including argv[0]. This is useful if the standard
@@ -1466,10 +1579,7 @@
     int options,
     ffi.Pointer<ffi.Pointer<CXTranslationUnitImpl>> out_TU,
   ) {
-    return (_clang_parseTranslationUnit2FullArgv ??=
-        _lookup<ffi.NativeFunction<_c_clang_parseTranslationUnit2FullArgv>>(
-                'clang_parseTranslationUnit2FullArgv')
-            .asFunction<_dart_clang_parseTranslationUnit2FullArgv>())(
+    return _clang_parseTranslationUnit2FullArgv(
       CIdx,
       source_filename,
       command_line_args,
@@ -1481,8 +1591,13 @@
     );
   }
 
-  _dart_clang_parseTranslationUnit2FullArgv?
-      _clang_parseTranslationUnit2FullArgv;
+  late final _clang_parseTranslationUnit2FullArgv_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_parseTranslationUnit2FullArgv>>(
+          'clang_parseTranslationUnit2FullArgv');
+  late final _dart_clang_parseTranslationUnit2FullArgv
+      _clang_parseTranslationUnit2FullArgv =
+      _clang_parseTranslationUnit2FullArgv_ptr
+          .asFunction<_dart_clang_parseTranslationUnit2FullArgv>();
 
   /// Returns the set of flags that is suitable for saving a translation
   /// unit.
@@ -1494,15 +1609,17 @@
   int clang_defaultSaveOptions(
     ffi.Pointer<CXTranslationUnitImpl> TU,
   ) {
-    return (_clang_defaultSaveOptions ??=
-        _lookup<ffi.NativeFunction<_c_clang_defaultSaveOptions>>(
-                'clang_defaultSaveOptions')
-            .asFunction<_dart_clang_defaultSaveOptions>())(
+    return _clang_defaultSaveOptions(
       TU,
     );
   }
 
-  _dart_clang_defaultSaveOptions? _clang_defaultSaveOptions;
+  late final _clang_defaultSaveOptions_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_defaultSaveOptions>>(
+          'clang_defaultSaveOptions');
+  late final _dart_clang_defaultSaveOptions _clang_defaultSaveOptions =
+      _clang_defaultSaveOptions_ptr
+          .asFunction<_dart_clang_defaultSaveOptions>();
 
   /// Saves a translation unit into a serialized representation of
   /// that translation unit on disk.
@@ -1530,17 +1647,19 @@
     ffi.Pointer<ffi.Int8> FileName,
     int options,
   ) {
-    return (_clang_saveTranslationUnit ??=
-        _lookup<ffi.NativeFunction<_c_clang_saveTranslationUnit>>(
-                'clang_saveTranslationUnit')
-            .asFunction<_dart_clang_saveTranslationUnit>())(
+    return _clang_saveTranslationUnit(
       TU,
       FileName,
       options,
     );
   }
 
-  _dart_clang_saveTranslationUnit? _clang_saveTranslationUnit;
+  late final _clang_saveTranslationUnit_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_saveTranslationUnit>>(
+          'clang_saveTranslationUnit');
+  late final _dart_clang_saveTranslationUnit _clang_saveTranslationUnit =
+      _clang_saveTranslationUnit_ptr
+          .asFunction<_dart_clang_saveTranslationUnit>();
 
   /// Suspend a translation unit in order to free memory associated with it.
   ///
@@ -1550,29 +1669,33 @@
   int clang_suspendTranslationUnit(
     ffi.Pointer<CXTranslationUnitImpl> arg0,
   ) {
-    return (_clang_suspendTranslationUnit ??=
-        _lookup<ffi.NativeFunction<_c_clang_suspendTranslationUnit>>(
-                'clang_suspendTranslationUnit')
-            .asFunction<_dart_clang_suspendTranslationUnit>())(
+    return _clang_suspendTranslationUnit(
       arg0,
     );
   }
 
-  _dart_clang_suspendTranslationUnit? _clang_suspendTranslationUnit;
+  late final _clang_suspendTranslationUnit_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_suspendTranslationUnit>>(
+          'clang_suspendTranslationUnit');
+  late final _dart_clang_suspendTranslationUnit _clang_suspendTranslationUnit =
+      _clang_suspendTranslationUnit_ptr
+          .asFunction<_dart_clang_suspendTranslationUnit>();
 
   /// Destroy the specified CXTranslationUnit object.
   void clang_disposeTranslationUnit(
     ffi.Pointer<CXTranslationUnitImpl> arg0,
   ) {
-    return (_clang_disposeTranslationUnit ??=
-        _lookup<ffi.NativeFunction<_c_clang_disposeTranslationUnit>>(
-                'clang_disposeTranslationUnit')
-            .asFunction<_dart_clang_disposeTranslationUnit>())(
+    return _clang_disposeTranslationUnit(
       arg0,
     );
   }
 
-  _dart_clang_disposeTranslationUnit? _clang_disposeTranslationUnit;
+  late final _clang_disposeTranslationUnit_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_disposeTranslationUnit>>(
+          'clang_disposeTranslationUnit');
+  late final _dart_clang_disposeTranslationUnit _clang_disposeTranslationUnit =
+      _clang_disposeTranslationUnit_ptr
+          .asFunction<_dart_clang_disposeTranslationUnit>();
 
   /// Returns the set of flags that is suitable for reparsing a translation
   /// unit.
@@ -1585,15 +1708,17 @@
   int clang_defaultReparseOptions(
     ffi.Pointer<CXTranslationUnitImpl> TU,
   ) {
-    return (_clang_defaultReparseOptions ??=
-        _lookup<ffi.NativeFunction<_c_clang_defaultReparseOptions>>(
-                'clang_defaultReparseOptions')
-            .asFunction<_dart_clang_defaultReparseOptions>())(
+    return _clang_defaultReparseOptions(
       TU,
     );
   }
 
-  _dart_clang_defaultReparseOptions? _clang_defaultReparseOptions;
+  late final _clang_defaultReparseOptions_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_defaultReparseOptions>>(
+          'clang_defaultReparseOptions');
+  late final _dart_clang_defaultReparseOptions _clang_defaultReparseOptions =
+      _clang_defaultReparseOptions_ptr
+          .asFunction<_dart_clang_defaultReparseOptions>();
 
   /// Reparse the source files that produced this translation unit.
   ///
@@ -1638,10 +1763,7 @@
     ffi.Pointer<CXUnsavedFile> unsaved_files,
     int options,
   ) {
-    return (_clang_reparseTranslationUnit ??=
-        _lookup<ffi.NativeFunction<_c_clang_reparseTranslationUnit>>(
-                'clang_reparseTranslationUnit')
-            .asFunction<_dart_clang_reparseTranslationUnit>())(
+    return _clang_reparseTranslationUnit(
       TU,
       num_unsaved_files,
       unsaved_files,
@@ -1649,50 +1771,61 @@
     );
   }
 
-  _dart_clang_reparseTranslationUnit? _clang_reparseTranslationUnit;
+  late final _clang_reparseTranslationUnit_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_reparseTranslationUnit>>(
+          'clang_reparseTranslationUnit');
+  late final _dart_clang_reparseTranslationUnit _clang_reparseTranslationUnit =
+      _clang_reparseTranslationUnit_ptr
+          .asFunction<_dart_clang_reparseTranslationUnit>();
 
   /// Returns the human-readable null-terminated C string that represents
   /// the name of the memory category.  This string should never be freed.
   ffi.Pointer<ffi.Int8> clang_getTUResourceUsageName(
     int kind,
   ) {
-    return (_clang_getTUResourceUsageName ??=
-        _lookup<ffi.NativeFunction<_c_clang_getTUResourceUsageName>>(
-                'clang_getTUResourceUsageName')
-            .asFunction<_dart_clang_getTUResourceUsageName>())(
+    return _clang_getTUResourceUsageName(
       kind,
     );
   }
 
-  _dart_clang_getTUResourceUsageName? _clang_getTUResourceUsageName;
+  late final _clang_getTUResourceUsageName_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_getTUResourceUsageName>>(
+          'clang_getTUResourceUsageName');
+  late final _dart_clang_getTUResourceUsageName _clang_getTUResourceUsageName =
+      _clang_getTUResourceUsageName_ptr
+          .asFunction<_dart_clang_getTUResourceUsageName>();
 
   /// Return the memory usage of a translation unit.  This object
   /// should be released with clang_disposeCXTUResourceUsage().
   CXTUResourceUsage clang_getCXTUResourceUsage(
     ffi.Pointer<CXTranslationUnitImpl> TU,
   ) {
-    return (_clang_getCXTUResourceUsage ??=
-        _lookup<ffi.NativeFunction<_c_clang_getCXTUResourceUsage>>(
-                'clang_getCXTUResourceUsage')
-            .asFunction<_dart_clang_getCXTUResourceUsage>())(
+    return _clang_getCXTUResourceUsage(
       TU,
     );
   }
 
-  _dart_clang_getCXTUResourceUsage? _clang_getCXTUResourceUsage;
+  late final _clang_getCXTUResourceUsage_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_getCXTUResourceUsage>>(
+          'clang_getCXTUResourceUsage');
+  late final _dart_clang_getCXTUResourceUsage _clang_getCXTUResourceUsage =
+      _clang_getCXTUResourceUsage_ptr
+          .asFunction<_dart_clang_getCXTUResourceUsage>();
 
   void clang_disposeCXTUResourceUsage(
     CXTUResourceUsage usage,
   ) {
-    return (_clang_disposeCXTUResourceUsage ??=
-        _lookup<ffi.NativeFunction<_c_clang_disposeCXTUResourceUsage>>(
-                'clang_disposeCXTUResourceUsage')
-            .asFunction<_dart_clang_disposeCXTUResourceUsage>())(
+    return _clang_disposeCXTUResourceUsage(
       usage,
     );
   }
 
-  _dart_clang_disposeCXTUResourceUsage? _clang_disposeCXTUResourceUsage;
+  late final _clang_disposeCXTUResourceUsage_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_disposeCXTUResourceUsage>>(
+          'clang_disposeCXTUResourceUsage');
+  late final _dart_clang_disposeCXTUResourceUsage
+      _clang_disposeCXTUResourceUsage = _clang_disposeCXTUResourceUsage_ptr
+          .asFunction<_dart_clang_disposeCXTUResourceUsage>();
 
   /// Get target information for this translation unit.
   ///
@@ -1700,29 +1833,34 @@
   ffi.Pointer<CXTargetInfoImpl> clang_getTranslationUnitTargetInfo(
     ffi.Pointer<CXTranslationUnitImpl> CTUnit,
   ) {
-    return (_clang_getTranslationUnitTargetInfo ??=
-        _lookup<ffi.NativeFunction<_c_clang_getTranslationUnitTargetInfo>>(
-                'clang_getTranslationUnitTargetInfo')
-            .asFunction<_dart_clang_getTranslationUnitTargetInfo>())(
+    return _clang_getTranslationUnitTargetInfo(
       CTUnit,
     );
   }
 
-  _dart_clang_getTranslationUnitTargetInfo? _clang_getTranslationUnitTargetInfo;
+  late final _clang_getTranslationUnitTargetInfo_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_getTranslationUnitTargetInfo>>(
+          'clang_getTranslationUnitTargetInfo');
+  late final _dart_clang_getTranslationUnitTargetInfo
+      _clang_getTranslationUnitTargetInfo =
+      _clang_getTranslationUnitTargetInfo_ptr
+          .asFunction<_dart_clang_getTranslationUnitTargetInfo>();
 
   /// Destroy the CXTargetInfo object.
   void clang_TargetInfo_dispose(
     ffi.Pointer<CXTargetInfoImpl> Info,
   ) {
-    return (_clang_TargetInfo_dispose ??=
-        _lookup<ffi.NativeFunction<_c_clang_TargetInfo_dispose>>(
-                'clang_TargetInfo_dispose')
-            .asFunction<_dart_clang_TargetInfo_dispose>())(
+    return _clang_TargetInfo_dispose(
       Info,
     );
   }
 
-  _dart_clang_TargetInfo_dispose? _clang_TargetInfo_dispose;
+  late final _clang_TargetInfo_dispose_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_TargetInfo_dispose>>(
+          'clang_TargetInfo_dispose');
+  late final _dart_clang_TargetInfo_dispose _clang_TargetInfo_dispose =
+      _clang_TargetInfo_dispose_ptr
+          .asFunction<_dart_clang_TargetInfo_dispose>();
 
   /// Get the normalized target triple as a string.
   ///
@@ -1730,15 +1868,17 @@
   CXString clang_TargetInfo_getTriple(
     ffi.Pointer<CXTargetInfoImpl> Info,
   ) {
-    return (_clang_TargetInfo_getTriple ??=
-        _lookup<ffi.NativeFunction<_c_clang_TargetInfo_getTriple>>(
-                'clang_TargetInfo_getTriple')
-            .asFunction<_dart_clang_TargetInfo_getTriple>())(
+    return _clang_TargetInfo_getTriple(
       Info,
     );
   }
 
-  _dart_clang_TargetInfo_getTriple? _clang_TargetInfo_getTriple;
+  late final _clang_TargetInfo_getTriple_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_TargetInfo_getTriple>>(
+          'clang_TargetInfo_getTriple');
+  late final _dart_clang_TargetInfo_getTriple _clang_TargetInfo_getTriple =
+      _clang_TargetInfo_getTriple_ptr
+          .asFunction<_dart_clang_TargetInfo_getTriple>();
 
   /// Get the pointer width of the target in bits.
   ///
@@ -1746,25 +1886,28 @@
   int clang_TargetInfo_getPointerWidth(
     ffi.Pointer<CXTargetInfoImpl> Info,
   ) {
-    return (_clang_TargetInfo_getPointerWidth ??=
-        _lookup<ffi.NativeFunction<_c_clang_TargetInfo_getPointerWidth>>(
-                'clang_TargetInfo_getPointerWidth')
-            .asFunction<_dart_clang_TargetInfo_getPointerWidth>())(
+    return _clang_TargetInfo_getPointerWidth(
       Info,
     );
   }
 
-  _dart_clang_TargetInfo_getPointerWidth? _clang_TargetInfo_getPointerWidth;
+  late final _clang_TargetInfo_getPointerWidth_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_TargetInfo_getPointerWidth>>(
+          'clang_TargetInfo_getPointerWidth');
+  late final _dart_clang_TargetInfo_getPointerWidth
+      _clang_TargetInfo_getPointerWidth = _clang_TargetInfo_getPointerWidth_ptr
+          .asFunction<_dart_clang_TargetInfo_getPointerWidth>();
 
   /// Retrieve the NULL cursor, which represents no entity.
   CXCursor clang_getNullCursor() {
-    return (_clang_getNullCursor ??=
-        _lookup<ffi.NativeFunction<_c_clang_getNullCursor>>(
-                'clang_getNullCursor')
-            .asFunction<_dart_clang_getNullCursor>())();
+    return _clang_getNullCursor();
   }
 
-  _dart_clang_getNullCursor? _clang_getNullCursor;
+  late final _clang_getNullCursor_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_getNullCursor>>(
+          'clang_getNullCursor');
+  late final _dart_clang_getNullCursor _clang_getNullCursor =
+      _clang_getNullCursor_ptr.asFunction<_dart_clang_getNullCursor>();
 
   /// Retrieve the cursor that represents the given translation unit.
   ///
@@ -1773,85 +1916,93 @@
   CXCursor clang_getTranslationUnitCursor(
     ffi.Pointer<CXTranslationUnitImpl> arg0,
   ) {
-    return (_clang_getTranslationUnitCursor ??=
-        _lookup<ffi.NativeFunction<_c_clang_getTranslationUnitCursor>>(
-                'clang_getTranslationUnitCursor')
-            .asFunction<_dart_clang_getTranslationUnitCursor>())(
+    return _clang_getTranslationUnitCursor(
       arg0,
     );
   }
 
-  _dart_clang_getTranslationUnitCursor? _clang_getTranslationUnitCursor;
+  late final _clang_getTranslationUnitCursor_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_getTranslationUnitCursor>>(
+          'clang_getTranslationUnitCursor');
+  late final _dart_clang_getTranslationUnitCursor
+      _clang_getTranslationUnitCursor = _clang_getTranslationUnitCursor_ptr
+          .asFunction<_dart_clang_getTranslationUnitCursor>();
 
   /// Determine whether two cursors are equivalent.
   int clang_equalCursors(
     CXCursor arg0,
     CXCursor arg1,
   ) {
-    return (_clang_equalCursors ??=
-        _lookup<ffi.NativeFunction<_c_clang_equalCursors>>('clang_equalCursors')
-            .asFunction<_dart_clang_equalCursors>())(
+    return _clang_equalCursors(
       arg0,
       arg1,
     );
   }
 
-  _dart_clang_equalCursors? _clang_equalCursors;
+  late final _clang_equalCursors_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_equalCursors>>(
+          'clang_equalCursors');
+  late final _dart_clang_equalCursors _clang_equalCursors =
+      _clang_equalCursors_ptr.asFunction<_dart_clang_equalCursors>();
 
   /// Returns non-zero if \p cursor is null.
   int clang_Cursor_isNull(
     CXCursor cursor,
   ) {
-    return (_clang_Cursor_isNull ??=
-        _lookup<ffi.NativeFunction<_c_clang_Cursor_isNull>>(
-                'clang_Cursor_isNull')
-            .asFunction<_dart_clang_Cursor_isNull>())(
+    return _clang_Cursor_isNull(
       cursor,
     );
   }
 
-  _dart_clang_Cursor_isNull? _clang_Cursor_isNull;
+  late final _clang_Cursor_isNull_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_Cursor_isNull>>(
+          'clang_Cursor_isNull');
+  late final _dart_clang_Cursor_isNull _clang_Cursor_isNull =
+      _clang_Cursor_isNull_ptr.asFunction<_dart_clang_Cursor_isNull>();
 
   /// Compute a hash value for the given cursor.
   int clang_hashCursor(
     CXCursor arg0,
   ) {
-    return (_clang_hashCursor ??=
-        _lookup<ffi.NativeFunction<_c_clang_hashCursor>>('clang_hashCursor')
-            .asFunction<_dart_clang_hashCursor>())(
+    return _clang_hashCursor(
       arg0,
     );
   }
 
-  _dart_clang_hashCursor? _clang_hashCursor;
+  late final _clang_hashCursor_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_hashCursor>>('clang_hashCursor');
+  late final _dart_clang_hashCursor _clang_hashCursor =
+      _clang_hashCursor_ptr.asFunction<_dart_clang_hashCursor>();
 
   /// Retrieve the kind of the given cursor.
   int clang_getCursorKind(
     CXCursor arg0,
   ) {
-    return (_clang_getCursorKind ??=
-        _lookup<ffi.NativeFunction<_c_clang_getCursorKind>>(
-                'clang_getCursorKind')
-            .asFunction<_dart_clang_getCursorKind>())(
+    return _clang_getCursorKind(
       arg0,
     );
   }
 
-  _dart_clang_getCursorKind? _clang_getCursorKind;
+  late final _clang_getCursorKind_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_getCursorKind>>(
+          'clang_getCursorKind');
+  late final _dart_clang_getCursorKind _clang_getCursorKind =
+      _clang_getCursorKind_ptr.asFunction<_dart_clang_getCursorKind>();
 
   /// Determine whether the given cursor kind represents a declaration.
   int clang_isDeclaration(
     int arg0,
   ) {
-    return (_clang_isDeclaration ??=
-        _lookup<ffi.NativeFunction<_c_clang_isDeclaration>>(
-                'clang_isDeclaration')
-            .asFunction<_dart_clang_isDeclaration>())(
+    return _clang_isDeclaration(
       arg0,
     );
   }
 
-  _dart_clang_isDeclaration? _clang_isDeclaration;
+  late final _clang_isDeclaration_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_isDeclaration>>(
+          'clang_isDeclaration');
+  late final _dart_clang_isDeclaration _clang_isDeclaration =
+      _clang_isDeclaration_ptr.asFunction<_dart_clang_isDeclaration>();
 
   /// Determine whether the given declaration is invalid.
   ///
@@ -1862,15 +2013,17 @@
   int clang_isInvalidDeclaration(
     CXCursor arg0,
   ) {
-    return (_clang_isInvalidDeclaration ??=
-        _lookup<ffi.NativeFunction<_c_clang_isInvalidDeclaration>>(
-                'clang_isInvalidDeclaration')
-            .asFunction<_dart_clang_isInvalidDeclaration>())(
+    return _clang_isInvalidDeclaration(
       arg0,
     );
   }
 
-  _dart_clang_isInvalidDeclaration? _clang_isInvalidDeclaration;
+  late final _clang_isInvalidDeclaration_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_isInvalidDeclaration>>(
+          'clang_isInvalidDeclaration');
+  late final _dart_clang_isInvalidDeclaration _clang_isInvalidDeclaration =
+      _clang_isInvalidDeclaration_ptr
+          .asFunction<_dart_clang_isInvalidDeclaration>();
 
   /// Determine whether the given cursor kind represents a simple
   /// reference.
@@ -1881,139 +2034,154 @@
   int clang_isReference(
     int arg0,
   ) {
-    return (_clang_isReference ??=
-        _lookup<ffi.NativeFunction<_c_clang_isReference>>('clang_isReference')
-            .asFunction<_dart_clang_isReference>())(
+    return _clang_isReference(
       arg0,
     );
   }
 
-  _dart_clang_isReference? _clang_isReference;
+  late final _clang_isReference_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_isReference>>(
+          'clang_isReference');
+  late final _dart_clang_isReference _clang_isReference =
+      _clang_isReference_ptr.asFunction<_dart_clang_isReference>();
 
   /// Determine whether the given cursor kind represents an expression.
   int clang_isExpression(
     int arg0,
   ) {
-    return (_clang_isExpression ??=
-        _lookup<ffi.NativeFunction<_c_clang_isExpression>>('clang_isExpression')
-            .asFunction<_dart_clang_isExpression>())(
+    return _clang_isExpression(
       arg0,
     );
   }
 
-  _dart_clang_isExpression? _clang_isExpression;
+  late final _clang_isExpression_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_isExpression>>(
+          'clang_isExpression');
+  late final _dart_clang_isExpression _clang_isExpression =
+      _clang_isExpression_ptr.asFunction<_dart_clang_isExpression>();
 
   /// Determine whether the given cursor kind represents a statement.
   int clang_isStatement(
     int arg0,
   ) {
-    return (_clang_isStatement ??=
-        _lookup<ffi.NativeFunction<_c_clang_isStatement>>('clang_isStatement')
-            .asFunction<_dart_clang_isStatement>())(
+    return _clang_isStatement(
       arg0,
     );
   }
 
-  _dart_clang_isStatement? _clang_isStatement;
+  late final _clang_isStatement_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_isStatement>>(
+          'clang_isStatement');
+  late final _dart_clang_isStatement _clang_isStatement =
+      _clang_isStatement_ptr.asFunction<_dart_clang_isStatement>();
 
   /// Determine whether the given cursor kind represents an attribute.
   int clang_isAttribute(
     int arg0,
   ) {
-    return (_clang_isAttribute ??=
-        _lookup<ffi.NativeFunction<_c_clang_isAttribute>>('clang_isAttribute')
-            .asFunction<_dart_clang_isAttribute>())(
+    return _clang_isAttribute(
       arg0,
     );
   }
 
-  _dart_clang_isAttribute? _clang_isAttribute;
+  late final _clang_isAttribute_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_isAttribute>>(
+          'clang_isAttribute');
+  late final _dart_clang_isAttribute _clang_isAttribute =
+      _clang_isAttribute_ptr.asFunction<_dart_clang_isAttribute>();
 
   /// Determine whether the given cursor has any attributes.
   int clang_Cursor_hasAttrs(
     CXCursor C,
   ) {
-    return (_clang_Cursor_hasAttrs ??=
-        _lookup<ffi.NativeFunction<_c_clang_Cursor_hasAttrs>>(
-                'clang_Cursor_hasAttrs')
-            .asFunction<_dart_clang_Cursor_hasAttrs>())(
+    return _clang_Cursor_hasAttrs(
       C,
     );
   }
 
-  _dart_clang_Cursor_hasAttrs? _clang_Cursor_hasAttrs;
+  late final _clang_Cursor_hasAttrs_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_Cursor_hasAttrs>>(
+          'clang_Cursor_hasAttrs');
+  late final _dart_clang_Cursor_hasAttrs _clang_Cursor_hasAttrs =
+      _clang_Cursor_hasAttrs_ptr.asFunction<_dart_clang_Cursor_hasAttrs>();
 
   /// Determine whether the given cursor kind represents an invalid
   /// cursor.
   int clang_isInvalid(
     int arg0,
   ) {
-    return (_clang_isInvalid ??=
-        _lookup<ffi.NativeFunction<_c_clang_isInvalid>>('clang_isInvalid')
-            .asFunction<_dart_clang_isInvalid>())(
+    return _clang_isInvalid(
       arg0,
     );
   }
 
-  _dart_clang_isInvalid? _clang_isInvalid;
+  late final _clang_isInvalid_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_isInvalid>>('clang_isInvalid');
+  late final _dart_clang_isInvalid _clang_isInvalid =
+      _clang_isInvalid_ptr.asFunction<_dart_clang_isInvalid>();
 
   /// Determine whether the given cursor kind represents a translation
   /// unit.
   int clang_isTranslationUnit(
     int arg0,
   ) {
-    return (_clang_isTranslationUnit ??=
-        _lookup<ffi.NativeFunction<_c_clang_isTranslationUnit>>(
-                'clang_isTranslationUnit')
-            .asFunction<_dart_clang_isTranslationUnit>())(
+    return _clang_isTranslationUnit(
       arg0,
     );
   }
 
-  _dart_clang_isTranslationUnit? _clang_isTranslationUnit;
+  late final _clang_isTranslationUnit_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_isTranslationUnit>>(
+          'clang_isTranslationUnit');
+  late final _dart_clang_isTranslationUnit _clang_isTranslationUnit =
+      _clang_isTranslationUnit_ptr.asFunction<_dart_clang_isTranslationUnit>();
 
   /// Determine whether the given cursor represents a preprocessing
   /// element, such as a preprocessor directive or macro instantiation.
   int clang_isPreprocessing(
     int arg0,
   ) {
-    return (_clang_isPreprocessing ??=
-        _lookup<ffi.NativeFunction<_c_clang_isPreprocessing>>(
-                'clang_isPreprocessing')
-            .asFunction<_dart_clang_isPreprocessing>())(
+    return _clang_isPreprocessing(
       arg0,
     );
   }
 
-  _dart_clang_isPreprocessing? _clang_isPreprocessing;
+  late final _clang_isPreprocessing_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_isPreprocessing>>(
+          'clang_isPreprocessing');
+  late final _dart_clang_isPreprocessing _clang_isPreprocessing =
+      _clang_isPreprocessing_ptr.asFunction<_dart_clang_isPreprocessing>();
 
   /// Determine whether the given cursor represents a currently
   /// unexposed piece of the AST (e.g., CXCursor_UnexposedStmt).
   int clang_isUnexposed(
     int arg0,
   ) {
-    return (_clang_isUnexposed ??=
-        _lookup<ffi.NativeFunction<_c_clang_isUnexposed>>('clang_isUnexposed')
-            .asFunction<_dart_clang_isUnexposed>())(
+    return _clang_isUnexposed(
       arg0,
     );
   }
 
-  _dart_clang_isUnexposed? _clang_isUnexposed;
+  late final _clang_isUnexposed_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_isUnexposed>>(
+          'clang_isUnexposed');
+  late final _dart_clang_isUnexposed _clang_isUnexposed =
+      _clang_isUnexposed_ptr.asFunction<_dart_clang_isUnexposed>();
 
   /// Determine the linkage of the entity referred to by a given cursor.
   int clang_getCursorLinkage(
     CXCursor cursor,
   ) {
-    return (_clang_getCursorLinkage ??=
-        _lookup<ffi.NativeFunction<_c_clang_getCursorLinkage>>(
-                'clang_getCursorLinkage')
-            .asFunction<_dart_clang_getCursorLinkage>())(
+    return _clang_getCursorLinkage(
       cursor,
     );
   }
 
-  _dart_clang_getCursorLinkage? _clang_getCursorLinkage;
+  late final _clang_getCursorLinkage_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_getCursorLinkage>>(
+          'clang_getCursorLinkage');
+  late final _dart_clang_getCursorLinkage _clang_getCursorLinkage =
+      _clang_getCursorLinkage_ptr.asFunction<_dart_clang_getCursorLinkage>();
 
   /// Describe the visibility of the entity referred to by a cursor.
   ///
@@ -2027,15 +2195,17 @@
   int clang_getCursorVisibility(
     CXCursor cursor,
   ) {
-    return (_clang_getCursorVisibility ??=
-        _lookup<ffi.NativeFunction<_c_clang_getCursorVisibility>>(
-                'clang_getCursorVisibility')
-            .asFunction<_dart_clang_getCursorVisibility>())(
+    return _clang_getCursorVisibility(
       cursor,
     );
   }
 
-  _dart_clang_getCursorVisibility? _clang_getCursorVisibility;
+  late final _clang_getCursorVisibility_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_getCursorVisibility>>(
+          'clang_getCursorVisibility');
+  late final _dart_clang_getCursorVisibility _clang_getCursorVisibility =
+      _clang_getCursorVisibility_ptr
+          .asFunction<_dart_clang_getCursorVisibility>();
 
   /// Determine the availability of the entity that this cursor refers to,
   /// taking the current target platform into account.
@@ -2046,15 +2216,17 @@
   int clang_getCursorAvailability(
     CXCursor cursor,
   ) {
-    return (_clang_getCursorAvailability ??=
-        _lookup<ffi.NativeFunction<_c_clang_getCursorAvailability>>(
-                'clang_getCursorAvailability')
-            .asFunction<_dart_clang_getCursorAvailability>())(
+    return _clang_getCursorAvailability(
       cursor,
     );
   }
 
-  _dart_clang_getCursorAvailability? _clang_getCursorAvailability;
+  late final _clang_getCursorAvailability_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_getCursorAvailability>>(
+          'clang_getCursorAvailability');
+  late final _dart_clang_getCursorAvailability _clang_getCursorAvailability =
+      _clang_getCursorAvailability_ptr
+          .asFunction<_dart_clang_getCursorAvailability>();
 
   /// Determine the availability of the entity that this cursor refers to
   /// on any platforms for which availability information is known.
@@ -2099,10 +2271,7 @@
     ffi.Pointer<CXPlatformAvailability> availability,
     int availability_size,
   ) {
-    return (_clang_getCursorPlatformAvailability ??=
-        _lookup<ffi.NativeFunction<_c_clang_getCursorPlatformAvailability>>(
-                'clang_getCursorPlatformAvailability')
-            .asFunction<_dart_clang_getCursorPlatformAvailability>())(
+    return _clang_getCursorPlatformAvailability(
       cursor,
       always_deprecated,
       deprecated_message,
@@ -2113,90 +2282,104 @@
     );
   }
 
-  _dart_clang_getCursorPlatformAvailability?
-      _clang_getCursorPlatformAvailability;
+  late final _clang_getCursorPlatformAvailability_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_getCursorPlatformAvailability>>(
+          'clang_getCursorPlatformAvailability');
+  late final _dart_clang_getCursorPlatformAvailability
+      _clang_getCursorPlatformAvailability =
+      _clang_getCursorPlatformAvailability_ptr
+          .asFunction<_dart_clang_getCursorPlatformAvailability>();
 
   /// Free the memory associated with a \c CXPlatformAvailability structure.
   void clang_disposeCXPlatformAvailability(
     ffi.Pointer<CXPlatformAvailability> availability,
   ) {
-    return (_clang_disposeCXPlatformAvailability ??=
-        _lookup<ffi.NativeFunction<_c_clang_disposeCXPlatformAvailability>>(
-                'clang_disposeCXPlatformAvailability')
-            .asFunction<_dart_clang_disposeCXPlatformAvailability>())(
+    return _clang_disposeCXPlatformAvailability(
       availability,
     );
   }
 
-  _dart_clang_disposeCXPlatformAvailability?
-      _clang_disposeCXPlatformAvailability;
+  late final _clang_disposeCXPlatformAvailability_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_disposeCXPlatformAvailability>>(
+          'clang_disposeCXPlatformAvailability');
+  late final _dart_clang_disposeCXPlatformAvailability
+      _clang_disposeCXPlatformAvailability =
+      _clang_disposeCXPlatformAvailability_ptr
+          .asFunction<_dart_clang_disposeCXPlatformAvailability>();
 
   /// Determine the "language" of the entity referred to by a given cursor.
   int clang_getCursorLanguage(
     CXCursor cursor,
   ) {
-    return (_clang_getCursorLanguage ??=
-        _lookup<ffi.NativeFunction<_c_clang_getCursorLanguage>>(
-                'clang_getCursorLanguage')
-            .asFunction<_dart_clang_getCursorLanguage>())(
+    return _clang_getCursorLanguage(
       cursor,
     );
   }
 
-  _dart_clang_getCursorLanguage? _clang_getCursorLanguage;
+  late final _clang_getCursorLanguage_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_getCursorLanguage>>(
+          'clang_getCursorLanguage');
+  late final _dart_clang_getCursorLanguage _clang_getCursorLanguage =
+      _clang_getCursorLanguage_ptr.asFunction<_dart_clang_getCursorLanguage>();
 
   /// Determine the "thread-local storage (TLS) kind" of the declaration
   /// referred to by a cursor.
   int clang_getCursorTLSKind(
     CXCursor cursor,
   ) {
-    return (_clang_getCursorTLSKind ??=
-        _lookup<ffi.NativeFunction<_c_clang_getCursorTLSKind>>(
-                'clang_getCursorTLSKind')
-            .asFunction<_dart_clang_getCursorTLSKind>())(
+    return _clang_getCursorTLSKind(
       cursor,
     );
   }
 
-  _dart_clang_getCursorTLSKind? _clang_getCursorTLSKind;
+  late final _clang_getCursorTLSKind_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_getCursorTLSKind>>(
+          'clang_getCursorTLSKind');
+  late final _dart_clang_getCursorTLSKind _clang_getCursorTLSKind =
+      _clang_getCursorTLSKind_ptr.asFunction<_dart_clang_getCursorTLSKind>();
 
   /// Returns the translation unit that a cursor originated from.
   ffi.Pointer<CXTranslationUnitImpl> clang_Cursor_getTranslationUnit(
     CXCursor arg0,
   ) {
-    return (_clang_Cursor_getTranslationUnit ??=
-        _lookup<ffi.NativeFunction<_c_clang_Cursor_getTranslationUnit>>(
-                'clang_Cursor_getTranslationUnit')
-            .asFunction<_dart_clang_Cursor_getTranslationUnit>())(
+    return _clang_Cursor_getTranslationUnit(
       arg0,
     );
   }
 
-  _dart_clang_Cursor_getTranslationUnit? _clang_Cursor_getTranslationUnit;
+  late final _clang_Cursor_getTranslationUnit_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_Cursor_getTranslationUnit>>(
+          'clang_Cursor_getTranslationUnit');
+  late final _dart_clang_Cursor_getTranslationUnit
+      _clang_Cursor_getTranslationUnit = _clang_Cursor_getTranslationUnit_ptr
+          .asFunction<_dart_clang_Cursor_getTranslationUnit>();
 
   /// Creates an empty CXCursorSet.
   ffi.Pointer<CXCursorSetImpl> clang_createCXCursorSet() {
-    return (_clang_createCXCursorSet ??=
-        _lookup<ffi.NativeFunction<_c_clang_createCXCursorSet>>(
-                'clang_createCXCursorSet')
-            .asFunction<_dart_clang_createCXCursorSet>())();
+    return _clang_createCXCursorSet();
   }
 
-  _dart_clang_createCXCursorSet? _clang_createCXCursorSet;
+  late final _clang_createCXCursorSet_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_createCXCursorSet>>(
+          'clang_createCXCursorSet');
+  late final _dart_clang_createCXCursorSet _clang_createCXCursorSet =
+      _clang_createCXCursorSet_ptr.asFunction<_dart_clang_createCXCursorSet>();
 
   /// Disposes a CXCursorSet and releases its associated memory.
   void clang_disposeCXCursorSet(
     ffi.Pointer<CXCursorSetImpl> cset,
   ) {
-    return (_clang_disposeCXCursorSet ??=
-        _lookup<ffi.NativeFunction<_c_clang_disposeCXCursorSet>>(
-                'clang_disposeCXCursorSet')
-            .asFunction<_dart_clang_disposeCXCursorSet>())(
+    return _clang_disposeCXCursorSet(
       cset,
     );
   }
 
-  _dart_clang_disposeCXCursorSet? _clang_disposeCXCursorSet;
+  late final _clang_disposeCXCursorSet_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_disposeCXCursorSet>>(
+          'clang_disposeCXCursorSet');
+  late final _dart_clang_disposeCXCursorSet _clang_disposeCXCursorSet =
+      _clang_disposeCXCursorSet_ptr
+          .asFunction<_dart_clang_disposeCXCursorSet>();
 
   /// Queries a CXCursorSet to see if it contains a specific CXCursor.
   ///
@@ -2205,16 +2388,18 @@
     ffi.Pointer<CXCursorSetImpl> cset,
     CXCursor cursor,
   ) {
-    return (_clang_CXCursorSet_contains ??=
-        _lookup<ffi.NativeFunction<_c_clang_CXCursorSet_contains>>(
-                'clang_CXCursorSet_contains')
-            .asFunction<_dart_clang_CXCursorSet_contains>())(
+    return _clang_CXCursorSet_contains(
       cset,
       cursor,
     );
   }
 
-  _dart_clang_CXCursorSet_contains? _clang_CXCursorSet_contains;
+  late final _clang_CXCursorSet_contains_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_CXCursorSet_contains>>(
+          'clang_CXCursorSet_contains');
+  late final _dart_clang_CXCursorSet_contains _clang_CXCursorSet_contains =
+      _clang_CXCursorSet_contains_ptr
+          .asFunction<_dart_clang_CXCursorSet_contains>();
 
   /// Inserts a CXCursor into a CXCursorSet.
   ///
@@ -2223,16 +2408,18 @@
     ffi.Pointer<CXCursorSetImpl> cset,
     CXCursor cursor,
   ) {
-    return (_clang_CXCursorSet_insert ??=
-        _lookup<ffi.NativeFunction<_c_clang_CXCursorSet_insert>>(
-                'clang_CXCursorSet_insert')
-            .asFunction<_dart_clang_CXCursorSet_insert>())(
+    return _clang_CXCursorSet_insert(
       cset,
       cursor,
     );
   }
 
-  _dart_clang_CXCursorSet_insert? _clang_CXCursorSet_insert;
+  late final _clang_CXCursorSet_insert_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_CXCursorSet_insert>>(
+          'clang_CXCursorSet_insert');
+  late final _dart_clang_CXCursorSet_insert _clang_CXCursorSet_insert =
+      _clang_CXCursorSet_insert_ptr
+          .asFunction<_dart_clang_CXCursorSet_insert>();
 
   /// Determine the semantic parent of the given cursor.
   ///
@@ -2268,15 +2455,17 @@
   CXCursor clang_getCursorSemanticParent(
     CXCursor cursor,
   ) {
-    return (_clang_getCursorSemanticParent ??=
-        _lookup<ffi.NativeFunction<_c_clang_getCursorSemanticParent>>(
-                'clang_getCursorSemanticParent')
-            .asFunction<_dart_clang_getCursorSemanticParent>())(
+    return _clang_getCursorSemanticParent(
       cursor,
     );
   }
 
-  _dart_clang_getCursorSemanticParent? _clang_getCursorSemanticParent;
+  late final _clang_getCursorSemanticParent_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_getCursorSemanticParent>>(
+          'clang_getCursorSemanticParent');
+  late final _dart_clang_getCursorSemanticParent
+      _clang_getCursorSemanticParent = _clang_getCursorSemanticParent_ptr
+          .asFunction<_dart_clang_getCursorSemanticParent>();
 
   /// Determine the lexical parent of the given cursor.
   ///
@@ -2313,15 +2502,17 @@
   CXCursor clang_getCursorLexicalParent(
     CXCursor cursor,
   ) {
-    return (_clang_getCursorLexicalParent ??=
-        _lookup<ffi.NativeFunction<_c_clang_getCursorLexicalParent>>(
-                'clang_getCursorLexicalParent')
-            .asFunction<_dart_clang_getCursorLexicalParent>())(
+    return _clang_getCursorLexicalParent(
       cursor,
     );
   }
 
-  _dart_clang_getCursorLexicalParent? _clang_getCursorLexicalParent;
+  late final _clang_getCursorLexicalParent_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_getCursorLexicalParent>>(
+          'clang_getCursorLexicalParent');
+  late final _dart_clang_getCursorLexicalParent _clang_getCursorLexicalParent =
+      _clang_getCursorLexicalParent_ptr
+          .asFunction<_dart_clang_getCursorLexicalParent>();
 
   /// Determine the set of methods that are overridden by the given
   /// method.
@@ -2369,47 +2560,52 @@
     ffi.Pointer<ffi.Pointer<CXCursor>> overridden,
     ffi.Pointer<ffi.Uint32> num_overridden,
   ) {
-    return (_clang_getOverriddenCursors ??=
-        _lookup<ffi.NativeFunction<_c_clang_getOverriddenCursors>>(
-                'clang_getOverriddenCursors')
-            .asFunction<_dart_clang_getOverriddenCursors>())(
+    return _clang_getOverriddenCursors(
       cursor,
       overridden,
       num_overridden,
     );
   }
 
-  _dart_clang_getOverriddenCursors? _clang_getOverriddenCursors;
+  late final _clang_getOverriddenCursors_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_getOverriddenCursors>>(
+          'clang_getOverriddenCursors');
+  late final _dart_clang_getOverriddenCursors _clang_getOverriddenCursors =
+      _clang_getOverriddenCursors_ptr
+          .asFunction<_dart_clang_getOverriddenCursors>();
 
   /// Free the set of overridden cursors returned by \c
   /// clang_getOverriddenCursors().
   void clang_disposeOverriddenCursors(
     ffi.Pointer<CXCursor> overridden,
   ) {
-    return (_clang_disposeOverriddenCursors ??=
-        _lookup<ffi.NativeFunction<_c_clang_disposeOverriddenCursors>>(
-                'clang_disposeOverriddenCursors')
-            .asFunction<_dart_clang_disposeOverriddenCursors>())(
+    return _clang_disposeOverriddenCursors(
       overridden,
     );
   }
 
-  _dart_clang_disposeOverriddenCursors? _clang_disposeOverriddenCursors;
+  late final _clang_disposeOverriddenCursors_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_disposeOverriddenCursors>>(
+          'clang_disposeOverriddenCursors');
+  late final _dart_clang_disposeOverriddenCursors
+      _clang_disposeOverriddenCursors = _clang_disposeOverriddenCursors_ptr
+          .asFunction<_dart_clang_disposeOverriddenCursors>();
 
   /// Retrieve the file that is included by the given inclusion directive
   /// cursor.
   ffi.Pointer<ffi.Void> clang_getIncludedFile(
     CXCursor cursor,
   ) {
-    return (_clang_getIncludedFile ??=
-        _lookup<ffi.NativeFunction<_c_clang_getIncludedFile>>(
-                'clang_getIncludedFile')
-            .asFunction<_dart_clang_getIncludedFile>())(
+    return _clang_getIncludedFile(
       cursor,
     );
   }
 
-  _dart_clang_getIncludedFile? _clang_getIncludedFile;
+  late final _clang_getIncludedFile_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_getIncludedFile>>(
+          'clang_getIncludedFile');
+  late final _dart_clang_getIncludedFile _clang_getIncludedFile =
+      _clang_getIncludedFile_ptr.asFunction<_dart_clang_getIncludedFile>();
 
   /// Map a source location to the cursor that describes the entity at that
   /// location in the source code.
@@ -2428,15 +2624,16 @@
     ffi.Pointer<CXTranslationUnitImpl> arg0,
     CXSourceLocation arg1,
   ) {
-    return (_clang_getCursor ??=
-        _lookup<ffi.NativeFunction<_c_clang_getCursor>>('clang_getCursor')
-            .asFunction<_dart_clang_getCursor>())(
+    return _clang_getCursor(
       arg0,
       arg1,
     );
   }
 
-  _dart_clang_getCursor? _clang_getCursor;
+  late final _clang_getCursor_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_getCursor>>('clang_getCursor');
+  late final _dart_clang_getCursor _clang_getCursor =
+      _clang_getCursor_ptr.asFunction<_dart_clang_getCursor>();
 
   /// Retrieve the physical location of the source constructor referenced
   /// by the given cursor.
@@ -2449,15 +2646,16 @@
   CXSourceLocation clang_getCursorLocation(
     CXCursor arg0,
   ) {
-    return (_clang_getCursorLocation ??=
-        _lookup<ffi.NativeFunction<_c_clang_getCursorLocation>>(
-                'clang_getCursorLocation')
-            .asFunction<_dart_clang_getCursorLocation>())(
+    return _clang_getCursorLocation(
       arg0,
     );
   }
 
-  _dart_clang_getCursorLocation? _clang_getCursorLocation;
+  late final _clang_getCursorLocation_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_getCursorLocation>>(
+          'clang_getCursorLocation');
+  late final _dart_clang_getCursorLocation _clang_getCursorLocation =
+      _clang_getCursorLocation_ptr.asFunction<_dart_clang_getCursorLocation>();
 
   /// Retrieve the physical extent of the source construct referenced by
   /// the given cursor.
@@ -2471,29 +2669,31 @@
   CXSourceRange clang_getCursorExtent(
     CXCursor arg0,
   ) {
-    return (_clang_getCursorExtent ??=
-        _lookup<ffi.NativeFunction<_c_clang_getCursorExtent>>(
-                'clang_getCursorExtent')
-            .asFunction<_dart_clang_getCursorExtent>())(
+    return _clang_getCursorExtent(
       arg0,
     );
   }
 
-  _dart_clang_getCursorExtent? _clang_getCursorExtent;
+  late final _clang_getCursorExtent_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_getCursorExtent>>(
+          'clang_getCursorExtent');
+  late final _dart_clang_getCursorExtent _clang_getCursorExtent =
+      _clang_getCursorExtent_ptr.asFunction<_dart_clang_getCursorExtent>();
 
   /// Retrieve the type of a CXCursor (if any).
   CXType clang_getCursorType(
     CXCursor C,
   ) {
-    return (_clang_getCursorType ??=
-        _lookup<ffi.NativeFunction<_c_clang_getCursorType>>(
-                'clang_getCursorType')
-            .asFunction<_dart_clang_getCursorType>())(
+    return _clang_getCursorType(
       C,
     );
   }
 
-  _dart_clang_getCursorType? _clang_getCursorType;
+  late final _clang_getCursorType_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_getCursorType>>(
+          'clang_getCursorType');
+  late final _dart_clang_getCursorType _clang_getCursorType =
+      _clang_getCursorType_ptr.asFunction<_dart_clang_getCursorType>();
 
   /// Pretty-print the underlying type using the rules of the
   /// language of the translation unit from which it came.
@@ -2502,15 +2702,16 @@
   CXString clang_getTypeSpelling(
     CXType CT,
   ) {
-    return (_clang_getTypeSpelling ??=
-        _lookup<ffi.NativeFunction<_c_clang_getTypeSpelling>>(
-                'clang_getTypeSpelling')
-            .asFunction<_dart_clang_getTypeSpelling>())(
+    return _clang_getTypeSpelling(
       CT,
     );
   }
 
-  _dart_clang_getTypeSpelling? _clang_getTypeSpelling;
+  late final _clang_getTypeSpelling_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_getTypeSpelling>>(
+          'clang_getTypeSpelling');
+  late final _dart_clang_getTypeSpelling _clang_getTypeSpelling =
+      _clang_getTypeSpelling_ptr.asFunction<_dart_clang_getTypeSpelling>();
 
   /// Retrieve the underlying type of a typedef declaration.
   ///
@@ -2519,15 +2720,18 @@
   CXType clang_getTypedefDeclUnderlyingType(
     CXCursor C,
   ) {
-    return (_clang_getTypedefDeclUnderlyingType ??=
-        _lookup<ffi.NativeFunction<_c_clang_getTypedefDeclUnderlyingType>>(
-                'clang_getTypedefDeclUnderlyingType')
-            .asFunction<_dart_clang_getTypedefDeclUnderlyingType>())(
+    return _clang_getTypedefDeclUnderlyingType(
       C,
     );
   }
 
-  _dart_clang_getTypedefDeclUnderlyingType? _clang_getTypedefDeclUnderlyingType;
+  late final _clang_getTypedefDeclUnderlyingType_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_getTypedefDeclUnderlyingType>>(
+          'clang_getTypedefDeclUnderlyingType');
+  late final _dart_clang_getTypedefDeclUnderlyingType
+      _clang_getTypedefDeclUnderlyingType =
+      _clang_getTypedefDeclUnderlyingType_ptr
+          .asFunction<_dart_clang_getTypedefDeclUnderlyingType>();
 
   /// Retrieve the integer type of an enum declaration.
   ///
@@ -2536,15 +2740,17 @@
   CXType clang_getEnumDeclIntegerType(
     CXCursor C,
   ) {
-    return (_clang_getEnumDeclIntegerType ??=
-        _lookup<ffi.NativeFunction<_c_clang_getEnumDeclIntegerType>>(
-                'clang_getEnumDeclIntegerType')
-            .asFunction<_dart_clang_getEnumDeclIntegerType>())(
+    return _clang_getEnumDeclIntegerType(
       C,
     );
   }
 
-  _dart_clang_getEnumDeclIntegerType? _clang_getEnumDeclIntegerType;
+  late final _clang_getEnumDeclIntegerType_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_getEnumDeclIntegerType>>(
+          'clang_getEnumDeclIntegerType');
+  late final _dart_clang_getEnumDeclIntegerType _clang_getEnumDeclIntegerType =
+      _clang_getEnumDeclIntegerType_ptr
+          .asFunction<_dart_clang_getEnumDeclIntegerType>();
 
   /// Retrieve the integer value of an enum constant declaration as a signed
   /// long long.
@@ -2555,15 +2761,17 @@
   int clang_getEnumConstantDeclValue(
     CXCursor C,
   ) {
-    return (_clang_getEnumConstantDeclValue ??=
-        _lookup<ffi.NativeFunction<_c_clang_getEnumConstantDeclValue>>(
-                'clang_getEnumConstantDeclValue')
-            .asFunction<_dart_clang_getEnumConstantDeclValue>())(
+    return _clang_getEnumConstantDeclValue(
       C,
     );
   }
 
-  _dart_clang_getEnumConstantDeclValue? _clang_getEnumConstantDeclValue;
+  late final _clang_getEnumConstantDeclValue_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_getEnumConstantDeclValue>>(
+          'clang_getEnumConstantDeclValue');
+  late final _dart_clang_getEnumConstantDeclValue
+      _clang_getEnumConstantDeclValue = _clang_getEnumConstantDeclValue_ptr
+          .asFunction<_dart_clang_getEnumConstantDeclValue>();
 
   /// Retrieve the integer value of an enum constant declaration as an unsigned
   /// long long.
@@ -2574,16 +2782,18 @@
   int clang_getEnumConstantDeclUnsignedValue(
     CXCursor C,
   ) {
-    return (_clang_getEnumConstantDeclUnsignedValue ??=
-        _lookup<ffi.NativeFunction<_c_clang_getEnumConstantDeclUnsignedValue>>(
-                'clang_getEnumConstantDeclUnsignedValue')
-            .asFunction<_dart_clang_getEnumConstantDeclUnsignedValue>())(
+    return _clang_getEnumConstantDeclUnsignedValue(
       C,
     );
   }
 
-  _dart_clang_getEnumConstantDeclUnsignedValue?
-      _clang_getEnumConstantDeclUnsignedValue;
+  late final _clang_getEnumConstantDeclUnsignedValue_ptr = _lookup<
+          ffi.NativeFunction<Native_clang_getEnumConstantDeclUnsignedValue>>(
+      'clang_getEnumConstantDeclUnsignedValue');
+  late final _dart_clang_getEnumConstantDeclUnsignedValue
+      _clang_getEnumConstantDeclUnsignedValue =
+      _clang_getEnumConstantDeclUnsignedValue_ptr
+          .asFunction<_dart_clang_getEnumConstantDeclUnsignedValue>();
 
   /// Retrieve the bit width of a bit field declaration as an integer.
   ///
@@ -2591,15 +2801,17 @@
   int clang_getFieldDeclBitWidth(
     CXCursor C,
   ) {
-    return (_clang_getFieldDeclBitWidth ??=
-        _lookup<ffi.NativeFunction<_c_clang_getFieldDeclBitWidth>>(
-                'clang_getFieldDeclBitWidth')
-            .asFunction<_dart_clang_getFieldDeclBitWidth>())(
+    return _clang_getFieldDeclBitWidth(
       C,
     );
   }
 
-  _dart_clang_getFieldDeclBitWidth? _clang_getFieldDeclBitWidth;
+  late final _clang_getFieldDeclBitWidth_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_getFieldDeclBitWidth>>(
+          'clang_getFieldDeclBitWidth');
+  late final _dart_clang_getFieldDeclBitWidth _clang_getFieldDeclBitWidth =
+      _clang_getFieldDeclBitWidth_ptr
+          .asFunction<_dart_clang_getFieldDeclBitWidth>();
 
   /// Retrieve the number of non-variadic arguments associated with a given
   /// cursor.
@@ -2609,15 +2821,17 @@
   int clang_Cursor_getNumArguments(
     CXCursor C,
   ) {
-    return (_clang_Cursor_getNumArguments ??=
-        _lookup<ffi.NativeFunction<_c_clang_Cursor_getNumArguments>>(
-                'clang_Cursor_getNumArguments')
-            .asFunction<_dart_clang_Cursor_getNumArguments>())(
+    return _clang_Cursor_getNumArguments(
       C,
     );
   }
 
-  _dart_clang_Cursor_getNumArguments? _clang_Cursor_getNumArguments;
+  late final _clang_Cursor_getNumArguments_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_Cursor_getNumArguments>>(
+          'clang_Cursor_getNumArguments');
+  late final _dart_clang_Cursor_getNumArguments _clang_Cursor_getNumArguments =
+      _clang_Cursor_getNumArguments_ptr
+          .asFunction<_dart_clang_Cursor_getNumArguments>();
 
   /// Retrieve the argument cursor of a function or method.
   ///
@@ -2628,16 +2842,18 @@
     CXCursor C,
     int i,
   ) {
-    return (_clang_Cursor_getArgument ??=
-        _lookup<ffi.NativeFunction<_c_clang_Cursor_getArgument>>(
-                'clang_Cursor_getArgument')
-            .asFunction<_dart_clang_Cursor_getArgument>())(
+    return _clang_Cursor_getArgument(
       C,
       i,
     );
   }
 
-  _dart_clang_Cursor_getArgument? _clang_Cursor_getArgument;
+  late final _clang_Cursor_getArgument_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_Cursor_getArgument>>(
+          'clang_Cursor_getArgument');
+  late final _dart_clang_Cursor_getArgument _clang_Cursor_getArgument =
+      _clang_Cursor_getArgument_ptr
+          .asFunction<_dart_clang_Cursor_getArgument>();
 
   /// Returns the number of template args of a function decl representing a
   /// template specialization.
@@ -2656,16 +2872,18 @@
   int clang_Cursor_getNumTemplateArguments(
     CXCursor C,
   ) {
-    return (_clang_Cursor_getNumTemplateArguments ??=
-        _lookup<ffi.NativeFunction<_c_clang_Cursor_getNumTemplateArguments>>(
-                'clang_Cursor_getNumTemplateArguments')
-            .asFunction<_dart_clang_Cursor_getNumTemplateArguments>())(
+    return _clang_Cursor_getNumTemplateArguments(
       C,
     );
   }
 
-  _dart_clang_Cursor_getNumTemplateArguments?
-      _clang_Cursor_getNumTemplateArguments;
+  late final _clang_Cursor_getNumTemplateArguments_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_Cursor_getNumTemplateArguments>>(
+          'clang_Cursor_getNumTemplateArguments');
+  late final _dart_clang_Cursor_getNumTemplateArguments
+      _clang_Cursor_getNumTemplateArguments =
+      _clang_Cursor_getNumTemplateArguments_ptr
+          .asFunction<_dart_clang_Cursor_getNumTemplateArguments>();
 
   /// Retrieve the kind of the I'th template argument of the CXCursor C.
   ///
@@ -2685,17 +2903,19 @@
     CXCursor C,
     int I,
   ) {
-    return (_clang_Cursor_getTemplateArgumentKind ??=
-        _lookup<ffi.NativeFunction<_c_clang_Cursor_getTemplateArgumentKind>>(
-                'clang_Cursor_getTemplateArgumentKind')
-            .asFunction<_dart_clang_Cursor_getTemplateArgumentKind>())(
+    return _clang_Cursor_getTemplateArgumentKind(
       C,
       I,
     );
   }
 
-  _dart_clang_Cursor_getTemplateArgumentKind?
-      _clang_Cursor_getTemplateArgumentKind;
+  late final _clang_Cursor_getTemplateArgumentKind_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_Cursor_getTemplateArgumentKind>>(
+          'clang_Cursor_getTemplateArgumentKind');
+  late final _dart_clang_Cursor_getTemplateArgumentKind
+      _clang_Cursor_getTemplateArgumentKind =
+      _clang_Cursor_getTemplateArgumentKind_ptr
+          .asFunction<_dart_clang_Cursor_getTemplateArgumentKind>();
 
   /// Retrieve a CXType representing the type of a TemplateArgument of a
   /// function decl representing a template specialization.
@@ -2717,17 +2937,19 @@
     CXCursor C,
     int I,
   ) {
-    return (_clang_Cursor_getTemplateArgumentType ??=
-        _lookup<ffi.NativeFunction<_c_clang_Cursor_getTemplateArgumentType>>(
-                'clang_Cursor_getTemplateArgumentType')
-            .asFunction<_dart_clang_Cursor_getTemplateArgumentType>())(
+    return _clang_Cursor_getTemplateArgumentType(
       C,
       I,
     );
   }
 
-  _dart_clang_Cursor_getTemplateArgumentType?
-      _clang_Cursor_getTemplateArgumentType;
+  late final _clang_Cursor_getTemplateArgumentType_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_Cursor_getTemplateArgumentType>>(
+          'clang_Cursor_getTemplateArgumentType');
+  late final _dart_clang_Cursor_getTemplateArgumentType
+      _clang_Cursor_getTemplateArgumentType =
+      _clang_Cursor_getTemplateArgumentType_ptr
+          .asFunction<_dart_clang_Cursor_getTemplateArgumentType>();
 
   /// Retrieve the value of an Integral TemplateArgument (of a function
   /// decl representing a template specialization) as a signed long long.
@@ -2748,17 +2970,19 @@
     CXCursor C,
     int I,
   ) {
-    return (_clang_Cursor_getTemplateArgumentValue ??=
-        _lookup<ffi.NativeFunction<_c_clang_Cursor_getTemplateArgumentValue>>(
-                'clang_Cursor_getTemplateArgumentValue')
-            .asFunction<_dart_clang_Cursor_getTemplateArgumentValue>())(
+    return _clang_Cursor_getTemplateArgumentValue(
       C,
       I,
     );
   }
 
-  _dart_clang_Cursor_getTemplateArgumentValue?
-      _clang_Cursor_getTemplateArgumentValue;
+  late final _clang_Cursor_getTemplateArgumentValue_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_Cursor_getTemplateArgumentValue>>(
+          'clang_Cursor_getTemplateArgumentValue');
+  late final _dart_clang_Cursor_getTemplateArgumentValue
+      _clang_Cursor_getTemplateArgumentValue =
+      _clang_Cursor_getTemplateArgumentValue_ptr
+          .asFunction<_dart_clang_Cursor_getTemplateArgumentValue>();
 
   /// Retrieve the value of an Integral TemplateArgument (of a function
   /// decl representing a template specialization) as an unsigned long long.
@@ -2779,18 +3003,20 @@
     CXCursor C,
     int I,
   ) {
-    return (_clang_Cursor_getTemplateArgumentUnsignedValue ??= _lookup<
-                ffi.NativeFunction<
-                    _c_clang_Cursor_getTemplateArgumentUnsignedValue>>(
-            'clang_Cursor_getTemplateArgumentUnsignedValue')
-        .asFunction<_dart_clang_Cursor_getTemplateArgumentUnsignedValue>())(
+    return _clang_Cursor_getTemplateArgumentUnsignedValue(
       C,
       I,
     );
   }
 
-  _dart_clang_Cursor_getTemplateArgumentUnsignedValue?
-      _clang_Cursor_getTemplateArgumentUnsignedValue;
+  late final _clang_Cursor_getTemplateArgumentUnsignedValue_ptr = _lookup<
+          ffi.NativeFunction<
+              Native_clang_Cursor_getTemplateArgumentUnsignedValue>>(
+      'clang_Cursor_getTemplateArgumentUnsignedValue');
+  late final _dart_clang_Cursor_getTemplateArgumentUnsignedValue
+      _clang_Cursor_getTemplateArgumentUnsignedValue =
+      _clang_Cursor_getTemplateArgumentUnsignedValue_ptr
+          .asFunction<_dart_clang_Cursor_getTemplateArgumentUnsignedValue>();
 
   /// Determine whether two CXTypes represent the same type.
   ///
@@ -2800,15 +3026,16 @@
     CXType A,
     CXType B,
   ) {
-    return (_clang_equalTypes ??=
-        _lookup<ffi.NativeFunction<_c_clang_equalTypes>>('clang_equalTypes')
-            .asFunction<_dart_clang_equalTypes>())(
+    return _clang_equalTypes(
       A,
       B,
     );
   }
 
-  _dart_clang_equalTypes? _clang_equalTypes;
+  late final _clang_equalTypes_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_equalTypes>>('clang_equalTypes');
+  late final _dart_clang_equalTypes _clang_equalTypes =
+      _clang_equalTypes_ptr.asFunction<_dart_clang_equalTypes>();
 
   /// Return the canonical type for a CXType.
   ///
@@ -2819,15 +3046,16 @@
   CXType clang_getCanonicalType(
     CXType T,
   ) {
-    return (_clang_getCanonicalType ??=
-        _lookup<ffi.NativeFunction<_c_clang_getCanonicalType>>(
-                'clang_getCanonicalType')
-            .asFunction<_dart_clang_getCanonicalType>())(
+    return _clang_getCanonicalType(
       T,
     );
   }
 
-  _dart_clang_getCanonicalType? _clang_getCanonicalType;
+  late final _clang_getCanonicalType_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_getCanonicalType>>(
+          'clang_getCanonicalType');
+  late final _dart_clang_getCanonicalType _clang_getCanonicalType =
+      _clang_getCanonicalType_ptr.asFunction<_dart_clang_getCanonicalType>();
 
   /// Determine whether a CXType has the "const" qualifier set,
   /// without looking through typedefs that may have added "const" at a
@@ -2835,60 +3063,68 @@
   int clang_isConstQualifiedType(
     CXType T,
   ) {
-    return (_clang_isConstQualifiedType ??=
-        _lookup<ffi.NativeFunction<_c_clang_isConstQualifiedType>>(
-                'clang_isConstQualifiedType')
-            .asFunction<_dart_clang_isConstQualifiedType>())(
+    return _clang_isConstQualifiedType(
       T,
     );
   }
 
-  _dart_clang_isConstQualifiedType? _clang_isConstQualifiedType;
+  late final _clang_isConstQualifiedType_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_isConstQualifiedType>>(
+          'clang_isConstQualifiedType');
+  late final _dart_clang_isConstQualifiedType _clang_isConstQualifiedType =
+      _clang_isConstQualifiedType_ptr
+          .asFunction<_dart_clang_isConstQualifiedType>();
 
   /// Determine whether a  CXCursor that is a macro, is
   /// function like.
   int clang_Cursor_isMacroFunctionLike(
     CXCursor C,
   ) {
-    return (_clang_Cursor_isMacroFunctionLike ??=
-        _lookup<ffi.NativeFunction<_c_clang_Cursor_isMacroFunctionLike>>(
-                'clang_Cursor_isMacroFunctionLike')
-            .asFunction<_dart_clang_Cursor_isMacroFunctionLike>())(
+    return _clang_Cursor_isMacroFunctionLike(
       C,
     );
   }
 
-  _dart_clang_Cursor_isMacroFunctionLike? _clang_Cursor_isMacroFunctionLike;
+  late final _clang_Cursor_isMacroFunctionLike_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_Cursor_isMacroFunctionLike>>(
+          'clang_Cursor_isMacroFunctionLike');
+  late final _dart_clang_Cursor_isMacroFunctionLike
+      _clang_Cursor_isMacroFunctionLike = _clang_Cursor_isMacroFunctionLike_ptr
+          .asFunction<_dart_clang_Cursor_isMacroFunctionLike>();
 
   /// Determine whether a  CXCursor that is a macro, is a
   /// builtin one.
   int clang_Cursor_isMacroBuiltin(
     CXCursor C,
   ) {
-    return (_clang_Cursor_isMacroBuiltin ??=
-        _lookup<ffi.NativeFunction<_c_clang_Cursor_isMacroBuiltin>>(
-                'clang_Cursor_isMacroBuiltin')
-            .asFunction<_dart_clang_Cursor_isMacroBuiltin>())(
+    return _clang_Cursor_isMacroBuiltin(
       C,
     );
   }
 
-  _dart_clang_Cursor_isMacroBuiltin? _clang_Cursor_isMacroBuiltin;
+  late final _clang_Cursor_isMacroBuiltin_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_Cursor_isMacroBuiltin>>(
+          'clang_Cursor_isMacroBuiltin');
+  late final _dart_clang_Cursor_isMacroBuiltin _clang_Cursor_isMacroBuiltin =
+      _clang_Cursor_isMacroBuiltin_ptr
+          .asFunction<_dart_clang_Cursor_isMacroBuiltin>();
 
   /// Determine whether a  CXCursor that is a function declaration, is an
   /// inline declaration.
   int clang_Cursor_isFunctionInlined(
     CXCursor C,
   ) {
-    return (_clang_Cursor_isFunctionInlined ??=
-        _lookup<ffi.NativeFunction<_c_clang_Cursor_isFunctionInlined>>(
-                'clang_Cursor_isFunctionInlined')
-            .asFunction<_dart_clang_Cursor_isFunctionInlined>())(
+    return _clang_Cursor_isFunctionInlined(
       C,
     );
   }
 
-  _dart_clang_Cursor_isFunctionInlined? _clang_Cursor_isFunctionInlined;
+  late final _clang_Cursor_isFunctionInlined_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_Cursor_isFunctionInlined>>(
+          'clang_Cursor_isFunctionInlined');
+  late final _dart_clang_Cursor_isFunctionInlined
+      _clang_Cursor_isFunctionInlined = _clang_Cursor_isFunctionInlined_ptr
+          .asFunction<_dart_clang_Cursor_isFunctionInlined>();
 
   /// Determine whether a CXType has the "volatile" qualifier set,
   /// without looking through typedefs that may have added "volatile" at
@@ -2896,15 +3132,17 @@
   int clang_isVolatileQualifiedType(
     CXType T,
   ) {
-    return (_clang_isVolatileQualifiedType ??=
-        _lookup<ffi.NativeFunction<_c_clang_isVolatileQualifiedType>>(
-                'clang_isVolatileQualifiedType')
-            .asFunction<_dart_clang_isVolatileQualifiedType>())(
+    return _clang_isVolatileQualifiedType(
       T,
     );
   }
 
-  _dart_clang_isVolatileQualifiedType? _clang_isVolatileQualifiedType;
+  late final _clang_isVolatileQualifiedType_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_isVolatileQualifiedType>>(
+          'clang_isVolatileQualifiedType');
+  late final _dart_clang_isVolatileQualifiedType
+      _clang_isVolatileQualifiedType = _clang_isVolatileQualifiedType_ptr
+          .asFunction<_dart_clang_isVolatileQualifiedType>();
 
   /// Determine whether a CXType has the "restrict" qualifier set,
   /// without looking through typedefs that may have added "restrict" at a
@@ -2912,113 +3150,126 @@
   int clang_isRestrictQualifiedType(
     CXType T,
   ) {
-    return (_clang_isRestrictQualifiedType ??=
-        _lookup<ffi.NativeFunction<_c_clang_isRestrictQualifiedType>>(
-                'clang_isRestrictQualifiedType')
-            .asFunction<_dart_clang_isRestrictQualifiedType>())(
+    return _clang_isRestrictQualifiedType(
       T,
     );
   }
 
-  _dart_clang_isRestrictQualifiedType? _clang_isRestrictQualifiedType;
+  late final _clang_isRestrictQualifiedType_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_isRestrictQualifiedType>>(
+          'clang_isRestrictQualifiedType');
+  late final _dart_clang_isRestrictQualifiedType
+      _clang_isRestrictQualifiedType = _clang_isRestrictQualifiedType_ptr
+          .asFunction<_dart_clang_isRestrictQualifiedType>();
 
   /// Returns the address space of the given type.
   int clang_getAddressSpace(
     CXType T,
   ) {
-    return (_clang_getAddressSpace ??=
-        _lookup<ffi.NativeFunction<_c_clang_getAddressSpace>>(
-                'clang_getAddressSpace')
-            .asFunction<_dart_clang_getAddressSpace>())(
+    return _clang_getAddressSpace(
       T,
     );
   }
 
-  _dart_clang_getAddressSpace? _clang_getAddressSpace;
+  late final _clang_getAddressSpace_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_getAddressSpace>>(
+          'clang_getAddressSpace');
+  late final _dart_clang_getAddressSpace _clang_getAddressSpace =
+      _clang_getAddressSpace_ptr.asFunction<_dart_clang_getAddressSpace>();
 
   /// Returns the typedef name of the given type.
   CXString clang_getTypedefName(
     CXType CT,
   ) {
-    return (_clang_getTypedefName ??=
-        _lookup<ffi.NativeFunction<_c_clang_getTypedefName>>(
-                'clang_getTypedefName')
-            .asFunction<_dart_clang_getTypedefName>())(
+    return _clang_getTypedefName(
       CT,
     );
   }
 
-  _dart_clang_getTypedefName? _clang_getTypedefName;
+  late final _clang_getTypedefName_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_getTypedefName>>(
+          'clang_getTypedefName');
+  late final _dart_clang_getTypedefName _clang_getTypedefName =
+      _clang_getTypedefName_ptr.asFunction<_dart_clang_getTypedefName>();
 
   /// For pointer types, returns the type of the pointee.
   CXType clang_getPointeeType(
     CXType T,
   ) {
-    return (_clang_getPointeeType ??=
-        _lookup<ffi.NativeFunction<_c_clang_getPointeeType>>(
-                'clang_getPointeeType')
-            .asFunction<_dart_clang_getPointeeType>())(
+    return _clang_getPointeeType(
       T,
     );
   }
 
-  _dart_clang_getPointeeType? _clang_getPointeeType;
+  late final _clang_getPointeeType_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_getPointeeType>>(
+          'clang_getPointeeType');
+  late final _dart_clang_getPointeeType _clang_getPointeeType =
+      _clang_getPointeeType_ptr.asFunction<_dart_clang_getPointeeType>();
 
   /// Return the cursor for the declaration of the given type.
   CXCursor clang_getTypeDeclaration(
     CXType T,
   ) {
-    return (_clang_getTypeDeclaration ??=
-        _lookup<ffi.NativeFunction<_c_clang_getTypeDeclaration>>(
-                'clang_getTypeDeclaration')
-            .asFunction<_dart_clang_getTypeDeclaration>())(
+    return _clang_getTypeDeclaration(
       T,
     );
   }
 
-  _dart_clang_getTypeDeclaration? _clang_getTypeDeclaration;
+  late final _clang_getTypeDeclaration_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_getTypeDeclaration>>(
+          'clang_getTypeDeclaration');
+  late final _dart_clang_getTypeDeclaration _clang_getTypeDeclaration =
+      _clang_getTypeDeclaration_ptr
+          .asFunction<_dart_clang_getTypeDeclaration>();
 
   /// Returns the Objective-C type encoding for the specified declaration.
   CXString clang_getDeclObjCTypeEncoding(
     CXCursor C,
   ) {
-    return (_clang_getDeclObjCTypeEncoding ??=
-        _lookup<ffi.NativeFunction<_c_clang_getDeclObjCTypeEncoding>>(
-                'clang_getDeclObjCTypeEncoding')
-            .asFunction<_dart_clang_getDeclObjCTypeEncoding>())(
+    return _clang_getDeclObjCTypeEncoding(
       C,
     );
   }
 
-  _dart_clang_getDeclObjCTypeEncoding? _clang_getDeclObjCTypeEncoding;
+  late final _clang_getDeclObjCTypeEncoding_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_getDeclObjCTypeEncoding>>(
+          'clang_getDeclObjCTypeEncoding');
+  late final _dart_clang_getDeclObjCTypeEncoding
+      _clang_getDeclObjCTypeEncoding = _clang_getDeclObjCTypeEncoding_ptr
+          .asFunction<_dart_clang_getDeclObjCTypeEncoding>();
 
   /// Returns the Objective-C type encoding for the specified CXType.
   CXString clang_Type_getObjCEncoding(
     CXType type,
   ) {
-    return (_clang_Type_getObjCEncoding ??=
-        _lookup<ffi.NativeFunction<_c_clang_Type_getObjCEncoding>>(
-                'clang_Type_getObjCEncoding')
-            .asFunction<_dart_clang_Type_getObjCEncoding>())(
+    return _clang_Type_getObjCEncoding(
       type,
     );
   }
 
-  _dart_clang_Type_getObjCEncoding? _clang_Type_getObjCEncoding;
+  late final _clang_Type_getObjCEncoding_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_Type_getObjCEncoding>>(
+          'clang_Type_getObjCEncoding');
+  late final _dart_clang_Type_getObjCEncoding _clang_Type_getObjCEncoding =
+      _clang_Type_getObjCEncoding_ptr
+          .asFunction<_dart_clang_Type_getObjCEncoding>();
 
   /// Retrieve the spelling of a given CXTypeKind.
   CXString clang_getTypeKindSpelling(
     int K,
   ) {
-    return (_clang_getTypeKindSpelling ??=
-        _lookup<ffi.NativeFunction<_c_clang_getTypeKindSpelling>>(
-                'clang_getTypeKindSpelling')
-            .asFunction<_dart_clang_getTypeKindSpelling>())(
+    return _clang_getTypeKindSpelling(
       K,
     );
   }
 
-  _dart_clang_getTypeKindSpelling? _clang_getTypeKindSpelling;
+  late final _clang_getTypeKindSpelling_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_getTypeKindSpelling>>(
+          'clang_getTypeKindSpelling');
+  late final _dart_clang_getTypeKindSpelling _clang_getTypeKindSpelling =
+      _clang_getTypeKindSpelling_ptr
+          .asFunction<_dart_clang_getTypeKindSpelling>();
 
   /// Retrieve the calling convention associated with a function type.
   ///
@@ -3026,15 +3277,17 @@
   int clang_getFunctionTypeCallingConv(
     CXType T,
   ) {
-    return (_clang_getFunctionTypeCallingConv ??=
-        _lookup<ffi.NativeFunction<_c_clang_getFunctionTypeCallingConv>>(
-                'clang_getFunctionTypeCallingConv')
-            .asFunction<_dart_clang_getFunctionTypeCallingConv>())(
+    return _clang_getFunctionTypeCallingConv(
       T,
     );
   }
 
-  _dart_clang_getFunctionTypeCallingConv? _clang_getFunctionTypeCallingConv;
+  late final _clang_getFunctionTypeCallingConv_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_getFunctionTypeCallingConv>>(
+          'clang_getFunctionTypeCallingConv');
+  late final _dart_clang_getFunctionTypeCallingConv
+      _clang_getFunctionTypeCallingConv = _clang_getFunctionTypeCallingConv_ptr
+          .asFunction<_dart_clang_getFunctionTypeCallingConv>();
 
   /// Retrieve the return type associated with a function type.
   ///
@@ -3042,15 +3295,16 @@
   CXType clang_getResultType(
     CXType T,
   ) {
-    return (_clang_getResultType ??=
-        _lookup<ffi.NativeFunction<_c_clang_getResultType>>(
-                'clang_getResultType')
-            .asFunction<_dart_clang_getResultType>())(
+    return _clang_getResultType(
       T,
     );
   }
 
-  _dart_clang_getResultType? _clang_getResultType;
+  late final _clang_getResultType_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_getResultType>>(
+          'clang_getResultType');
+  late final _dart_clang_getResultType _clang_getResultType =
+      _clang_getResultType_ptr.asFunction<_dart_clang_getResultType>();
 
   /// Retrieve the exception specification type associated with a function type.
   /// This is a value of type CXCursor_ExceptionSpecificationKind.
@@ -3059,16 +3313,18 @@
   int clang_getExceptionSpecificationType(
     CXType T,
   ) {
-    return (_clang_getExceptionSpecificationType ??=
-        _lookup<ffi.NativeFunction<_c_clang_getExceptionSpecificationType>>(
-                'clang_getExceptionSpecificationType')
-            .asFunction<_dart_clang_getExceptionSpecificationType>())(
+    return _clang_getExceptionSpecificationType(
       T,
     );
   }
 
-  _dart_clang_getExceptionSpecificationType?
-      _clang_getExceptionSpecificationType;
+  late final _clang_getExceptionSpecificationType_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_getExceptionSpecificationType>>(
+          'clang_getExceptionSpecificationType');
+  late final _dart_clang_getExceptionSpecificationType
+      _clang_getExceptionSpecificationType =
+      _clang_getExceptionSpecificationType_ptr
+          .asFunction<_dart_clang_getExceptionSpecificationType>();
 
   /// Retrieve the number of non-variadic parameters associated with a
   /// function type.
@@ -3077,15 +3333,16 @@
   int clang_getNumArgTypes(
     CXType T,
   ) {
-    return (_clang_getNumArgTypes ??=
-        _lookup<ffi.NativeFunction<_c_clang_getNumArgTypes>>(
-                'clang_getNumArgTypes')
-            .asFunction<_dart_clang_getNumArgTypes>())(
+    return _clang_getNumArgTypes(
       T,
     );
   }
 
-  _dart_clang_getNumArgTypes? _clang_getNumArgTypes;
+  late final _clang_getNumArgTypes_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_getNumArgTypes>>(
+          'clang_getNumArgTypes');
+  late final _dart_clang_getNumArgTypes _clang_getNumArgTypes =
+      _clang_getNumArgTypes_ptr.asFunction<_dart_clang_getNumArgTypes>();
 
   /// Retrieve the type of a parameter of a function type.
   ///
@@ -3095,15 +3352,16 @@
     CXType T,
     int i,
   ) {
-    return (_clang_getArgType ??=
-        _lookup<ffi.NativeFunction<_c_clang_getArgType>>('clang_getArgType')
-            .asFunction<_dart_clang_getArgType>())(
+    return _clang_getArgType(
       T,
       i,
     );
   }
 
-  _dart_clang_getArgType? _clang_getArgType;
+  late final _clang_getArgType_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_getArgType>>('clang_getArgType');
+  late final _dart_clang_getArgType _clang_getArgType =
+      _clang_getArgType_ptr.asFunction<_dart_clang_getArgType>();
 
   /// Retrieves the base type of the ObjCObjectType.
   ///
@@ -3111,15 +3369,17 @@
   CXType clang_Type_getObjCObjectBaseType(
     CXType T,
   ) {
-    return (_clang_Type_getObjCObjectBaseType ??=
-        _lookup<ffi.NativeFunction<_c_clang_Type_getObjCObjectBaseType>>(
-                'clang_Type_getObjCObjectBaseType')
-            .asFunction<_dart_clang_Type_getObjCObjectBaseType>())(
+    return _clang_Type_getObjCObjectBaseType(
       T,
     );
   }
 
-  _dart_clang_Type_getObjCObjectBaseType? _clang_Type_getObjCObjectBaseType;
+  late final _clang_Type_getObjCObjectBaseType_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_Type_getObjCObjectBaseType>>(
+          'clang_Type_getObjCObjectBaseType');
+  late final _dart_clang_Type_getObjCObjectBaseType
+      _clang_Type_getObjCObjectBaseType = _clang_Type_getObjCObjectBaseType_ptr
+          .asFunction<_dart_clang_Type_getObjCObjectBaseType>();
 
   /// Retrieve the number of protocol references associated with an ObjC object/id.
   ///
@@ -3127,15 +3387,18 @@
   int clang_Type_getNumObjCProtocolRefs(
     CXType T,
   ) {
-    return (_clang_Type_getNumObjCProtocolRefs ??=
-        _lookup<ffi.NativeFunction<_c_clang_Type_getNumObjCProtocolRefs>>(
-                'clang_Type_getNumObjCProtocolRefs')
-            .asFunction<_dart_clang_Type_getNumObjCProtocolRefs>())(
+    return _clang_Type_getNumObjCProtocolRefs(
       T,
     );
   }
 
-  _dart_clang_Type_getNumObjCProtocolRefs? _clang_Type_getNumObjCProtocolRefs;
+  late final _clang_Type_getNumObjCProtocolRefs_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_Type_getNumObjCProtocolRefs>>(
+          'clang_Type_getNumObjCProtocolRefs');
+  late final _dart_clang_Type_getNumObjCProtocolRefs
+      _clang_Type_getNumObjCProtocolRefs =
+      _clang_Type_getNumObjCProtocolRefs_ptr
+          .asFunction<_dart_clang_Type_getNumObjCProtocolRefs>();
 
   /// Retrieve the decl for a protocol reference for an ObjC object/id.
   ///
@@ -3145,16 +3408,18 @@
     CXType T,
     int i,
   ) {
-    return (_clang_Type_getObjCProtocolDecl ??=
-        _lookup<ffi.NativeFunction<_c_clang_Type_getObjCProtocolDecl>>(
-                'clang_Type_getObjCProtocolDecl')
-            .asFunction<_dart_clang_Type_getObjCProtocolDecl>())(
+    return _clang_Type_getObjCProtocolDecl(
       T,
       i,
     );
   }
 
-  _dart_clang_Type_getObjCProtocolDecl? _clang_Type_getObjCProtocolDecl;
+  late final _clang_Type_getObjCProtocolDecl_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_Type_getObjCProtocolDecl>>(
+          'clang_Type_getObjCProtocolDecl');
+  late final _dart_clang_Type_getObjCProtocolDecl
+      _clang_Type_getObjCProtocolDecl = _clang_Type_getObjCProtocolDecl_ptr
+          .asFunction<_dart_clang_Type_getObjCProtocolDecl>();
 
   /// Retreive the number of type arguments associated with an ObjC object.
   ///
@@ -3162,15 +3427,17 @@
   int clang_Type_getNumObjCTypeArgs(
     CXType T,
   ) {
-    return (_clang_Type_getNumObjCTypeArgs ??=
-        _lookup<ffi.NativeFunction<_c_clang_Type_getNumObjCTypeArgs>>(
-                'clang_Type_getNumObjCTypeArgs')
-            .asFunction<_dart_clang_Type_getNumObjCTypeArgs>())(
+    return _clang_Type_getNumObjCTypeArgs(
       T,
     );
   }
 
-  _dart_clang_Type_getNumObjCTypeArgs? _clang_Type_getNumObjCTypeArgs;
+  late final _clang_Type_getNumObjCTypeArgs_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_Type_getNumObjCTypeArgs>>(
+          'clang_Type_getNumObjCTypeArgs');
+  late final _dart_clang_Type_getNumObjCTypeArgs
+      _clang_Type_getNumObjCTypeArgs = _clang_Type_getNumObjCTypeArgs_ptr
+          .asFunction<_dart_clang_Type_getNumObjCTypeArgs>();
 
   /// Retrieve a type argument associated with an ObjC object.
   ///
@@ -3180,30 +3447,34 @@
     CXType T,
     int i,
   ) {
-    return (_clang_Type_getObjCTypeArg ??=
-        _lookup<ffi.NativeFunction<_c_clang_Type_getObjCTypeArg>>(
-                'clang_Type_getObjCTypeArg')
-            .asFunction<_dart_clang_Type_getObjCTypeArg>())(
+    return _clang_Type_getObjCTypeArg(
       T,
       i,
     );
   }
 
-  _dart_clang_Type_getObjCTypeArg? _clang_Type_getObjCTypeArg;
+  late final _clang_Type_getObjCTypeArg_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_Type_getObjCTypeArg>>(
+          'clang_Type_getObjCTypeArg');
+  late final _dart_clang_Type_getObjCTypeArg _clang_Type_getObjCTypeArg =
+      _clang_Type_getObjCTypeArg_ptr
+          .asFunction<_dart_clang_Type_getObjCTypeArg>();
 
   /// Return 1 if the CXType is a variadic function type, and 0 otherwise.
   int clang_isFunctionTypeVariadic(
     CXType T,
   ) {
-    return (_clang_isFunctionTypeVariadic ??=
-        _lookup<ffi.NativeFunction<_c_clang_isFunctionTypeVariadic>>(
-                'clang_isFunctionTypeVariadic')
-            .asFunction<_dart_clang_isFunctionTypeVariadic>())(
+    return _clang_isFunctionTypeVariadic(
       T,
     );
   }
 
-  _dart_clang_isFunctionTypeVariadic? _clang_isFunctionTypeVariadic;
+  late final _clang_isFunctionTypeVariadic_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_isFunctionTypeVariadic>>(
+          'clang_isFunctionTypeVariadic');
+  late final _dart_clang_isFunctionTypeVariadic _clang_isFunctionTypeVariadic =
+      _clang_isFunctionTypeVariadic_ptr
+          .asFunction<_dart_clang_isFunctionTypeVariadic>();
 
   /// Retrieve the return type associated with a given cursor.
   ///
@@ -3211,15 +3482,17 @@
   CXType clang_getCursorResultType(
     CXCursor C,
   ) {
-    return (_clang_getCursorResultType ??=
-        _lookup<ffi.NativeFunction<_c_clang_getCursorResultType>>(
-                'clang_getCursorResultType')
-            .asFunction<_dart_clang_getCursorResultType>())(
+    return _clang_getCursorResultType(
       C,
     );
   }
 
-  _dart_clang_getCursorResultType? _clang_getCursorResultType;
+  late final _clang_getCursorResultType_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_getCursorResultType>>(
+          'clang_getCursorResultType');
+  late final _dart_clang_getCursorResultType _clang_getCursorResultType =
+      _clang_getCursorResultType_ptr
+          .asFunction<_dart_clang_getCursorResultType>();
 
   /// Retrieve the exception specification type associated with a given cursor.
   /// This is a value of type CXCursor_ExceptionSpecificationKind.
@@ -3228,31 +3501,33 @@
   int clang_getCursorExceptionSpecificationType(
     CXCursor C,
   ) {
-    return (_clang_getCursorExceptionSpecificationType ??= _lookup<
-                ffi.NativeFunction<
-                    _c_clang_getCursorExceptionSpecificationType>>(
-            'clang_getCursorExceptionSpecificationType')
-        .asFunction<_dart_clang_getCursorExceptionSpecificationType>())(
+    return _clang_getCursorExceptionSpecificationType(
       C,
     );
   }
 
-  _dart_clang_getCursorExceptionSpecificationType?
-      _clang_getCursorExceptionSpecificationType;
+  late final _clang_getCursorExceptionSpecificationType_ptr = _lookup<
+          ffi.NativeFunction<Native_clang_getCursorExceptionSpecificationType>>(
+      'clang_getCursorExceptionSpecificationType');
+  late final _dart_clang_getCursorExceptionSpecificationType
+      _clang_getCursorExceptionSpecificationType =
+      _clang_getCursorExceptionSpecificationType_ptr
+          .asFunction<_dart_clang_getCursorExceptionSpecificationType>();
 
   /// Return 1 if the CXType is a POD (plain old data) type, and 0
   /// otherwise.
   int clang_isPODType(
     CXType T,
   ) {
-    return (_clang_isPODType ??=
-        _lookup<ffi.NativeFunction<_c_clang_isPODType>>('clang_isPODType')
-            .asFunction<_dart_clang_isPODType>())(
+    return _clang_isPODType(
       T,
     );
   }
 
-  _dart_clang_isPODType? _clang_isPODType;
+  late final _clang_isPODType_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_isPODType>>('clang_isPODType');
+  late final _dart_clang_isPODType _clang_isPODType =
+      _clang_isPODType_ptr.asFunction<_dart_clang_isPODType>();
 
   /// Return the element type of an array, complex, or vector type.
   ///
@@ -3261,15 +3536,16 @@
   CXType clang_getElementType(
     CXType T,
   ) {
-    return (_clang_getElementType ??=
-        _lookup<ffi.NativeFunction<_c_clang_getElementType>>(
-                'clang_getElementType')
-            .asFunction<_dart_clang_getElementType>())(
+    return _clang_getElementType(
       T,
     );
   }
 
-  _dart_clang_getElementType? _clang_getElementType;
+  late final _clang_getElementType_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_getElementType>>(
+          'clang_getElementType');
+  late final _dart_clang_getElementType _clang_getElementType =
+      _clang_getElementType_ptr.asFunction<_dart_clang_getElementType>();
 
   /// Return the number of elements of an array or vector type.
   ///
@@ -3278,15 +3554,16 @@
   int clang_getNumElements(
     CXType T,
   ) {
-    return (_clang_getNumElements ??=
-        _lookup<ffi.NativeFunction<_c_clang_getNumElements>>(
-                'clang_getNumElements')
-            .asFunction<_dart_clang_getNumElements>())(
+    return _clang_getNumElements(
       T,
     );
   }
 
-  _dart_clang_getNumElements? _clang_getNumElements;
+  late final _clang_getNumElements_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_getNumElements>>(
+          'clang_getNumElements');
+  late final _dart_clang_getNumElements _clang_getNumElements =
+      _clang_getNumElements_ptr.asFunction<_dart_clang_getNumElements>();
 
   /// Return the element type of an array type.
   ///
@@ -3294,15 +3571,17 @@
   CXType clang_getArrayElementType(
     CXType T,
   ) {
-    return (_clang_getArrayElementType ??=
-        _lookup<ffi.NativeFunction<_c_clang_getArrayElementType>>(
-                'clang_getArrayElementType')
-            .asFunction<_dart_clang_getArrayElementType>())(
+    return _clang_getArrayElementType(
       T,
     );
   }
 
-  _dart_clang_getArrayElementType? _clang_getArrayElementType;
+  late final _clang_getArrayElementType_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_getArrayElementType>>(
+          'clang_getArrayElementType');
+  late final _dart_clang_getArrayElementType _clang_getArrayElementType =
+      _clang_getArrayElementType_ptr
+          .asFunction<_dart_clang_getArrayElementType>();
 
   /// Return the array size of a constant array.
   ///
@@ -3310,14 +3589,16 @@
   int clang_getArraySize(
     CXType T,
   ) {
-    return (_clang_getArraySize ??=
-        _lookup<ffi.NativeFunction<_c_clang_getArraySize>>('clang_getArraySize')
-            .asFunction<_dart_clang_getArraySize>())(
+    return _clang_getArraySize(
       T,
     );
   }
 
-  _dart_clang_getArraySize? _clang_getArraySize;
+  late final _clang_getArraySize_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_getArraySize>>(
+          'clang_getArraySize');
+  late final _dart_clang_getArraySize _clang_getArraySize =
+      _clang_getArraySize_ptr.asFunction<_dart_clang_getArraySize>();
 
   /// Retrieve the type named by the qualified-id.
   ///
@@ -3325,15 +3606,16 @@
   CXType clang_Type_getNamedType(
     CXType T,
   ) {
-    return (_clang_Type_getNamedType ??=
-        _lookup<ffi.NativeFunction<_c_clang_Type_getNamedType>>(
-                'clang_Type_getNamedType')
-            .asFunction<_dart_clang_Type_getNamedType>())(
+    return _clang_Type_getNamedType(
       T,
     );
   }
 
-  _dart_clang_Type_getNamedType? _clang_Type_getNamedType;
+  late final _clang_Type_getNamedType_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_Type_getNamedType>>(
+          'clang_Type_getNamedType');
+  late final _dart_clang_Type_getNamedType _clang_Type_getNamedType =
+      _clang_Type_getNamedType_ptr.asFunction<_dart_clang_Type_getNamedType>();
 
   /// Determine if a typedef is 'transparent' tag.
   ///
@@ -3344,29 +3626,34 @@
   int clang_Type_isTransparentTagTypedef(
     CXType T,
   ) {
-    return (_clang_Type_isTransparentTagTypedef ??=
-        _lookup<ffi.NativeFunction<_c_clang_Type_isTransparentTagTypedef>>(
-                'clang_Type_isTransparentTagTypedef')
-            .asFunction<_dart_clang_Type_isTransparentTagTypedef>())(
+    return _clang_Type_isTransparentTagTypedef(
       T,
     );
   }
 
-  _dart_clang_Type_isTransparentTagTypedef? _clang_Type_isTransparentTagTypedef;
+  late final _clang_Type_isTransparentTagTypedef_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_Type_isTransparentTagTypedef>>(
+          'clang_Type_isTransparentTagTypedef');
+  late final _dart_clang_Type_isTransparentTagTypedef
+      _clang_Type_isTransparentTagTypedef =
+      _clang_Type_isTransparentTagTypedef_ptr
+          .asFunction<_dart_clang_Type_isTransparentTagTypedef>();
 
   /// Retrieve the nullability kind of a pointer type.
   int clang_Type_getNullability(
     CXType T,
   ) {
-    return (_clang_Type_getNullability ??=
-        _lookup<ffi.NativeFunction<_c_clang_Type_getNullability>>(
-                'clang_Type_getNullability')
-            .asFunction<_dart_clang_Type_getNullability>())(
+    return _clang_Type_getNullability(
       T,
     );
   }
 
-  _dart_clang_Type_getNullability? _clang_Type_getNullability;
+  late final _clang_Type_getNullability_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_Type_getNullability>>(
+          'clang_Type_getNullability');
+  late final _dart_clang_Type_getNullability _clang_Type_getNullability =
+      _clang_Type_getNullability_ptr
+          .asFunction<_dart_clang_Type_getNullability>();
 
   /// Return the alignment of a type in bytes as per C++[expr.alignof]
   /// standard.
@@ -3381,15 +3668,16 @@
   int clang_Type_getAlignOf(
     CXType T,
   ) {
-    return (_clang_Type_getAlignOf ??=
-        _lookup<ffi.NativeFunction<_c_clang_Type_getAlignOf>>(
-                'clang_Type_getAlignOf')
-            .asFunction<_dart_clang_Type_getAlignOf>())(
+    return _clang_Type_getAlignOf(
       T,
     );
   }
 
-  _dart_clang_Type_getAlignOf? _clang_Type_getAlignOf;
+  late final _clang_Type_getAlignOf_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_Type_getAlignOf>>(
+          'clang_Type_getAlignOf');
+  late final _dart_clang_Type_getAlignOf _clang_Type_getAlignOf =
+      _clang_Type_getAlignOf_ptr.asFunction<_dart_clang_Type_getAlignOf>();
 
   /// Return the class type of an member pointer type.
   ///
@@ -3397,15 +3685,16 @@
   CXType clang_Type_getClassType(
     CXType T,
   ) {
-    return (_clang_Type_getClassType ??=
-        _lookup<ffi.NativeFunction<_c_clang_Type_getClassType>>(
-                'clang_Type_getClassType')
-            .asFunction<_dart_clang_Type_getClassType>())(
+    return _clang_Type_getClassType(
       T,
     );
   }
 
-  _dart_clang_Type_getClassType? _clang_Type_getClassType;
+  late final _clang_Type_getClassType_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_Type_getClassType>>(
+          'clang_Type_getClassType');
+  late final _dart_clang_Type_getClassType _clang_Type_getClassType =
+      _clang_Type_getClassType_ptr.asFunction<_dart_clang_Type_getClassType>();
 
   /// Return the size of a type in bytes as per C++[expr.sizeof] standard.
   ///
@@ -3417,15 +3706,16 @@
   int clang_Type_getSizeOf(
     CXType T,
   ) {
-    return (_clang_Type_getSizeOf ??=
-        _lookup<ffi.NativeFunction<_c_clang_Type_getSizeOf>>(
-                'clang_Type_getSizeOf')
-            .asFunction<_dart_clang_Type_getSizeOf>())(
+    return _clang_Type_getSizeOf(
       T,
     );
   }
 
-  _dart_clang_Type_getSizeOf? _clang_Type_getSizeOf;
+  late final _clang_Type_getSizeOf_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_Type_getSizeOf>>(
+          'clang_Type_getSizeOf');
+  late final _dart_clang_Type_getSizeOf _clang_Type_getSizeOf =
+      _clang_Type_getSizeOf_ptr.asFunction<_dart_clang_Type_getSizeOf>();
 
   /// Return the offset of a field named S in a record of type T in bits
   /// as it would be returned by __offsetof__ as per C++11[18.2p4]
@@ -3442,16 +3732,17 @@
     CXType T,
     ffi.Pointer<ffi.Int8> S,
   ) {
-    return (_clang_Type_getOffsetOf ??=
-        _lookup<ffi.NativeFunction<_c_clang_Type_getOffsetOf>>(
-                'clang_Type_getOffsetOf')
-            .asFunction<_dart_clang_Type_getOffsetOf>())(
+    return _clang_Type_getOffsetOf(
       T,
       S,
     );
   }
 
-  _dart_clang_Type_getOffsetOf? _clang_Type_getOffsetOf;
+  late final _clang_Type_getOffsetOf_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_Type_getOffsetOf>>(
+          'clang_Type_getOffsetOf');
+  late final _dart_clang_Type_getOffsetOf _clang_Type_getOffsetOf =
+      _clang_Type_getOffsetOf_ptr.asFunction<_dart_clang_Type_getOffsetOf>();
 
   /// Return the type that was modified by this attributed type.
   ///
@@ -3459,15 +3750,17 @@
   CXType clang_Type_getModifiedType(
     CXType T,
   ) {
-    return (_clang_Type_getModifiedType ??=
-        _lookup<ffi.NativeFunction<_c_clang_Type_getModifiedType>>(
-                'clang_Type_getModifiedType')
-            .asFunction<_dart_clang_Type_getModifiedType>())(
+    return _clang_Type_getModifiedType(
       T,
     );
   }
 
-  _dart_clang_Type_getModifiedType? _clang_Type_getModifiedType;
+  late final _clang_Type_getModifiedType_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_Type_getModifiedType>>(
+          'clang_Type_getModifiedType');
+  late final _dart_clang_Type_getModifiedType _clang_Type_getModifiedType =
+      _clang_Type_getModifiedType_ptr
+          .asFunction<_dart_clang_Type_getModifiedType>();
 
   /// Return the offset of the field represented by the Cursor.
   ///
@@ -3483,75 +3776,87 @@
   int clang_Cursor_getOffsetOfField(
     CXCursor C,
   ) {
-    return (_clang_Cursor_getOffsetOfField ??=
-        _lookup<ffi.NativeFunction<_c_clang_Cursor_getOffsetOfField>>(
-                'clang_Cursor_getOffsetOfField')
-            .asFunction<_dart_clang_Cursor_getOffsetOfField>())(
+    return _clang_Cursor_getOffsetOfField(
       C,
     );
   }
 
-  _dart_clang_Cursor_getOffsetOfField? _clang_Cursor_getOffsetOfField;
+  late final _clang_Cursor_getOffsetOfField_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_Cursor_getOffsetOfField>>(
+          'clang_Cursor_getOffsetOfField');
+  late final _dart_clang_Cursor_getOffsetOfField
+      _clang_Cursor_getOffsetOfField = _clang_Cursor_getOffsetOfField_ptr
+          .asFunction<_dart_clang_Cursor_getOffsetOfField>();
 
   /// Determine whether the given cursor represents an anonymous
   /// tag or namespace
   int clang_Cursor_isAnonymous(
     CXCursor C,
   ) {
-    return (_clang_Cursor_isAnonymous ??=
-        _lookup<ffi.NativeFunction<_c_clang_Cursor_isAnonymous>>(
-                'clang_Cursor_isAnonymous')
-            .asFunction<_dart_clang_Cursor_isAnonymous>())(
+    return _clang_Cursor_isAnonymous(
       C,
     );
   }
 
-  _dart_clang_Cursor_isAnonymous? _clang_Cursor_isAnonymous;
+  late final _clang_Cursor_isAnonymous_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_Cursor_isAnonymous>>(
+          'clang_Cursor_isAnonymous');
+  late final _dart_clang_Cursor_isAnonymous _clang_Cursor_isAnonymous =
+      _clang_Cursor_isAnonymous_ptr
+          .asFunction<_dart_clang_Cursor_isAnonymous>();
 
   /// Determine whether the given cursor represents an anonymous record
   /// declaration.
   int clang_Cursor_isAnonymousRecordDecl(
     CXCursor C,
   ) {
-    return (_clang_Cursor_isAnonymousRecordDecl ??=
-        _lookup<ffi.NativeFunction<_c_clang_Cursor_isAnonymousRecordDecl>>(
-                'clang_Cursor_isAnonymousRecordDecl')
-            .asFunction<_dart_clang_Cursor_isAnonymousRecordDecl>())(
+    return _clang_Cursor_isAnonymousRecordDecl(
       C,
     );
   }
 
-  _dart_clang_Cursor_isAnonymousRecordDecl? _clang_Cursor_isAnonymousRecordDecl;
+  late final _clang_Cursor_isAnonymousRecordDecl_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_Cursor_isAnonymousRecordDecl>>(
+          'clang_Cursor_isAnonymousRecordDecl');
+  late final _dart_clang_Cursor_isAnonymousRecordDecl
+      _clang_Cursor_isAnonymousRecordDecl =
+      _clang_Cursor_isAnonymousRecordDecl_ptr
+          .asFunction<_dart_clang_Cursor_isAnonymousRecordDecl>();
 
   /// Determine whether the given cursor represents an inline namespace
   /// declaration.
   int clang_Cursor_isInlineNamespace(
     CXCursor C,
   ) {
-    return (_clang_Cursor_isInlineNamespace ??=
-        _lookup<ffi.NativeFunction<_c_clang_Cursor_isInlineNamespace>>(
-                'clang_Cursor_isInlineNamespace')
-            .asFunction<_dart_clang_Cursor_isInlineNamespace>())(
+    return _clang_Cursor_isInlineNamespace(
       C,
     );
   }
 
-  _dart_clang_Cursor_isInlineNamespace? _clang_Cursor_isInlineNamespace;
+  late final _clang_Cursor_isInlineNamespace_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_Cursor_isInlineNamespace>>(
+          'clang_Cursor_isInlineNamespace');
+  late final _dart_clang_Cursor_isInlineNamespace
+      _clang_Cursor_isInlineNamespace = _clang_Cursor_isInlineNamespace_ptr
+          .asFunction<_dart_clang_Cursor_isInlineNamespace>();
 
   /// Returns the number of template arguments for given template
   /// specialization, or -1 if type \c T is not a template specialization.
   int clang_Type_getNumTemplateArguments(
     CXType T,
   ) {
-    return (_clang_Type_getNumTemplateArguments ??=
-        _lookup<ffi.NativeFunction<_c_clang_Type_getNumTemplateArguments>>(
-                'clang_Type_getNumTemplateArguments')
-            .asFunction<_dart_clang_Type_getNumTemplateArguments>())(
+    return _clang_Type_getNumTemplateArguments(
       T,
     );
   }
 
-  _dart_clang_Type_getNumTemplateArguments? _clang_Type_getNumTemplateArguments;
+  late final _clang_Type_getNumTemplateArguments_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_Type_getNumTemplateArguments>>(
+          'clang_Type_getNumTemplateArguments');
+  late final _dart_clang_Type_getNumTemplateArguments
+      _clang_Type_getNumTemplateArguments =
+      _clang_Type_getNumTemplateArguments_ptr
+          .asFunction<_dart_clang_Type_getNumTemplateArguments>();
 
   /// Returns the type template argument of a template class specialization
   /// at given index.
@@ -3562,17 +3867,19 @@
     CXType T,
     int i,
   ) {
-    return (_clang_Type_getTemplateArgumentAsType ??=
-        _lookup<ffi.NativeFunction<_c_clang_Type_getTemplateArgumentAsType>>(
-                'clang_Type_getTemplateArgumentAsType')
-            .asFunction<_dart_clang_Type_getTemplateArgumentAsType>())(
+    return _clang_Type_getTemplateArgumentAsType(
       T,
       i,
     );
   }
 
-  _dart_clang_Type_getTemplateArgumentAsType?
-      _clang_Type_getTemplateArgumentAsType;
+  late final _clang_Type_getTemplateArgumentAsType_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_Type_getTemplateArgumentAsType>>(
+          'clang_Type_getTemplateArgumentAsType');
+  late final _dart_clang_Type_getTemplateArgumentAsType
+      _clang_Type_getTemplateArgumentAsType =
+      _clang_Type_getTemplateArgumentAsType_ptr
+          .asFunction<_dart_clang_Type_getTemplateArgumentAsType>();
 
   /// Retrieve the ref-qualifier kind of a function or method.
   ///
@@ -3581,45 +3888,49 @@
   int clang_Type_getCXXRefQualifier(
     CXType T,
   ) {
-    return (_clang_Type_getCXXRefQualifier ??=
-        _lookup<ffi.NativeFunction<_c_clang_Type_getCXXRefQualifier>>(
-                'clang_Type_getCXXRefQualifier')
-            .asFunction<_dart_clang_Type_getCXXRefQualifier>())(
+    return _clang_Type_getCXXRefQualifier(
       T,
     );
   }
 
-  _dart_clang_Type_getCXXRefQualifier? _clang_Type_getCXXRefQualifier;
+  late final _clang_Type_getCXXRefQualifier_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_Type_getCXXRefQualifier>>(
+          'clang_Type_getCXXRefQualifier');
+  late final _dart_clang_Type_getCXXRefQualifier
+      _clang_Type_getCXXRefQualifier = _clang_Type_getCXXRefQualifier_ptr
+          .asFunction<_dart_clang_Type_getCXXRefQualifier>();
 
   /// Returns non-zero if the cursor specifies a Record member that is a
   /// bitfield.
   int clang_Cursor_isBitField(
     CXCursor C,
   ) {
-    return (_clang_Cursor_isBitField ??=
-        _lookup<ffi.NativeFunction<_c_clang_Cursor_isBitField>>(
-                'clang_Cursor_isBitField')
-            .asFunction<_dart_clang_Cursor_isBitField>())(
+    return _clang_Cursor_isBitField(
       C,
     );
   }
 
-  _dart_clang_Cursor_isBitField? _clang_Cursor_isBitField;
+  late final _clang_Cursor_isBitField_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_Cursor_isBitField>>(
+          'clang_Cursor_isBitField');
+  late final _dart_clang_Cursor_isBitField _clang_Cursor_isBitField =
+      _clang_Cursor_isBitField_ptr.asFunction<_dart_clang_Cursor_isBitField>();
 
   /// Returns 1 if the base class specified by the cursor with kind
   /// CX_CXXBaseSpecifier is virtual.
   int clang_isVirtualBase(
     CXCursor arg0,
   ) {
-    return (_clang_isVirtualBase ??=
-        _lookup<ffi.NativeFunction<_c_clang_isVirtualBase>>(
-                'clang_isVirtualBase')
-            .asFunction<_dart_clang_isVirtualBase>())(
+    return _clang_isVirtualBase(
       arg0,
     );
   }
 
-  _dart_clang_isVirtualBase? _clang_isVirtualBase;
+  late final _clang_isVirtualBase_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_isVirtualBase>>(
+          'clang_isVirtualBase');
+  late final _dart_clang_isVirtualBase _clang_isVirtualBase =
+      _clang_isVirtualBase_ptr.asFunction<_dart_clang_isVirtualBase>();
 
   /// Returns the access control level for the referenced object.
   ///
@@ -3629,15 +3940,17 @@
   int clang_getCXXAccessSpecifier(
     CXCursor arg0,
   ) {
-    return (_clang_getCXXAccessSpecifier ??=
-        _lookup<ffi.NativeFunction<_c_clang_getCXXAccessSpecifier>>(
-                'clang_getCXXAccessSpecifier')
-            .asFunction<_dart_clang_getCXXAccessSpecifier>())(
+    return _clang_getCXXAccessSpecifier(
       arg0,
     );
   }
 
-  _dart_clang_getCXXAccessSpecifier? _clang_getCXXAccessSpecifier;
+  late final _clang_getCXXAccessSpecifier_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_getCXXAccessSpecifier>>(
+          'clang_getCXXAccessSpecifier');
+  late final _dart_clang_getCXXAccessSpecifier _clang_getCXXAccessSpecifier =
+      _clang_getCXXAccessSpecifier_ptr
+          .asFunction<_dart_clang_getCXXAccessSpecifier>();
 
   /// Returns the storage class for a function or variable declaration.
   ///
@@ -3646,15 +3959,17 @@
   int clang_Cursor_getStorageClass(
     CXCursor arg0,
   ) {
-    return (_clang_Cursor_getStorageClass ??=
-        _lookup<ffi.NativeFunction<_c_clang_Cursor_getStorageClass>>(
-                'clang_Cursor_getStorageClass')
-            .asFunction<_dart_clang_Cursor_getStorageClass>())(
+    return _clang_Cursor_getStorageClass(
       arg0,
     );
   }
 
-  _dart_clang_Cursor_getStorageClass? _clang_Cursor_getStorageClass;
+  late final _clang_Cursor_getStorageClass_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_Cursor_getStorageClass>>(
+          'clang_Cursor_getStorageClass');
+  late final _dart_clang_Cursor_getStorageClass _clang_Cursor_getStorageClass =
+      _clang_Cursor_getStorageClass_ptr
+          .asFunction<_dart_clang_Cursor_getStorageClass>();
 
   /// Determine the number of overloaded declarations referenced by a
   /// \c CXCursor_OverloadedDeclRef cursor.
@@ -3666,15 +3981,17 @@
   int clang_getNumOverloadedDecls(
     CXCursor cursor,
   ) {
-    return (_clang_getNumOverloadedDecls ??=
-        _lookup<ffi.NativeFunction<_c_clang_getNumOverloadedDecls>>(
-                'clang_getNumOverloadedDecls')
-            .asFunction<_dart_clang_getNumOverloadedDecls>())(
+    return _clang_getNumOverloadedDecls(
       cursor,
     );
   }
 
-  _dart_clang_getNumOverloadedDecls? _clang_getNumOverloadedDecls;
+  late final _clang_getNumOverloadedDecls_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_getNumOverloadedDecls>>(
+          'clang_getNumOverloadedDecls');
+  late final _dart_clang_getNumOverloadedDecls _clang_getNumOverloadedDecls =
+      _clang_getNumOverloadedDecls_ptr
+          .asFunction<_dart_clang_getNumOverloadedDecls>();
 
   /// Retrieve a cursor for one of the overloaded declarations referenced
   /// by a \c CXCursor_OverloadedDeclRef cursor.
@@ -3692,31 +4009,34 @@
     CXCursor cursor,
     int index,
   ) {
-    return (_clang_getOverloadedDecl ??=
-        _lookup<ffi.NativeFunction<_c_clang_getOverloadedDecl>>(
-                'clang_getOverloadedDecl')
-            .asFunction<_dart_clang_getOverloadedDecl>())(
+    return _clang_getOverloadedDecl(
       cursor,
       index,
     );
   }
 
-  _dart_clang_getOverloadedDecl? _clang_getOverloadedDecl;
+  late final _clang_getOverloadedDecl_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_getOverloadedDecl>>(
+          'clang_getOverloadedDecl');
+  late final _dart_clang_getOverloadedDecl _clang_getOverloadedDecl =
+      _clang_getOverloadedDecl_ptr.asFunction<_dart_clang_getOverloadedDecl>();
 
   /// For cursors representing an iboutletcollection attribute,
   /// this function returns the collection element type.
   CXType clang_getIBOutletCollectionType(
     CXCursor arg0,
   ) {
-    return (_clang_getIBOutletCollectionType ??=
-        _lookup<ffi.NativeFunction<_c_clang_getIBOutletCollectionType>>(
-                'clang_getIBOutletCollectionType')
-            .asFunction<_dart_clang_getIBOutletCollectionType>())(
+    return _clang_getIBOutletCollectionType(
       arg0,
     );
   }
 
-  _dart_clang_getIBOutletCollectionType? _clang_getIBOutletCollectionType;
+  late final _clang_getIBOutletCollectionType_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_getIBOutletCollectionType>>(
+          'clang_getIBOutletCollectionType');
+  late final _dart_clang_getIBOutletCollectionType
+      _clang_getIBOutletCollectionType = _clang_getIBOutletCollectionType_ptr
+          .asFunction<_dart_clang_getIBOutletCollectionType>();
 
   /// Visit the children of a particular cursor.
   ///
@@ -3743,17 +4063,18 @@
     ffi.Pointer<ffi.NativeFunction<CXCursorVisitor>> visitor,
     ffi.Pointer<ffi.Void> client_data,
   ) {
-    return (_clang_visitChildren ??=
-        _lookup<ffi.NativeFunction<_c_clang_visitChildren>>(
-                'clang_visitChildren')
-            .asFunction<_dart_clang_visitChildren>())(
+    return _clang_visitChildren(
       parent,
       visitor,
       client_data,
     );
   }
 
-  _dart_clang_visitChildren? _clang_visitChildren;
+  late final _clang_visitChildren_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_visitChildren>>(
+          'clang_visitChildren');
+  late final _dart_clang_visitChildren _clang_visitChildren =
+      _clang_visitChildren_ptr.asFunction<_dart_clang_visitChildren>();
 
   /// Retrieve a Unified Symbol Resolution (USR) for the entity referenced
   /// by the given cursor.
@@ -3765,58 +4086,66 @@
   CXString clang_getCursorUSR(
     CXCursor arg0,
   ) {
-    return (_clang_getCursorUSR ??=
-        _lookup<ffi.NativeFunction<_c_clang_getCursorUSR>>('clang_getCursorUSR')
-            .asFunction<_dart_clang_getCursorUSR>())(
+    return _clang_getCursorUSR(
       arg0,
     );
   }
 
-  _dart_clang_getCursorUSR? _clang_getCursorUSR;
+  late final _clang_getCursorUSR_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_getCursorUSR>>(
+          'clang_getCursorUSR');
+  late final _dart_clang_getCursorUSR _clang_getCursorUSR =
+      _clang_getCursorUSR_ptr.asFunction<_dart_clang_getCursorUSR>();
 
   /// Construct a USR for a specified Objective-C class.
   CXString clang_constructUSR_ObjCClass(
     ffi.Pointer<ffi.Int8> class_name,
   ) {
-    return (_clang_constructUSR_ObjCClass ??=
-        _lookup<ffi.NativeFunction<_c_clang_constructUSR_ObjCClass>>(
-                'clang_constructUSR_ObjCClass')
-            .asFunction<_dart_clang_constructUSR_ObjCClass>())(
+    return _clang_constructUSR_ObjCClass(
       class_name,
     );
   }
 
-  _dart_clang_constructUSR_ObjCClass? _clang_constructUSR_ObjCClass;
+  late final _clang_constructUSR_ObjCClass_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_constructUSR_ObjCClass>>(
+          'clang_constructUSR_ObjCClass');
+  late final _dart_clang_constructUSR_ObjCClass _clang_constructUSR_ObjCClass =
+      _clang_constructUSR_ObjCClass_ptr
+          .asFunction<_dart_clang_constructUSR_ObjCClass>();
 
   /// Construct a USR for a specified Objective-C category.
   CXString clang_constructUSR_ObjCCategory(
     ffi.Pointer<ffi.Int8> class_name,
     ffi.Pointer<ffi.Int8> category_name,
   ) {
-    return (_clang_constructUSR_ObjCCategory ??=
-        _lookup<ffi.NativeFunction<_c_clang_constructUSR_ObjCCategory>>(
-                'clang_constructUSR_ObjCCategory')
-            .asFunction<_dart_clang_constructUSR_ObjCCategory>())(
+    return _clang_constructUSR_ObjCCategory(
       class_name,
       category_name,
     );
   }
 
-  _dart_clang_constructUSR_ObjCCategory? _clang_constructUSR_ObjCCategory;
+  late final _clang_constructUSR_ObjCCategory_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_constructUSR_ObjCCategory>>(
+          'clang_constructUSR_ObjCCategory');
+  late final _dart_clang_constructUSR_ObjCCategory
+      _clang_constructUSR_ObjCCategory = _clang_constructUSR_ObjCCategory_ptr
+          .asFunction<_dart_clang_constructUSR_ObjCCategory>();
 
   /// Construct a USR for a specified Objective-C protocol.
   CXString clang_constructUSR_ObjCProtocol(
     ffi.Pointer<ffi.Int8> protocol_name,
   ) {
-    return (_clang_constructUSR_ObjCProtocol ??=
-        _lookup<ffi.NativeFunction<_c_clang_constructUSR_ObjCProtocol>>(
-                'clang_constructUSR_ObjCProtocol')
-            .asFunction<_dart_clang_constructUSR_ObjCProtocol>())(
+    return _clang_constructUSR_ObjCProtocol(
       protocol_name,
     );
   }
 
-  _dart_clang_constructUSR_ObjCProtocol? _clang_constructUSR_ObjCProtocol;
+  late final _clang_constructUSR_ObjCProtocol_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_constructUSR_ObjCProtocol>>(
+          'clang_constructUSR_ObjCProtocol');
+  late final _dart_clang_constructUSR_ObjCProtocol
+      _clang_constructUSR_ObjCProtocol = _clang_constructUSR_ObjCProtocol_ptr
+          .asFunction<_dart_clang_constructUSR_ObjCProtocol>();
 
   /// Construct a USR for a specified Objective-C instance variable and
   /// the USR for its containing class.
@@ -3824,16 +4153,18 @@
     ffi.Pointer<ffi.Int8> name,
     CXString classUSR,
   ) {
-    return (_clang_constructUSR_ObjCIvar ??=
-        _lookup<ffi.NativeFunction<_c_clang_constructUSR_ObjCIvar>>(
-                'clang_constructUSR_ObjCIvar')
-            .asFunction<_dart_clang_constructUSR_ObjCIvar>())(
+    return _clang_constructUSR_ObjCIvar(
       name,
       classUSR,
     );
   }
 
-  _dart_clang_constructUSR_ObjCIvar? _clang_constructUSR_ObjCIvar;
+  late final _clang_constructUSR_ObjCIvar_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_constructUSR_ObjCIvar>>(
+          'clang_constructUSR_ObjCIvar');
+  late final _dart_clang_constructUSR_ObjCIvar _clang_constructUSR_ObjCIvar =
+      _clang_constructUSR_ObjCIvar_ptr
+          .asFunction<_dart_clang_constructUSR_ObjCIvar>();
 
   /// Construct a USR for a specified Objective-C method and
   /// the USR for its containing class.
@@ -3842,17 +4173,19 @@
     int isInstanceMethod,
     CXString classUSR,
   ) {
-    return (_clang_constructUSR_ObjCMethod ??=
-        _lookup<ffi.NativeFunction<_c_clang_constructUSR_ObjCMethod>>(
-                'clang_constructUSR_ObjCMethod')
-            .asFunction<_dart_clang_constructUSR_ObjCMethod>())(
+    return _clang_constructUSR_ObjCMethod(
       name,
       isInstanceMethod,
       classUSR,
     );
   }
 
-  _dart_clang_constructUSR_ObjCMethod? _clang_constructUSR_ObjCMethod;
+  late final _clang_constructUSR_ObjCMethod_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_constructUSR_ObjCMethod>>(
+          'clang_constructUSR_ObjCMethod');
+  late final _dart_clang_constructUSR_ObjCMethod
+      _clang_constructUSR_ObjCMethod = _clang_constructUSR_ObjCMethod_ptr
+          .asFunction<_dart_clang_constructUSR_ObjCMethod>();
 
   /// Construct a USR for a specified Objective-C property and the USR
   /// for its containing class.
@@ -3860,30 +4193,33 @@
     ffi.Pointer<ffi.Int8> property,
     CXString classUSR,
   ) {
-    return (_clang_constructUSR_ObjCProperty ??=
-        _lookup<ffi.NativeFunction<_c_clang_constructUSR_ObjCProperty>>(
-                'clang_constructUSR_ObjCProperty')
-            .asFunction<_dart_clang_constructUSR_ObjCProperty>())(
+    return _clang_constructUSR_ObjCProperty(
       property,
       classUSR,
     );
   }
 
-  _dart_clang_constructUSR_ObjCProperty? _clang_constructUSR_ObjCProperty;
+  late final _clang_constructUSR_ObjCProperty_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_constructUSR_ObjCProperty>>(
+          'clang_constructUSR_ObjCProperty');
+  late final _dart_clang_constructUSR_ObjCProperty
+      _clang_constructUSR_ObjCProperty = _clang_constructUSR_ObjCProperty_ptr
+          .asFunction<_dart_clang_constructUSR_ObjCProperty>();
 
   /// Retrieve a name for the entity referenced by this cursor.
   CXString clang_getCursorSpelling(
     CXCursor arg0,
   ) {
-    return (_clang_getCursorSpelling ??=
-        _lookup<ffi.NativeFunction<_c_clang_getCursorSpelling>>(
-                'clang_getCursorSpelling')
-            .asFunction<_dart_clang_getCursorSpelling>())(
+    return _clang_getCursorSpelling(
       arg0,
     );
   }
 
-  _dart_clang_getCursorSpelling? _clang_getCursorSpelling;
+  late final _clang_getCursorSpelling_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_getCursorSpelling>>(
+          'clang_getCursorSpelling');
+  late final _dart_clang_getCursorSpelling _clang_getCursorSpelling =
+      _clang_getCursorSpelling_ptr.asFunction<_dart_clang_getCursorSpelling>();
 
   /// Retrieve a range for a piece that forms the cursors spelling name.
   /// Most of the times there is only one range for the complete spelling but for
@@ -3899,33 +4235,38 @@
     int pieceIndex,
     int options,
   ) {
-    return (_clang_Cursor_getSpellingNameRange ??=
-        _lookup<ffi.NativeFunction<_c_clang_Cursor_getSpellingNameRange>>(
-                'clang_Cursor_getSpellingNameRange')
-            .asFunction<_dart_clang_Cursor_getSpellingNameRange>())(
+    return _clang_Cursor_getSpellingNameRange(
       arg0,
       pieceIndex,
       options,
     );
   }
 
-  _dart_clang_Cursor_getSpellingNameRange? _clang_Cursor_getSpellingNameRange;
+  late final _clang_Cursor_getSpellingNameRange_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_Cursor_getSpellingNameRange>>(
+          'clang_Cursor_getSpellingNameRange');
+  late final _dart_clang_Cursor_getSpellingNameRange
+      _clang_Cursor_getSpellingNameRange =
+      _clang_Cursor_getSpellingNameRange_ptr
+          .asFunction<_dart_clang_Cursor_getSpellingNameRange>();
 
   /// Get a property value for the given printing policy.
   int clang_PrintingPolicy_getProperty(
     ffi.Pointer<ffi.Void> Policy,
     int Property,
   ) {
-    return (_clang_PrintingPolicy_getProperty ??=
-        _lookup<ffi.NativeFunction<_c_clang_PrintingPolicy_getProperty>>(
-                'clang_PrintingPolicy_getProperty')
-            .asFunction<_dart_clang_PrintingPolicy_getProperty>())(
+    return _clang_PrintingPolicy_getProperty(
       Policy,
       Property,
     );
   }
 
-  _dart_clang_PrintingPolicy_getProperty? _clang_PrintingPolicy_getProperty;
+  late final _clang_PrintingPolicy_getProperty_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_PrintingPolicy_getProperty>>(
+          'clang_PrintingPolicy_getProperty');
+  late final _dart_clang_PrintingPolicy_getProperty
+      _clang_PrintingPolicy_getProperty = _clang_PrintingPolicy_getProperty_ptr
+          .asFunction<_dart_clang_PrintingPolicy_getProperty>();
 
   /// Set a property value for the given printing policy.
   void clang_PrintingPolicy_setProperty(
@@ -3933,17 +4274,19 @@
     int Property,
     int Value,
   ) {
-    return (_clang_PrintingPolicy_setProperty ??=
-        _lookup<ffi.NativeFunction<_c_clang_PrintingPolicy_setProperty>>(
-                'clang_PrintingPolicy_setProperty')
-            .asFunction<_dart_clang_PrintingPolicy_setProperty>())(
+    return _clang_PrintingPolicy_setProperty(
       Policy,
       Property,
       Value,
     );
   }
 
-  _dart_clang_PrintingPolicy_setProperty? _clang_PrintingPolicy_setProperty;
+  late final _clang_PrintingPolicy_setProperty_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_PrintingPolicy_setProperty>>(
+          'clang_PrintingPolicy_setProperty');
+  late final _dart_clang_PrintingPolicy_setProperty
+      _clang_PrintingPolicy_setProperty = _clang_PrintingPolicy_setProperty_ptr
+          .asFunction<_dart_clang_PrintingPolicy_setProperty>();
 
   /// Retrieve the default policy for the cursor.
   ///
@@ -3952,29 +4295,33 @@
   ffi.Pointer<ffi.Void> clang_getCursorPrintingPolicy(
     CXCursor arg0,
   ) {
-    return (_clang_getCursorPrintingPolicy ??=
-        _lookup<ffi.NativeFunction<_c_clang_getCursorPrintingPolicy>>(
-                'clang_getCursorPrintingPolicy')
-            .asFunction<_dart_clang_getCursorPrintingPolicy>())(
+    return _clang_getCursorPrintingPolicy(
       arg0,
     );
   }
 
-  _dart_clang_getCursorPrintingPolicy? _clang_getCursorPrintingPolicy;
+  late final _clang_getCursorPrintingPolicy_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_getCursorPrintingPolicy>>(
+          'clang_getCursorPrintingPolicy');
+  late final _dart_clang_getCursorPrintingPolicy
+      _clang_getCursorPrintingPolicy = _clang_getCursorPrintingPolicy_ptr
+          .asFunction<_dart_clang_getCursorPrintingPolicy>();
 
   /// Release a printing policy.
   void clang_PrintingPolicy_dispose(
     ffi.Pointer<ffi.Void> Policy,
   ) {
-    return (_clang_PrintingPolicy_dispose ??=
-        _lookup<ffi.NativeFunction<_c_clang_PrintingPolicy_dispose>>(
-                'clang_PrintingPolicy_dispose')
-            .asFunction<_dart_clang_PrintingPolicy_dispose>())(
+    return _clang_PrintingPolicy_dispose(
       Policy,
     );
   }
 
-  _dart_clang_PrintingPolicy_dispose? _clang_PrintingPolicy_dispose;
+  late final _clang_PrintingPolicy_dispose_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_PrintingPolicy_dispose>>(
+          'clang_PrintingPolicy_dispose');
+  late final _dart_clang_PrintingPolicy_dispose _clang_PrintingPolicy_dispose =
+      _clang_PrintingPolicy_dispose_ptr
+          .asFunction<_dart_clang_PrintingPolicy_dispose>();
 
   /// Pretty print declarations.
   ///
@@ -3989,16 +4336,18 @@
     CXCursor Cursor,
     ffi.Pointer<ffi.Void> Policy,
   ) {
-    return (_clang_getCursorPrettyPrinted ??=
-        _lookup<ffi.NativeFunction<_c_clang_getCursorPrettyPrinted>>(
-                'clang_getCursorPrettyPrinted')
-            .asFunction<_dart_clang_getCursorPrettyPrinted>())(
+    return _clang_getCursorPrettyPrinted(
       Cursor,
       Policy,
     );
   }
 
-  _dart_clang_getCursorPrettyPrinted? _clang_getCursorPrettyPrinted;
+  late final _clang_getCursorPrettyPrinted_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_getCursorPrettyPrinted>>(
+          'clang_getCursorPrettyPrinted');
+  late final _dart_clang_getCursorPrettyPrinted _clang_getCursorPrettyPrinted =
+      _clang_getCursorPrettyPrinted_ptr
+          .asFunction<_dart_clang_getCursorPrettyPrinted>();
 
   /// Retrieve the display name for the entity referenced by this cursor.
   ///
@@ -4008,15 +4357,17 @@
   CXString clang_getCursorDisplayName(
     CXCursor arg0,
   ) {
-    return (_clang_getCursorDisplayName ??=
-        _lookup<ffi.NativeFunction<_c_clang_getCursorDisplayName>>(
-                'clang_getCursorDisplayName')
-            .asFunction<_dart_clang_getCursorDisplayName>())(
+    return _clang_getCursorDisplayName(
       arg0,
     );
   }
 
-  _dart_clang_getCursorDisplayName? _clang_getCursorDisplayName;
+  late final _clang_getCursorDisplayName_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_getCursorDisplayName>>(
+          'clang_getCursorDisplayName');
+  late final _dart_clang_getCursorDisplayName _clang_getCursorDisplayName =
+      _clang_getCursorDisplayName_ptr
+          .asFunction<_dart_clang_getCursorDisplayName>();
 
   /// For a cursor that is a reference, retrieve a cursor representing the
   /// entity that it references.
@@ -4030,15 +4381,17 @@
   CXCursor clang_getCursorReferenced(
     CXCursor arg0,
   ) {
-    return (_clang_getCursorReferenced ??=
-        _lookup<ffi.NativeFunction<_c_clang_getCursorReferenced>>(
-                'clang_getCursorReferenced')
-            .asFunction<_dart_clang_getCursorReferenced>())(
+    return _clang_getCursorReferenced(
       arg0,
     );
   }
 
-  _dart_clang_getCursorReferenced? _clang_getCursorReferenced;
+  late final _clang_getCursorReferenced_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_getCursorReferenced>>(
+          'clang_getCursorReferenced');
+  late final _dart_clang_getCursorReferenced _clang_getCursorReferenced =
+      _clang_getCursorReferenced_ptr
+          .asFunction<_dart_clang_getCursorReferenced>();
 
   /// For a cursor that is either a reference to or a declaration
   /// of some entity, retrieve a cursor that describes the definition of
@@ -4069,30 +4422,34 @@
   CXCursor clang_getCursorDefinition(
     CXCursor arg0,
   ) {
-    return (_clang_getCursorDefinition ??=
-        _lookup<ffi.NativeFunction<_c_clang_getCursorDefinition>>(
-                'clang_getCursorDefinition')
-            .asFunction<_dart_clang_getCursorDefinition>())(
+    return _clang_getCursorDefinition(
       arg0,
     );
   }
 
-  _dart_clang_getCursorDefinition? _clang_getCursorDefinition;
+  late final _clang_getCursorDefinition_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_getCursorDefinition>>(
+          'clang_getCursorDefinition');
+  late final _dart_clang_getCursorDefinition _clang_getCursorDefinition =
+      _clang_getCursorDefinition_ptr
+          .asFunction<_dart_clang_getCursorDefinition>();
 
   /// Determine whether the declaration pointed to by this cursor
   /// is also a definition of that entity.
   int clang_isCursorDefinition(
     CXCursor arg0,
   ) {
-    return (_clang_isCursorDefinition ??=
-        _lookup<ffi.NativeFunction<_c_clang_isCursorDefinition>>(
-                'clang_isCursorDefinition')
-            .asFunction<_dart_clang_isCursorDefinition>())(
+    return _clang_isCursorDefinition(
       arg0,
     );
   }
 
-  _dart_clang_isCursorDefinition? _clang_isCursorDefinition;
+  late final _clang_isCursorDefinition_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_isCursorDefinition>>(
+          'clang_isCursorDefinition');
+  late final _dart_clang_isCursorDefinition _clang_isCursorDefinition =
+      _clang_isCursorDefinition_ptr
+          .asFunction<_dart_clang_isCursorDefinition>();
 
   /// Retrieve the canonical cursor corresponding to the given cursor.
   ///
@@ -4119,15 +4476,17 @@
   CXCursor clang_getCanonicalCursor(
     CXCursor arg0,
   ) {
-    return (_clang_getCanonicalCursor ??=
-        _lookup<ffi.NativeFunction<_c_clang_getCanonicalCursor>>(
-                'clang_getCanonicalCursor')
-            .asFunction<_dart_clang_getCanonicalCursor>())(
+    return _clang_getCanonicalCursor(
       arg0,
     );
   }
 
-  _dart_clang_getCanonicalCursor? _clang_getCanonicalCursor;
+  late final _clang_getCanonicalCursor_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_getCanonicalCursor>>(
+          'clang_getCanonicalCursor');
+  late final _dart_clang_getCanonicalCursor _clang_getCanonicalCursor =
+      _clang_getCanonicalCursor_ptr
+          .asFunction<_dart_clang_getCanonicalCursor>();
 
   /// If the cursor points to a selector identifier in an Objective-C
   /// method or message expression, this returns the selector index.
@@ -4141,15 +4500,18 @@
   int clang_Cursor_getObjCSelectorIndex(
     CXCursor arg0,
   ) {
-    return (_clang_Cursor_getObjCSelectorIndex ??=
-        _lookup<ffi.NativeFunction<_c_clang_Cursor_getObjCSelectorIndex>>(
-                'clang_Cursor_getObjCSelectorIndex')
-            .asFunction<_dart_clang_Cursor_getObjCSelectorIndex>())(
+    return _clang_Cursor_getObjCSelectorIndex(
       arg0,
     );
   }
 
-  _dart_clang_Cursor_getObjCSelectorIndex? _clang_Cursor_getObjCSelectorIndex;
+  late final _clang_Cursor_getObjCSelectorIndex_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_Cursor_getObjCSelectorIndex>>(
+          'clang_Cursor_getObjCSelectorIndex');
+  late final _dart_clang_Cursor_getObjCSelectorIndex
+      _clang_Cursor_getObjCSelectorIndex =
+      _clang_Cursor_getObjCSelectorIndex_ptr
+          .asFunction<_dart_clang_Cursor_getObjCSelectorIndex>();
 
   /// Given a cursor pointing to a C++ method call or an Objective-C
   /// message, returns non-zero if the method/message is "dynamic", meaning:
@@ -4163,30 +4525,34 @@
   int clang_Cursor_isDynamicCall(
     CXCursor C,
   ) {
-    return (_clang_Cursor_isDynamicCall ??=
-        _lookup<ffi.NativeFunction<_c_clang_Cursor_isDynamicCall>>(
-                'clang_Cursor_isDynamicCall')
-            .asFunction<_dart_clang_Cursor_isDynamicCall>())(
+    return _clang_Cursor_isDynamicCall(
       C,
     );
   }
 
-  _dart_clang_Cursor_isDynamicCall? _clang_Cursor_isDynamicCall;
+  late final _clang_Cursor_isDynamicCall_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_Cursor_isDynamicCall>>(
+          'clang_Cursor_isDynamicCall');
+  late final _dart_clang_Cursor_isDynamicCall _clang_Cursor_isDynamicCall =
+      _clang_Cursor_isDynamicCall_ptr
+          .asFunction<_dart_clang_Cursor_isDynamicCall>();
 
   /// Given a cursor pointing to an Objective-C message or property
   /// reference, or C++ method call, returns the CXType of the receiver.
   CXType clang_Cursor_getReceiverType(
     CXCursor C,
   ) {
-    return (_clang_Cursor_getReceiverType ??=
-        _lookup<ffi.NativeFunction<_c_clang_Cursor_getReceiverType>>(
-                'clang_Cursor_getReceiverType')
-            .asFunction<_dart_clang_Cursor_getReceiverType>())(
+    return _clang_Cursor_getReceiverType(
       C,
     );
   }
 
-  _dart_clang_Cursor_getReceiverType? _clang_Cursor_getReceiverType;
+  late final _clang_Cursor_getReceiverType_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_Cursor_getReceiverType>>(
+          'clang_Cursor_getReceiverType');
+  late final _dart_clang_Cursor_getReceiverType _clang_Cursor_getReceiverType =
+      _clang_Cursor_getReceiverType_ptr
+          .asFunction<_dart_clang_Cursor_getReceiverType>();
 
   /// Given a cursor that represents a property declaration, return the
   /// associated property attributes. The bits are formed from
@@ -4197,49 +4563,55 @@
     CXCursor C,
     int reserved,
   ) {
-    return (_clang_Cursor_getObjCPropertyAttributes ??=
-        _lookup<ffi.NativeFunction<_c_clang_Cursor_getObjCPropertyAttributes>>(
-                'clang_Cursor_getObjCPropertyAttributes')
-            .asFunction<_dart_clang_Cursor_getObjCPropertyAttributes>())(
+    return _clang_Cursor_getObjCPropertyAttributes(
       C,
       reserved,
     );
   }
 
-  _dart_clang_Cursor_getObjCPropertyAttributes?
-      _clang_Cursor_getObjCPropertyAttributes;
+  late final _clang_Cursor_getObjCPropertyAttributes_ptr = _lookup<
+          ffi.NativeFunction<Native_clang_Cursor_getObjCPropertyAttributes>>(
+      'clang_Cursor_getObjCPropertyAttributes');
+  late final _dart_clang_Cursor_getObjCPropertyAttributes
+      _clang_Cursor_getObjCPropertyAttributes =
+      _clang_Cursor_getObjCPropertyAttributes_ptr
+          .asFunction<_dart_clang_Cursor_getObjCPropertyAttributes>();
 
   /// Given a cursor that represents a property declaration, return the
   /// name of the method that implements the getter.
   CXString clang_Cursor_getObjCPropertyGetterName(
     CXCursor C,
   ) {
-    return (_clang_Cursor_getObjCPropertyGetterName ??=
-        _lookup<ffi.NativeFunction<_c_clang_Cursor_getObjCPropertyGetterName>>(
-                'clang_Cursor_getObjCPropertyGetterName')
-            .asFunction<_dart_clang_Cursor_getObjCPropertyGetterName>())(
+    return _clang_Cursor_getObjCPropertyGetterName(
       C,
     );
   }
 
-  _dart_clang_Cursor_getObjCPropertyGetterName?
-      _clang_Cursor_getObjCPropertyGetterName;
+  late final _clang_Cursor_getObjCPropertyGetterName_ptr = _lookup<
+          ffi.NativeFunction<Native_clang_Cursor_getObjCPropertyGetterName>>(
+      'clang_Cursor_getObjCPropertyGetterName');
+  late final _dart_clang_Cursor_getObjCPropertyGetterName
+      _clang_Cursor_getObjCPropertyGetterName =
+      _clang_Cursor_getObjCPropertyGetterName_ptr
+          .asFunction<_dart_clang_Cursor_getObjCPropertyGetterName>();
 
   /// Given a cursor that represents a property declaration, return the
   /// name of the method that implements the setter, if any.
   CXString clang_Cursor_getObjCPropertySetterName(
     CXCursor C,
   ) {
-    return (_clang_Cursor_getObjCPropertySetterName ??=
-        _lookup<ffi.NativeFunction<_c_clang_Cursor_getObjCPropertySetterName>>(
-                'clang_Cursor_getObjCPropertySetterName')
-            .asFunction<_dart_clang_Cursor_getObjCPropertySetterName>())(
+    return _clang_Cursor_getObjCPropertySetterName(
       C,
     );
   }
 
-  _dart_clang_Cursor_getObjCPropertySetterName?
-      _clang_Cursor_getObjCPropertySetterName;
+  late final _clang_Cursor_getObjCPropertySetterName_ptr = _lookup<
+          ffi.NativeFunction<Native_clang_Cursor_getObjCPropertySetterName>>(
+      'clang_Cursor_getObjCPropertySetterName');
+  late final _dart_clang_Cursor_getObjCPropertySetterName
+      _clang_Cursor_getObjCPropertySetterName =
+      _clang_Cursor_getObjCPropertySetterName_ptr
+          .asFunction<_dart_clang_Cursor_getObjCPropertySetterName>();
 
   /// Given a cursor that represents an Objective-C method or parameter
   /// declaration, return the associated Objective-C qualifiers for the return
@@ -4248,15 +4620,18 @@
   int clang_Cursor_getObjCDeclQualifiers(
     CXCursor C,
   ) {
-    return (_clang_Cursor_getObjCDeclQualifiers ??=
-        _lookup<ffi.NativeFunction<_c_clang_Cursor_getObjCDeclQualifiers>>(
-                'clang_Cursor_getObjCDeclQualifiers')
-            .asFunction<_dart_clang_Cursor_getObjCDeclQualifiers>())(
+    return _clang_Cursor_getObjCDeclQualifiers(
       C,
     );
   }
 
-  _dart_clang_Cursor_getObjCDeclQualifiers? _clang_Cursor_getObjCDeclQualifiers;
+  late final _clang_Cursor_getObjCDeclQualifiers_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_Cursor_getObjCDeclQualifiers>>(
+          'clang_Cursor_getObjCDeclQualifiers');
+  late final _dart_clang_Cursor_getObjCDeclQualifiers
+      _clang_Cursor_getObjCDeclQualifiers =
+      _clang_Cursor_getObjCDeclQualifiers_ptr
+          .asFunction<_dart_clang_Cursor_getObjCDeclQualifiers>();
 
   /// Given a cursor that represents an Objective-C method or property
   /// declaration, return non-zero if the declaration was affected by "\@optional".
@@ -4264,29 +4639,32 @@
   int clang_Cursor_isObjCOptional(
     CXCursor C,
   ) {
-    return (_clang_Cursor_isObjCOptional ??=
-        _lookup<ffi.NativeFunction<_c_clang_Cursor_isObjCOptional>>(
-                'clang_Cursor_isObjCOptional')
-            .asFunction<_dart_clang_Cursor_isObjCOptional>())(
+    return _clang_Cursor_isObjCOptional(
       C,
     );
   }
 
-  _dart_clang_Cursor_isObjCOptional? _clang_Cursor_isObjCOptional;
+  late final _clang_Cursor_isObjCOptional_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_Cursor_isObjCOptional>>(
+          'clang_Cursor_isObjCOptional');
+  late final _dart_clang_Cursor_isObjCOptional _clang_Cursor_isObjCOptional =
+      _clang_Cursor_isObjCOptional_ptr
+          .asFunction<_dart_clang_Cursor_isObjCOptional>();
 
   /// Returns non-zero if the given cursor is a variadic function or method.
   int clang_Cursor_isVariadic(
     CXCursor C,
   ) {
-    return (_clang_Cursor_isVariadic ??=
-        _lookup<ffi.NativeFunction<_c_clang_Cursor_isVariadic>>(
-                'clang_Cursor_isVariadic')
-            .asFunction<_dart_clang_Cursor_isVariadic>())(
+    return _clang_Cursor_isVariadic(
       C,
     );
   }
 
-  _dart_clang_Cursor_isVariadic? _clang_Cursor_isVariadic;
+  late final _clang_Cursor_isVariadic_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_Cursor_isVariadic>>(
+          'clang_Cursor_isVariadic');
+  late final _dart_clang_Cursor_isVariadic _clang_Cursor_isVariadic =
+      _clang_Cursor_isVariadic_ptr.asFunction<_dart_clang_Cursor_isVariadic>();
 
   /// Returns non-zero if the given cursor points to a symbol marked with
   /// external_source_symbol attribute.
@@ -4305,10 +4683,7 @@
     ffi.Pointer<CXString> definedIn,
     ffi.Pointer<ffi.Uint32> isGenerated,
   ) {
-    return (_clang_Cursor_isExternalSymbol ??=
-        _lookup<ffi.NativeFunction<_c_clang_Cursor_isExternalSymbol>>(
-                'clang_Cursor_isExternalSymbol')
-            .asFunction<_dart_clang_Cursor_isExternalSymbol>())(
+    return _clang_Cursor_isExternalSymbol(
       C,
       language,
       definedIn,
@@ -4316,7 +4691,12 @@
     );
   }
 
-  _dart_clang_Cursor_isExternalSymbol? _clang_Cursor_isExternalSymbol;
+  late final _clang_Cursor_isExternalSymbol_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_Cursor_isExternalSymbol>>(
+          'clang_Cursor_isExternalSymbol');
+  late final _dart_clang_Cursor_isExternalSymbol
+      _clang_Cursor_isExternalSymbol = _clang_Cursor_isExternalSymbol_ptr
+          .asFunction<_dart_clang_Cursor_isExternalSymbol>();
 
   /// Given a cursor that represents a declaration, return the associated
   /// comment's source range.  The range may include multiple consecutive comments
@@ -4324,30 +4704,34 @@
   CXSourceRange clang_Cursor_getCommentRange(
     CXCursor C,
   ) {
-    return (_clang_Cursor_getCommentRange ??=
-        _lookup<ffi.NativeFunction<_c_clang_Cursor_getCommentRange>>(
-                'clang_Cursor_getCommentRange')
-            .asFunction<_dart_clang_Cursor_getCommentRange>())(
+    return _clang_Cursor_getCommentRange(
       C,
     );
   }
 
-  _dart_clang_Cursor_getCommentRange? _clang_Cursor_getCommentRange;
+  late final _clang_Cursor_getCommentRange_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_Cursor_getCommentRange>>(
+          'clang_Cursor_getCommentRange');
+  late final _dart_clang_Cursor_getCommentRange _clang_Cursor_getCommentRange =
+      _clang_Cursor_getCommentRange_ptr
+          .asFunction<_dart_clang_Cursor_getCommentRange>();
 
   /// Given a cursor that represents a declaration, return the associated
   /// comment text, including comment markers.
   CXString clang_Cursor_getRawCommentText(
     CXCursor C,
   ) {
-    return (_clang_Cursor_getRawCommentText ??=
-        _lookup<ffi.NativeFunction<_c_clang_Cursor_getRawCommentText>>(
-                'clang_Cursor_getRawCommentText')
-            .asFunction<_dart_clang_Cursor_getRawCommentText>())(
+    return _clang_Cursor_getRawCommentText(
       C,
     );
   }
 
-  _dart_clang_Cursor_getRawCommentText? _clang_Cursor_getRawCommentText;
+  late final _clang_Cursor_getRawCommentText_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_Cursor_getRawCommentText>>(
+          'clang_Cursor_getRawCommentText');
+  late final _dart_clang_Cursor_getRawCommentText
+      _clang_Cursor_getRawCommentText = _clang_Cursor_getRawCommentText_ptr
+          .asFunction<_dart_clang_Cursor_getRawCommentText>();
 
   /// Given a cursor that represents a documentable entity (e.g.,
   /// declaration), return the associated \paragraph; otherwise return the
@@ -4355,73 +4739,82 @@
   CXString clang_Cursor_getBriefCommentText(
     CXCursor C,
   ) {
-    return (_clang_Cursor_getBriefCommentText ??=
-        _lookup<ffi.NativeFunction<_c_clang_Cursor_getBriefCommentText>>(
-                'clang_Cursor_getBriefCommentText')
-            .asFunction<_dart_clang_Cursor_getBriefCommentText>())(
+    return _clang_Cursor_getBriefCommentText(
       C,
     );
   }
 
-  _dart_clang_Cursor_getBriefCommentText? _clang_Cursor_getBriefCommentText;
+  late final _clang_Cursor_getBriefCommentText_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_Cursor_getBriefCommentText>>(
+          'clang_Cursor_getBriefCommentText');
+  late final _dart_clang_Cursor_getBriefCommentText
+      _clang_Cursor_getBriefCommentText = _clang_Cursor_getBriefCommentText_ptr
+          .asFunction<_dart_clang_Cursor_getBriefCommentText>();
 
   /// Retrieve the CXString representing the mangled name of the cursor.
   CXString clang_Cursor_getMangling(
     CXCursor arg0,
   ) {
-    return (_clang_Cursor_getMangling ??=
-        _lookup<ffi.NativeFunction<_c_clang_Cursor_getMangling>>(
-                'clang_Cursor_getMangling')
-            .asFunction<_dart_clang_Cursor_getMangling>())(
+    return _clang_Cursor_getMangling(
       arg0,
     );
   }
 
-  _dart_clang_Cursor_getMangling? _clang_Cursor_getMangling;
+  late final _clang_Cursor_getMangling_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_Cursor_getMangling>>(
+          'clang_Cursor_getMangling');
+  late final _dart_clang_Cursor_getMangling _clang_Cursor_getMangling =
+      _clang_Cursor_getMangling_ptr
+          .asFunction<_dart_clang_Cursor_getMangling>();
 
   /// Retrieve the CXStrings representing the mangled symbols of the C++
   /// constructor or destructor at the cursor.
   ffi.Pointer<CXStringSet> clang_Cursor_getCXXManglings(
     CXCursor arg0,
   ) {
-    return (_clang_Cursor_getCXXManglings ??=
-        _lookup<ffi.NativeFunction<_c_clang_Cursor_getCXXManglings>>(
-                'clang_Cursor_getCXXManglings')
-            .asFunction<_dart_clang_Cursor_getCXXManglings>())(
+    return _clang_Cursor_getCXXManglings(
       arg0,
     );
   }
 
-  _dart_clang_Cursor_getCXXManglings? _clang_Cursor_getCXXManglings;
+  late final _clang_Cursor_getCXXManglings_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_Cursor_getCXXManglings>>(
+          'clang_Cursor_getCXXManglings');
+  late final _dart_clang_Cursor_getCXXManglings _clang_Cursor_getCXXManglings =
+      _clang_Cursor_getCXXManglings_ptr
+          .asFunction<_dart_clang_Cursor_getCXXManglings>();
 
   /// Retrieve the CXStrings representing the mangled symbols of the ObjC
   /// class interface or implementation at the cursor.
   ffi.Pointer<CXStringSet> clang_Cursor_getObjCManglings(
     CXCursor arg0,
   ) {
-    return (_clang_Cursor_getObjCManglings ??=
-        _lookup<ffi.NativeFunction<_c_clang_Cursor_getObjCManglings>>(
-                'clang_Cursor_getObjCManglings')
-            .asFunction<_dart_clang_Cursor_getObjCManglings>())(
+    return _clang_Cursor_getObjCManglings(
       arg0,
     );
   }
 
-  _dart_clang_Cursor_getObjCManglings? _clang_Cursor_getObjCManglings;
+  late final _clang_Cursor_getObjCManglings_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_Cursor_getObjCManglings>>(
+          'clang_Cursor_getObjCManglings');
+  late final _dart_clang_Cursor_getObjCManglings
+      _clang_Cursor_getObjCManglings = _clang_Cursor_getObjCManglings_ptr
+          .asFunction<_dart_clang_Cursor_getObjCManglings>();
 
   /// Given a CXCursor_ModuleImportDecl cursor, return the associated module.
   ffi.Pointer<ffi.Void> clang_Cursor_getModule(
     CXCursor C,
   ) {
-    return (_clang_Cursor_getModule ??=
-        _lookup<ffi.NativeFunction<_c_clang_Cursor_getModule>>(
-                'clang_Cursor_getModule')
-            .asFunction<_dart_clang_Cursor_getModule>())(
+    return _clang_Cursor_getModule(
       C,
     );
   }
 
-  _dart_clang_Cursor_getModule? _clang_Cursor_getModule;
+  late final _clang_Cursor_getModule_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_Cursor_getModule>>(
+          'clang_Cursor_getModule');
+  late final _dart_clang_Cursor_getModule _clang_Cursor_getModule =
+      _clang_Cursor_getModule_ptr.asFunction<_dart_clang_Cursor_getModule>();
 
   /// Given a CXFile header file, return the module that contains it, if one
   /// exists.
@@ -4429,16 +4822,17 @@
     ffi.Pointer<CXTranslationUnitImpl> arg0,
     ffi.Pointer<ffi.Void> arg1,
   ) {
-    return (_clang_getModuleForFile ??=
-        _lookup<ffi.NativeFunction<_c_clang_getModuleForFile>>(
-                'clang_getModuleForFile')
-            .asFunction<_dart_clang_getModuleForFile>())(
+    return _clang_getModuleForFile(
       arg0,
       arg1,
     );
   }
 
-  _dart_clang_getModuleForFile? _clang_getModuleForFile;
+  late final _clang_getModuleForFile_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_getModuleForFile>>(
+          'clang_getModuleForFile');
+  late final _dart_clang_getModuleForFile _clang_getModuleForFile =
+      _clang_getModuleForFile_ptr.asFunction<_dart_clang_getModuleForFile>();
 
   /// \param Module a module object.
   ///
@@ -4446,15 +4840,16 @@
   ffi.Pointer<ffi.Void> clang_Module_getASTFile(
     ffi.Pointer<ffi.Void> Module,
   ) {
-    return (_clang_Module_getASTFile ??=
-        _lookup<ffi.NativeFunction<_c_clang_Module_getASTFile>>(
-                'clang_Module_getASTFile')
-            .asFunction<_dart_clang_Module_getASTFile>())(
+    return _clang_Module_getASTFile(
       Module,
     );
   }
 
-  _dart_clang_Module_getASTFile? _clang_Module_getASTFile;
+  late final _clang_Module_getASTFile_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_Module_getASTFile>>(
+          'clang_Module_getASTFile');
+  late final _dart_clang_Module_getASTFile _clang_Module_getASTFile =
+      _clang_Module_getASTFile_ptr.asFunction<_dart_clang_Module_getASTFile>();
 
   /// \param Module a module object.
   ///
@@ -4463,15 +4858,16 @@
   ffi.Pointer<ffi.Void> clang_Module_getParent(
     ffi.Pointer<ffi.Void> Module,
   ) {
-    return (_clang_Module_getParent ??=
-        _lookup<ffi.NativeFunction<_c_clang_Module_getParent>>(
-                'clang_Module_getParent')
-            .asFunction<_dart_clang_Module_getParent>())(
+    return _clang_Module_getParent(
       Module,
     );
   }
 
-  _dart_clang_Module_getParent? _clang_Module_getParent;
+  late final _clang_Module_getParent_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_Module_getParent>>(
+          'clang_Module_getParent');
+  late final _dart_clang_Module_getParent _clang_Module_getParent =
+      _clang_Module_getParent_ptr.asFunction<_dart_clang_Module_getParent>();
 
   /// \param Module a module object.
   ///
@@ -4480,15 +4876,16 @@
   CXString clang_Module_getName(
     ffi.Pointer<ffi.Void> Module,
   ) {
-    return (_clang_Module_getName ??=
-        _lookup<ffi.NativeFunction<_c_clang_Module_getName>>(
-                'clang_Module_getName')
-            .asFunction<_dart_clang_Module_getName>())(
+    return _clang_Module_getName(
       Module,
     );
   }
 
-  _dart_clang_Module_getName? _clang_Module_getName;
+  late final _clang_Module_getName_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_Module_getName>>(
+          'clang_Module_getName');
+  late final _dart_clang_Module_getName _clang_Module_getName =
+      _clang_Module_getName_ptr.asFunction<_dart_clang_Module_getName>();
 
   /// \param Module a module object.
   ///
@@ -4496,15 +4893,17 @@
   CXString clang_Module_getFullName(
     ffi.Pointer<ffi.Void> Module,
   ) {
-    return (_clang_Module_getFullName ??=
-        _lookup<ffi.NativeFunction<_c_clang_Module_getFullName>>(
-                'clang_Module_getFullName')
-            .asFunction<_dart_clang_Module_getFullName>())(
+    return _clang_Module_getFullName(
       Module,
     );
   }
 
-  _dart_clang_Module_getFullName? _clang_Module_getFullName;
+  late final _clang_Module_getFullName_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_Module_getFullName>>(
+          'clang_Module_getFullName');
+  late final _dart_clang_Module_getFullName _clang_Module_getFullName =
+      _clang_Module_getFullName_ptr
+          .asFunction<_dart_clang_Module_getFullName>();
 
   /// \param Module a module object.
   ///
@@ -4512,15 +4911,16 @@
   int clang_Module_isSystem(
     ffi.Pointer<ffi.Void> Module,
   ) {
-    return (_clang_Module_isSystem ??=
-        _lookup<ffi.NativeFunction<_c_clang_Module_isSystem>>(
-                'clang_Module_isSystem')
-            .asFunction<_dart_clang_Module_isSystem>())(
+    return _clang_Module_isSystem(
       Module,
     );
   }
 
-  _dart_clang_Module_isSystem? _clang_Module_isSystem;
+  late final _clang_Module_isSystem_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_Module_isSystem>>(
+          'clang_Module_isSystem');
+  late final _dart_clang_Module_isSystem _clang_Module_isSystem =
+      _clang_Module_isSystem_ptr.asFunction<_dart_clang_Module_isSystem>();
 
   /// \param Module a module object.
   ///
@@ -4529,16 +4929,19 @@
     ffi.Pointer<CXTranslationUnitImpl> arg0,
     ffi.Pointer<ffi.Void> Module,
   ) {
-    return (_clang_Module_getNumTopLevelHeaders ??=
-        _lookup<ffi.NativeFunction<_c_clang_Module_getNumTopLevelHeaders>>(
-                'clang_Module_getNumTopLevelHeaders')
-            .asFunction<_dart_clang_Module_getNumTopLevelHeaders>())(
+    return _clang_Module_getNumTopLevelHeaders(
       arg0,
       Module,
     );
   }
 
-  _dart_clang_Module_getNumTopLevelHeaders? _clang_Module_getNumTopLevelHeaders;
+  late final _clang_Module_getNumTopLevelHeaders_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_Module_getNumTopLevelHeaders>>(
+          'clang_Module_getNumTopLevelHeaders');
+  late final _dart_clang_Module_getNumTopLevelHeaders
+      _clang_Module_getNumTopLevelHeaders =
+      _clang_Module_getNumTopLevelHeaders_ptr
+          .asFunction<_dart_clang_Module_getNumTopLevelHeaders>();
 
   /// \param Module a module object.
   ///
@@ -4550,137 +4953,154 @@
     ffi.Pointer<ffi.Void> Module,
     int Index,
   ) {
-    return (_clang_Module_getTopLevelHeader ??=
-        _lookup<ffi.NativeFunction<_c_clang_Module_getTopLevelHeader>>(
-                'clang_Module_getTopLevelHeader')
-            .asFunction<_dart_clang_Module_getTopLevelHeader>())(
+    return _clang_Module_getTopLevelHeader(
       arg0,
       Module,
       Index,
     );
   }
 
-  _dart_clang_Module_getTopLevelHeader? _clang_Module_getTopLevelHeader;
+  late final _clang_Module_getTopLevelHeader_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_Module_getTopLevelHeader>>(
+          'clang_Module_getTopLevelHeader');
+  late final _dart_clang_Module_getTopLevelHeader
+      _clang_Module_getTopLevelHeader = _clang_Module_getTopLevelHeader_ptr
+          .asFunction<_dart_clang_Module_getTopLevelHeader>();
 
   /// Determine if a C++ constructor is a converting constructor.
   int clang_CXXConstructor_isConvertingConstructor(
     CXCursor C,
   ) {
-    return (_clang_CXXConstructor_isConvertingConstructor ??= _lookup<
-                ffi.NativeFunction<
-                    _c_clang_CXXConstructor_isConvertingConstructor>>(
-            'clang_CXXConstructor_isConvertingConstructor')
-        .asFunction<_dart_clang_CXXConstructor_isConvertingConstructor>())(
+    return _clang_CXXConstructor_isConvertingConstructor(
       C,
     );
   }
 
-  _dart_clang_CXXConstructor_isConvertingConstructor?
-      _clang_CXXConstructor_isConvertingConstructor;
+  late final _clang_CXXConstructor_isConvertingConstructor_ptr = _lookup<
+          ffi.NativeFunction<
+              Native_clang_CXXConstructor_isConvertingConstructor>>(
+      'clang_CXXConstructor_isConvertingConstructor');
+  late final _dart_clang_CXXConstructor_isConvertingConstructor
+      _clang_CXXConstructor_isConvertingConstructor =
+      _clang_CXXConstructor_isConvertingConstructor_ptr
+          .asFunction<_dart_clang_CXXConstructor_isConvertingConstructor>();
 
   /// Determine if a C++ constructor is a copy constructor.
   int clang_CXXConstructor_isCopyConstructor(
     CXCursor C,
   ) {
-    return (_clang_CXXConstructor_isCopyConstructor ??=
-        _lookup<ffi.NativeFunction<_c_clang_CXXConstructor_isCopyConstructor>>(
-                'clang_CXXConstructor_isCopyConstructor')
-            .asFunction<_dart_clang_CXXConstructor_isCopyConstructor>())(
+    return _clang_CXXConstructor_isCopyConstructor(
       C,
     );
   }
 
-  _dart_clang_CXXConstructor_isCopyConstructor?
-      _clang_CXXConstructor_isCopyConstructor;
+  late final _clang_CXXConstructor_isCopyConstructor_ptr = _lookup<
+          ffi.NativeFunction<Native_clang_CXXConstructor_isCopyConstructor>>(
+      'clang_CXXConstructor_isCopyConstructor');
+  late final _dart_clang_CXXConstructor_isCopyConstructor
+      _clang_CXXConstructor_isCopyConstructor =
+      _clang_CXXConstructor_isCopyConstructor_ptr
+          .asFunction<_dart_clang_CXXConstructor_isCopyConstructor>();
 
   /// Determine if a C++ constructor is the default constructor.
   int clang_CXXConstructor_isDefaultConstructor(
     CXCursor C,
   ) {
-    return (_clang_CXXConstructor_isDefaultConstructor ??= _lookup<
-                ffi.NativeFunction<
-                    _c_clang_CXXConstructor_isDefaultConstructor>>(
-            'clang_CXXConstructor_isDefaultConstructor')
-        .asFunction<_dart_clang_CXXConstructor_isDefaultConstructor>())(
+    return _clang_CXXConstructor_isDefaultConstructor(
       C,
     );
   }
 
-  _dart_clang_CXXConstructor_isDefaultConstructor?
-      _clang_CXXConstructor_isDefaultConstructor;
+  late final _clang_CXXConstructor_isDefaultConstructor_ptr = _lookup<
+          ffi.NativeFunction<Native_clang_CXXConstructor_isDefaultConstructor>>(
+      'clang_CXXConstructor_isDefaultConstructor');
+  late final _dart_clang_CXXConstructor_isDefaultConstructor
+      _clang_CXXConstructor_isDefaultConstructor =
+      _clang_CXXConstructor_isDefaultConstructor_ptr
+          .asFunction<_dart_clang_CXXConstructor_isDefaultConstructor>();
 
   /// Determine if a C++ constructor is a move constructor.
   int clang_CXXConstructor_isMoveConstructor(
     CXCursor C,
   ) {
-    return (_clang_CXXConstructor_isMoveConstructor ??=
-        _lookup<ffi.NativeFunction<_c_clang_CXXConstructor_isMoveConstructor>>(
-                'clang_CXXConstructor_isMoveConstructor')
-            .asFunction<_dart_clang_CXXConstructor_isMoveConstructor>())(
+    return _clang_CXXConstructor_isMoveConstructor(
       C,
     );
   }
 
-  _dart_clang_CXXConstructor_isMoveConstructor?
-      _clang_CXXConstructor_isMoveConstructor;
+  late final _clang_CXXConstructor_isMoveConstructor_ptr = _lookup<
+          ffi.NativeFunction<Native_clang_CXXConstructor_isMoveConstructor>>(
+      'clang_CXXConstructor_isMoveConstructor');
+  late final _dart_clang_CXXConstructor_isMoveConstructor
+      _clang_CXXConstructor_isMoveConstructor =
+      _clang_CXXConstructor_isMoveConstructor_ptr
+          .asFunction<_dart_clang_CXXConstructor_isMoveConstructor>();
 
   /// Determine if a C++ field is declared 'mutable'.
   int clang_CXXField_isMutable(
     CXCursor C,
   ) {
-    return (_clang_CXXField_isMutable ??=
-        _lookup<ffi.NativeFunction<_c_clang_CXXField_isMutable>>(
-                'clang_CXXField_isMutable')
-            .asFunction<_dart_clang_CXXField_isMutable>())(
+    return _clang_CXXField_isMutable(
       C,
     );
   }
 
-  _dart_clang_CXXField_isMutable? _clang_CXXField_isMutable;
+  late final _clang_CXXField_isMutable_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_CXXField_isMutable>>(
+          'clang_CXXField_isMutable');
+  late final _dart_clang_CXXField_isMutable _clang_CXXField_isMutable =
+      _clang_CXXField_isMutable_ptr
+          .asFunction<_dart_clang_CXXField_isMutable>();
 
   /// Determine if a C++ method is declared '= default'.
   int clang_CXXMethod_isDefaulted(
     CXCursor C,
   ) {
-    return (_clang_CXXMethod_isDefaulted ??=
-        _lookup<ffi.NativeFunction<_c_clang_CXXMethod_isDefaulted>>(
-                'clang_CXXMethod_isDefaulted')
-            .asFunction<_dart_clang_CXXMethod_isDefaulted>())(
+    return _clang_CXXMethod_isDefaulted(
       C,
     );
   }
 
-  _dart_clang_CXXMethod_isDefaulted? _clang_CXXMethod_isDefaulted;
+  late final _clang_CXXMethod_isDefaulted_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_CXXMethod_isDefaulted>>(
+          'clang_CXXMethod_isDefaulted');
+  late final _dart_clang_CXXMethod_isDefaulted _clang_CXXMethod_isDefaulted =
+      _clang_CXXMethod_isDefaulted_ptr
+          .asFunction<_dart_clang_CXXMethod_isDefaulted>();
 
   /// Determine if a C++ member function or member function template is
   /// pure virtual.
   int clang_CXXMethod_isPureVirtual(
     CXCursor C,
   ) {
-    return (_clang_CXXMethod_isPureVirtual ??=
-        _lookup<ffi.NativeFunction<_c_clang_CXXMethod_isPureVirtual>>(
-                'clang_CXXMethod_isPureVirtual')
-            .asFunction<_dart_clang_CXXMethod_isPureVirtual>())(
+    return _clang_CXXMethod_isPureVirtual(
       C,
     );
   }
 
-  _dart_clang_CXXMethod_isPureVirtual? _clang_CXXMethod_isPureVirtual;
+  late final _clang_CXXMethod_isPureVirtual_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_CXXMethod_isPureVirtual>>(
+          'clang_CXXMethod_isPureVirtual');
+  late final _dart_clang_CXXMethod_isPureVirtual
+      _clang_CXXMethod_isPureVirtual = _clang_CXXMethod_isPureVirtual_ptr
+          .asFunction<_dart_clang_CXXMethod_isPureVirtual>();
 
   /// Determine if a C++ member function or member function template is
   /// declared 'static'.
   int clang_CXXMethod_isStatic(
     CXCursor C,
   ) {
-    return (_clang_CXXMethod_isStatic ??=
-        _lookup<ffi.NativeFunction<_c_clang_CXXMethod_isStatic>>(
-                'clang_CXXMethod_isStatic')
-            .asFunction<_dart_clang_CXXMethod_isStatic>())(
+    return _clang_CXXMethod_isStatic(
       C,
     );
   }
 
-  _dart_clang_CXXMethod_isStatic? _clang_CXXMethod_isStatic;
+  late final _clang_CXXMethod_isStatic_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_CXXMethod_isStatic>>(
+          'clang_CXXMethod_isStatic');
+  late final _dart_clang_CXXMethod_isStatic _clang_CXXMethod_isStatic =
+      _clang_CXXMethod_isStatic_ptr
+          .asFunction<_dart_clang_CXXMethod_isStatic>();
 
   /// Determine if a C++ member function or member function template is
   /// explicitly declared 'virtual' or if it overrides a virtual method from
@@ -4688,59 +5108,65 @@
   int clang_CXXMethod_isVirtual(
     CXCursor C,
   ) {
-    return (_clang_CXXMethod_isVirtual ??=
-        _lookup<ffi.NativeFunction<_c_clang_CXXMethod_isVirtual>>(
-                'clang_CXXMethod_isVirtual')
-            .asFunction<_dart_clang_CXXMethod_isVirtual>())(
+    return _clang_CXXMethod_isVirtual(
       C,
     );
   }
 
-  _dart_clang_CXXMethod_isVirtual? _clang_CXXMethod_isVirtual;
+  late final _clang_CXXMethod_isVirtual_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_CXXMethod_isVirtual>>(
+          'clang_CXXMethod_isVirtual');
+  late final _dart_clang_CXXMethod_isVirtual _clang_CXXMethod_isVirtual =
+      _clang_CXXMethod_isVirtual_ptr
+          .asFunction<_dart_clang_CXXMethod_isVirtual>();
 
   /// Determine if a C++ record is abstract, i.e. whether a class or struct
   /// has a pure virtual member function.
   int clang_CXXRecord_isAbstract(
     CXCursor C,
   ) {
-    return (_clang_CXXRecord_isAbstract ??=
-        _lookup<ffi.NativeFunction<_c_clang_CXXRecord_isAbstract>>(
-                'clang_CXXRecord_isAbstract')
-            .asFunction<_dart_clang_CXXRecord_isAbstract>())(
+    return _clang_CXXRecord_isAbstract(
       C,
     );
   }
 
-  _dart_clang_CXXRecord_isAbstract? _clang_CXXRecord_isAbstract;
+  late final _clang_CXXRecord_isAbstract_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_CXXRecord_isAbstract>>(
+          'clang_CXXRecord_isAbstract');
+  late final _dart_clang_CXXRecord_isAbstract _clang_CXXRecord_isAbstract =
+      _clang_CXXRecord_isAbstract_ptr
+          .asFunction<_dart_clang_CXXRecord_isAbstract>();
 
   /// Determine if an enum declaration refers to a scoped enum.
   int clang_EnumDecl_isScoped(
     CXCursor C,
   ) {
-    return (_clang_EnumDecl_isScoped ??=
-        _lookup<ffi.NativeFunction<_c_clang_EnumDecl_isScoped>>(
-                'clang_EnumDecl_isScoped')
-            .asFunction<_dart_clang_EnumDecl_isScoped>())(
+    return _clang_EnumDecl_isScoped(
       C,
     );
   }
 
-  _dart_clang_EnumDecl_isScoped? _clang_EnumDecl_isScoped;
+  late final _clang_EnumDecl_isScoped_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_EnumDecl_isScoped>>(
+          'clang_EnumDecl_isScoped');
+  late final _dart_clang_EnumDecl_isScoped _clang_EnumDecl_isScoped =
+      _clang_EnumDecl_isScoped_ptr.asFunction<_dart_clang_EnumDecl_isScoped>();
 
   /// Determine if a C++ member function or member function template is
   /// declared 'const'.
   int clang_CXXMethod_isConst(
     CXCursor C,
   ) {
-    return (_clang_CXXMethod_isConst ??=
-        _lookup<ffi.NativeFunction<_c_clang_CXXMethod_isConst>>(
-                'clang_CXXMethod_isConst')
-            .asFunction<_dart_clang_CXXMethod_isConst>())(
+    return _clang_CXXMethod_isConst(
       C,
     );
   }
 
-  _dart_clang_CXXMethod_isConst? _clang_CXXMethod_isConst;
+  late final _clang_CXXMethod_isConst_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_CXXMethod_isConst>>(
+          'clang_CXXMethod_isConst');
+  late final _dart_clang_CXXMethod_isConst _clang_CXXMethod_isConst =
+      _clang_CXXMethod_isConst_ptr.asFunction<_dart_clang_CXXMethod_isConst>();
 
   /// Given a cursor that represents a template, determine
   /// the cursor kind of the specializations would be generated by instantiating
@@ -4760,15 +5186,17 @@
   int clang_getTemplateCursorKind(
     CXCursor C,
   ) {
-    return (_clang_getTemplateCursorKind ??=
-        _lookup<ffi.NativeFunction<_c_clang_getTemplateCursorKind>>(
-                'clang_getTemplateCursorKind')
-            .asFunction<_dart_clang_getTemplateCursorKind>())(
+    return _clang_getTemplateCursorKind(
       C,
     );
   }
 
-  _dart_clang_getTemplateCursorKind? _clang_getTemplateCursorKind;
+  late final _clang_getTemplateCursorKind_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_getTemplateCursorKind>>(
+          'clang_getTemplateCursorKind');
+  late final _dart_clang_getTemplateCursorKind _clang_getTemplateCursorKind =
+      _clang_getTemplateCursorKind_ptr
+          .asFunction<_dart_clang_getTemplateCursorKind>();
 
   /// Given a cursor that may represent a specialization or instantiation
   /// of a template, retrieve the cursor that represents the template that it
@@ -4799,15 +5227,18 @@
   CXCursor clang_getSpecializedCursorTemplate(
     CXCursor C,
   ) {
-    return (_clang_getSpecializedCursorTemplate ??=
-        _lookup<ffi.NativeFunction<_c_clang_getSpecializedCursorTemplate>>(
-                'clang_getSpecializedCursorTemplate')
-            .asFunction<_dart_clang_getSpecializedCursorTemplate>())(
+    return _clang_getSpecializedCursorTemplate(
       C,
     );
   }
 
-  _dart_clang_getSpecializedCursorTemplate? _clang_getSpecializedCursorTemplate;
+  late final _clang_getSpecializedCursorTemplate_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_getSpecializedCursorTemplate>>(
+          'clang_getSpecializedCursorTemplate');
+  late final _dart_clang_getSpecializedCursorTemplate
+      _clang_getSpecializedCursorTemplate =
+      _clang_getSpecializedCursorTemplate_ptr
+          .asFunction<_dart_clang_getSpecializedCursorTemplate>();
 
   /// Given a cursor that references something else, return the source range
   /// covering that reference.
@@ -4830,17 +5261,20 @@
     int NameFlags,
     int PieceIndex,
   ) {
-    return (_clang_getCursorReferenceNameRange ??=
-        _lookup<ffi.NativeFunction<_c_clang_getCursorReferenceNameRange>>(
-                'clang_getCursorReferenceNameRange')
-            .asFunction<_dart_clang_getCursorReferenceNameRange>())(
+    return _clang_getCursorReferenceNameRange(
       C,
       NameFlags,
       PieceIndex,
     );
   }
 
-  _dart_clang_getCursorReferenceNameRange? _clang_getCursorReferenceNameRange;
+  late final _clang_getCursorReferenceNameRange_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_getCursorReferenceNameRange>>(
+          'clang_getCursorReferenceNameRange');
+  late final _dart_clang_getCursorReferenceNameRange
+      _clang_getCursorReferenceNameRange =
+      _clang_getCursorReferenceNameRange_ptr
+          .asFunction<_dart_clang_getCursorReferenceNameRange>();
 
   /// Get the raw lexical token starting with the given location.
   ///
@@ -4855,28 +5289,31 @@
     ffi.Pointer<CXTranslationUnitImpl> TU,
     CXSourceLocation Location,
   ) {
-    return (_clang_getToken ??=
-        _lookup<ffi.NativeFunction<_c_clang_getToken>>('clang_getToken')
-            .asFunction<_dart_clang_getToken>())(
+    return _clang_getToken(
       TU,
       Location,
     );
   }
 
-  _dart_clang_getToken? _clang_getToken;
+  late final _clang_getToken_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_getToken>>('clang_getToken');
+  late final _dart_clang_getToken _clang_getToken =
+      _clang_getToken_ptr.asFunction<_dart_clang_getToken>();
 
   /// Determine the kind of the given token.
   int clang_getTokenKind(
     CXToken arg0,
   ) {
-    return (_clang_getTokenKind ??=
-        _lookup<ffi.NativeFunction<_c_clang_getTokenKind>>('clang_getTokenKind')
-            .asFunction<_dart_clang_getTokenKind>())(
+    return _clang_getTokenKind(
       arg0,
     );
   }
 
-  _dart_clang_getTokenKind? _clang_getTokenKind;
+  late final _clang_getTokenKind_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_getTokenKind>>(
+          'clang_getTokenKind');
+  late final _dart_clang_getTokenKind _clang_getTokenKind =
+      _clang_getTokenKind_ptr.asFunction<_dart_clang_getTokenKind>();
 
   /// Determine the spelling of the given token.
   ///
@@ -4886,48 +5323,51 @@
     ffi.Pointer<CXTranslationUnitImpl> arg0,
     CXToken arg1,
   ) {
-    return (_clang_getTokenSpelling ??=
-        _lookup<ffi.NativeFunction<_c_clang_getTokenSpelling>>(
-                'clang_getTokenSpelling')
-            .asFunction<_dart_clang_getTokenSpelling>())(
+    return _clang_getTokenSpelling(
       arg0,
       arg1,
     );
   }
 
-  _dart_clang_getTokenSpelling? _clang_getTokenSpelling;
+  late final _clang_getTokenSpelling_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_getTokenSpelling>>(
+          'clang_getTokenSpelling');
+  late final _dart_clang_getTokenSpelling _clang_getTokenSpelling =
+      _clang_getTokenSpelling_ptr.asFunction<_dart_clang_getTokenSpelling>();
 
   /// Retrieve the source location of the given token.
   CXSourceLocation clang_getTokenLocation(
     ffi.Pointer<CXTranslationUnitImpl> arg0,
     CXToken arg1,
   ) {
-    return (_clang_getTokenLocation ??=
-        _lookup<ffi.NativeFunction<_c_clang_getTokenLocation>>(
-                'clang_getTokenLocation')
-            .asFunction<_dart_clang_getTokenLocation>())(
+    return _clang_getTokenLocation(
       arg0,
       arg1,
     );
   }
 
-  _dart_clang_getTokenLocation? _clang_getTokenLocation;
+  late final _clang_getTokenLocation_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_getTokenLocation>>(
+          'clang_getTokenLocation');
+  late final _dart_clang_getTokenLocation _clang_getTokenLocation =
+      _clang_getTokenLocation_ptr.asFunction<_dart_clang_getTokenLocation>();
 
   /// Retrieve a source range that covers the given token.
   CXSourceRange clang_getTokenExtent(
     ffi.Pointer<CXTranslationUnitImpl> arg0,
     CXToken arg1,
   ) {
-    return (_clang_getTokenExtent ??=
-        _lookup<ffi.NativeFunction<_c_clang_getTokenExtent>>(
-                'clang_getTokenExtent')
-            .asFunction<_dart_clang_getTokenExtent>())(
+    return _clang_getTokenExtent(
       arg0,
       arg1,
     );
   }
 
-  _dart_clang_getTokenExtent? _clang_getTokenExtent;
+  late final _clang_getTokenExtent_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_getTokenExtent>>(
+          'clang_getTokenExtent');
+  late final _dart_clang_getTokenExtent _clang_getTokenExtent =
+      _clang_getTokenExtent_ptr.asFunction<_dart_clang_getTokenExtent>();
 
   /// Tokenize the source code described by the given range into raw
   /// lexical tokens.
@@ -4949,9 +5389,7 @@
     ffi.Pointer<ffi.Pointer<CXToken>> Tokens,
     ffi.Pointer<ffi.Uint32> NumTokens,
   ) {
-    return (_clang_tokenize ??=
-        _lookup<ffi.NativeFunction<_c_clang_tokenize>>('clang_tokenize')
-            .asFunction<_dart_clang_tokenize>())(
+    return _clang_tokenize(
       TU,
       Range,
       Tokens,
@@ -4959,7 +5397,10 @@
     );
   }
 
-  _dart_clang_tokenize? _clang_tokenize;
+  late final _clang_tokenize_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_tokenize>>('clang_tokenize');
+  late final _dart_clang_tokenize _clang_tokenize =
+      _clang_tokenize_ptr.asFunction<_dart_clang_tokenize>();
 
   /// Annotate the given set of tokens by providing cursors for each token
   /// that can be mapped to a specific entity within the abstract syntax tree.
@@ -4995,10 +5436,7 @@
     int NumTokens,
     ffi.Pointer<CXCursor> Cursors,
   ) {
-    return (_clang_annotateTokens ??=
-        _lookup<ffi.NativeFunction<_c_clang_annotateTokens>>(
-                'clang_annotateTokens')
-            .asFunction<_dart_clang_annotateTokens>())(
+    return _clang_annotateTokens(
       TU,
       Tokens,
       NumTokens,
@@ -5006,7 +5444,11 @@
     );
   }
 
-  _dart_clang_annotateTokens? _clang_annotateTokens;
+  late final _clang_annotateTokens_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_annotateTokens>>(
+          'clang_annotateTokens');
+  late final _dart_clang_annotateTokens _clang_annotateTokens =
+      _clang_annotateTokens_ptr.asFunction<_dart_clang_annotateTokens>();
 
   /// Free the given set of tokens.
   void clang_disposeTokens(
@@ -5014,17 +5456,18 @@
     ffi.Pointer<CXToken> Tokens,
     int NumTokens,
   ) {
-    return (_clang_disposeTokens ??=
-        _lookup<ffi.NativeFunction<_c_clang_disposeTokens>>(
-                'clang_disposeTokens')
-            .asFunction<_dart_clang_disposeTokens>())(
+    return _clang_disposeTokens(
       TU,
       Tokens,
       NumTokens,
     );
   }
 
-  _dart_clang_disposeTokens? _clang_disposeTokens;
+  late final _clang_disposeTokens_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_disposeTokens>>(
+          'clang_disposeTokens');
+  late final _dart_clang_disposeTokens _clang_disposeTokens =
+      _clang_disposeTokens_ptr.asFunction<_dart_clang_disposeTokens>();
 
   /// \defgroup CINDEX_DEBUG Debugging facilities
   ///
@@ -5035,15 +5478,17 @@
   CXString clang_getCursorKindSpelling(
     int Kind,
   ) {
-    return (_clang_getCursorKindSpelling ??=
-        _lookup<ffi.NativeFunction<_c_clang_getCursorKindSpelling>>(
-                'clang_getCursorKindSpelling')
-            .asFunction<_dart_clang_getCursorKindSpelling>())(
+    return _clang_getCursorKindSpelling(
       Kind,
     );
   }
 
-  _dart_clang_getCursorKindSpelling? _clang_getCursorKindSpelling;
+  late final _clang_getCursorKindSpelling_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_getCursorKindSpelling>>(
+          'clang_getCursorKindSpelling');
+  late final _dart_clang_getCursorKindSpelling _clang_getCursorKindSpelling =
+      _clang_getCursorKindSpelling_ptr
+          .asFunction<_dart_clang_getCursorKindSpelling>();
 
   void clang_getDefinitionSpellingAndExtent(
     CXCursor arg0,
@@ -5054,10 +5499,7 @@
     ffi.Pointer<ffi.Uint32> endLine,
     ffi.Pointer<ffi.Uint32> endColumn,
   ) {
-    return (_clang_getDefinitionSpellingAndExtent ??=
-        _lookup<ffi.NativeFunction<_c_clang_getDefinitionSpellingAndExtent>>(
-                'clang_getDefinitionSpellingAndExtent')
-            .asFunction<_dart_clang_getDefinitionSpellingAndExtent>())(
+    return _clang_getDefinitionSpellingAndExtent(
       arg0,
       startBuf,
       endBuf,
@@ -5068,34 +5510,41 @@
     );
   }
 
-  _dart_clang_getDefinitionSpellingAndExtent?
-      _clang_getDefinitionSpellingAndExtent;
+  late final _clang_getDefinitionSpellingAndExtent_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_getDefinitionSpellingAndExtent>>(
+          'clang_getDefinitionSpellingAndExtent');
+  late final _dart_clang_getDefinitionSpellingAndExtent
+      _clang_getDefinitionSpellingAndExtent =
+      _clang_getDefinitionSpellingAndExtent_ptr
+          .asFunction<_dart_clang_getDefinitionSpellingAndExtent>();
 
   void clang_enableStackTraces() {
-    return (_clang_enableStackTraces ??=
-        _lookup<ffi.NativeFunction<_c_clang_enableStackTraces>>(
-                'clang_enableStackTraces')
-            .asFunction<_dart_clang_enableStackTraces>())();
+    return _clang_enableStackTraces();
   }
 
-  _dart_clang_enableStackTraces? _clang_enableStackTraces;
+  late final _clang_enableStackTraces_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_enableStackTraces>>(
+          'clang_enableStackTraces');
+  late final _dart_clang_enableStackTraces _clang_enableStackTraces =
+      _clang_enableStackTraces_ptr.asFunction<_dart_clang_enableStackTraces>();
 
   void clang_executeOnThread(
     ffi.Pointer<ffi.NativeFunction<_typedefC_1>> fn,
     ffi.Pointer<ffi.Void> user_data,
     int stack_size,
   ) {
-    return (_clang_executeOnThread ??=
-        _lookup<ffi.NativeFunction<_c_clang_executeOnThread>>(
-                'clang_executeOnThread')
-            .asFunction<_dart_clang_executeOnThread>())(
+    return _clang_executeOnThread(
       fn,
       user_data,
       stack_size,
     );
   }
 
-  _dart_clang_executeOnThread? _clang_executeOnThread;
+  late final _clang_executeOnThread_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_executeOnThread>>(
+          'clang_executeOnThread');
+  late final _dart_clang_executeOnThread _clang_executeOnThread =
+      _clang_executeOnThread_ptr.asFunction<_dart_clang_executeOnThread>();
 
   /// Determine the kind of a particular chunk within a completion string.
   ///
@@ -5108,16 +5557,18 @@
     ffi.Pointer<ffi.Void> completion_string,
     int chunk_number,
   ) {
-    return (_clang_getCompletionChunkKind ??=
-        _lookup<ffi.NativeFunction<_c_clang_getCompletionChunkKind>>(
-                'clang_getCompletionChunkKind')
-            .asFunction<_dart_clang_getCompletionChunkKind>())(
+    return _clang_getCompletionChunkKind(
       completion_string,
       chunk_number,
     );
   }
 
-  _dart_clang_getCompletionChunkKind? _clang_getCompletionChunkKind;
+  late final _clang_getCompletionChunkKind_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_getCompletionChunkKind>>(
+          'clang_getCompletionChunkKind');
+  late final _dart_clang_getCompletionChunkKind _clang_getCompletionChunkKind =
+      _clang_getCompletionChunkKind_ptr
+          .asFunction<_dart_clang_getCompletionChunkKind>();
 
   /// Retrieve the text associated with a particular chunk within a
   /// completion string.
@@ -5131,16 +5582,18 @@
     ffi.Pointer<ffi.Void> completion_string,
     int chunk_number,
   ) {
-    return (_clang_getCompletionChunkText ??=
-        _lookup<ffi.NativeFunction<_c_clang_getCompletionChunkText>>(
-                'clang_getCompletionChunkText')
-            .asFunction<_dart_clang_getCompletionChunkText>())(
+    return _clang_getCompletionChunkText(
       completion_string,
       chunk_number,
     );
   }
 
-  _dart_clang_getCompletionChunkText? _clang_getCompletionChunkText;
+  late final _clang_getCompletionChunkText_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_getCompletionChunkText>>(
+          'clang_getCompletionChunkText');
+  late final _dart_clang_getCompletionChunkText _clang_getCompletionChunkText =
+      _clang_getCompletionChunkText_ptr
+          .asFunction<_dart_clang_getCompletionChunkText>();
 
   /// Retrieve the completion string associated with a particular chunk
   /// within a completion string.
@@ -5155,32 +5608,35 @@
     ffi.Pointer<ffi.Void> completion_string,
     int chunk_number,
   ) {
-    return (_clang_getCompletionChunkCompletionString ??= _lookup<
-                ffi.NativeFunction<
-                    _c_clang_getCompletionChunkCompletionString>>(
-            'clang_getCompletionChunkCompletionString')
-        .asFunction<_dart_clang_getCompletionChunkCompletionString>())(
+    return _clang_getCompletionChunkCompletionString(
       completion_string,
       chunk_number,
     );
   }
 
-  _dart_clang_getCompletionChunkCompletionString?
-      _clang_getCompletionChunkCompletionString;
+  late final _clang_getCompletionChunkCompletionString_ptr = _lookup<
+          ffi.NativeFunction<Native_clang_getCompletionChunkCompletionString>>(
+      'clang_getCompletionChunkCompletionString');
+  late final _dart_clang_getCompletionChunkCompletionString
+      _clang_getCompletionChunkCompletionString =
+      _clang_getCompletionChunkCompletionString_ptr
+          .asFunction<_dart_clang_getCompletionChunkCompletionString>();
 
   /// Retrieve the number of chunks in the given code-completion string.
   int clang_getNumCompletionChunks(
     ffi.Pointer<ffi.Void> completion_string,
   ) {
-    return (_clang_getNumCompletionChunks ??=
-        _lookup<ffi.NativeFunction<_c_clang_getNumCompletionChunks>>(
-                'clang_getNumCompletionChunks')
-            .asFunction<_dart_clang_getNumCompletionChunks>())(
+    return _clang_getNumCompletionChunks(
       completion_string,
     );
   }
 
-  _dart_clang_getNumCompletionChunks? _clang_getNumCompletionChunks;
+  late final _clang_getNumCompletionChunks_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_getNumCompletionChunks>>(
+          'clang_getNumCompletionChunks');
+  late final _dart_clang_getNumCompletionChunks _clang_getNumCompletionChunks =
+      _clang_getNumCompletionChunks_ptr
+          .asFunction<_dart_clang_getNumCompletionChunks>();
 
   /// Determine the priority of this code completion.
   ///
@@ -5195,15 +5651,17 @@
   int clang_getCompletionPriority(
     ffi.Pointer<ffi.Void> completion_string,
   ) {
-    return (_clang_getCompletionPriority ??=
-        _lookup<ffi.NativeFunction<_c_clang_getCompletionPriority>>(
-                'clang_getCompletionPriority')
-            .asFunction<_dart_clang_getCompletionPriority>())(
+    return _clang_getCompletionPriority(
       completion_string,
     );
   }
 
-  _dart_clang_getCompletionPriority? _clang_getCompletionPriority;
+  late final _clang_getCompletionPriority_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_getCompletionPriority>>(
+          'clang_getCompletionPriority');
+  late final _dart_clang_getCompletionPriority _clang_getCompletionPriority =
+      _clang_getCompletionPriority_ptr
+          .asFunction<_dart_clang_getCompletionPriority>();
 
   /// Determine the availability of the entity that this code-completion
   /// string refers to.
@@ -5214,15 +5672,17 @@
   int clang_getCompletionAvailability(
     ffi.Pointer<ffi.Void> completion_string,
   ) {
-    return (_clang_getCompletionAvailability ??=
-        _lookup<ffi.NativeFunction<_c_clang_getCompletionAvailability>>(
-                'clang_getCompletionAvailability')
-            .asFunction<_dart_clang_getCompletionAvailability>())(
+    return _clang_getCompletionAvailability(
       completion_string,
     );
   }
 
-  _dart_clang_getCompletionAvailability? _clang_getCompletionAvailability;
+  late final _clang_getCompletionAvailability_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_getCompletionAvailability>>(
+          'clang_getCompletionAvailability');
+  late final _dart_clang_getCompletionAvailability
+      _clang_getCompletionAvailability = _clang_getCompletionAvailability_ptr
+          .asFunction<_dart_clang_getCompletionAvailability>();
 
   /// Retrieve the number of annotations associated with the given
   /// completion string.
@@ -5234,15 +5694,18 @@
   int clang_getCompletionNumAnnotations(
     ffi.Pointer<ffi.Void> completion_string,
   ) {
-    return (_clang_getCompletionNumAnnotations ??=
-        _lookup<ffi.NativeFunction<_c_clang_getCompletionNumAnnotations>>(
-                'clang_getCompletionNumAnnotations')
-            .asFunction<_dart_clang_getCompletionNumAnnotations>())(
+    return _clang_getCompletionNumAnnotations(
       completion_string,
     );
   }
 
-  _dart_clang_getCompletionNumAnnotations? _clang_getCompletionNumAnnotations;
+  late final _clang_getCompletionNumAnnotations_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_getCompletionNumAnnotations>>(
+          'clang_getCompletionNumAnnotations');
+  late final _dart_clang_getCompletionNumAnnotations
+      _clang_getCompletionNumAnnotations =
+      _clang_getCompletionNumAnnotations_ptr
+          .asFunction<_dart_clang_getCompletionNumAnnotations>();
 
   /// Retrieve the annotation associated with the given completion string.
   ///
@@ -5257,16 +5720,18 @@
     ffi.Pointer<ffi.Void> completion_string,
     int annotation_number,
   ) {
-    return (_clang_getCompletionAnnotation ??=
-        _lookup<ffi.NativeFunction<_c_clang_getCompletionAnnotation>>(
-                'clang_getCompletionAnnotation')
-            .asFunction<_dart_clang_getCompletionAnnotation>())(
+    return _clang_getCompletionAnnotation(
       completion_string,
       annotation_number,
     );
   }
 
-  _dart_clang_getCompletionAnnotation? _clang_getCompletionAnnotation;
+  late final _clang_getCompletionAnnotation_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_getCompletionAnnotation>>(
+          'clang_getCompletionAnnotation');
+  late final _dart_clang_getCompletionAnnotation
+      _clang_getCompletionAnnotation = _clang_getCompletionAnnotation_ptr
+          .asFunction<_dart_clang_getCompletionAnnotation>();
 
   /// Retrieve the parent context of the given completion string.
   ///
@@ -5286,31 +5751,35 @@
     ffi.Pointer<ffi.Void> completion_string,
     ffi.Pointer<ffi.Int32> kind,
   ) {
-    return (_clang_getCompletionParent ??=
-        _lookup<ffi.NativeFunction<_c_clang_getCompletionParent>>(
-                'clang_getCompletionParent')
-            .asFunction<_dart_clang_getCompletionParent>())(
+    return _clang_getCompletionParent(
       completion_string,
       kind,
     );
   }
 
-  _dart_clang_getCompletionParent? _clang_getCompletionParent;
+  late final _clang_getCompletionParent_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_getCompletionParent>>(
+          'clang_getCompletionParent');
+  late final _dart_clang_getCompletionParent _clang_getCompletionParent =
+      _clang_getCompletionParent_ptr
+          .asFunction<_dart_clang_getCompletionParent>();
 
   /// Retrieve the brief documentation comment attached to the declaration
   /// that corresponds to the given completion string.
   CXString clang_getCompletionBriefComment(
     ffi.Pointer<ffi.Void> completion_string,
   ) {
-    return (_clang_getCompletionBriefComment ??=
-        _lookup<ffi.NativeFunction<_c_clang_getCompletionBriefComment>>(
-                'clang_getCompletionBriefComment')
-            .asFunction<_dart_clang_getCompletionBriefComment>())(
+    return _clang_getCompletionBriefComment(
       completion_string,
     );
   }
 
-  _dart_clang_getCompletionBriefComment? _clang_getCompletionBriefComment;
+  late final _clang_getCompletionBriefComment_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_getCompletionBriefComment>>(
+          'clang_getCompletionBriefComment');
+  late final _dart_clang_getCompletionBriefComment
+      _clang_getCompletionBriefComment = _clang_getCompletionBriefComment_ptr
+          .asFunction<_dart_clang_getCompletionBriefComment>();
 
   /// Retrieve a completion string for an arbitrary declaration or macro
   /// definition cursor.
@@ -5322,15 +5791,17 @@
   ffi.Pointer<ffi.Void> clang_getCursorCompletionString(
     CXCursor cursor,
   ) {
-    return (_clang_getCursorCompletionString ??=
-        _lookup<ffi.NativeFunction<_c_clang_getCursorCompletionString>>(
-                'clang_getCursorCompletionString')
-            .asFunction<_dart_clang_getCursorCompletionString>())(
+    return _clang_getCursorCompletionString(
       cursor,
     );
   }
 
-  _dart_clang_getCursorCompletionString? _clang_getCursorCompletionString;
+  late final _clang_getCursorCompletionString_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_getCursorCompletionString>>(
+          'clang_getCursorCompletionString');
+  late final _dart_clang_getCursorCompletionString
+      _clang_getCursorCompletionString = _clang_getCursorCompletionString_ptr
+          .asFunction<_dart_clang_getCursorCompletionString>();
 
   /// Retrieve the number of fix-its for the given completion index.
   ///
@@ -5347,16 +5818,18 @@
     ffi.Pointer<CXCodeCompleteResults> results,
     int completion_index,
   ) {
-    return (_clang_getCompletionNumFixIts ??=
-        _lookup<ffi.NativeFunction<_c_clang_getCompletionNumFixIts>>(
-                'clang_getCompletionNumFixIts')
-            .asFunction<_dart_clang_getCompletionNumFixIts>())(
+    return _clang_getCompletionNumFixIts(
       results,
       completion_index,
     );
   }
 
-  _dart_clang_getCompletionNumFixIts? _clang_getCompletionNumFixIts;
+  late final _clang_getCompletionNumFixIts_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_getCompletionNumFixIts>>(
+          'clang_getCompletionNumFixIts');
+  late final _dart_clang_getCompletionNumFixIts _clang_getCompletionNumFixIts =
+      _clang_getCompletionNumFixIts_ptr
+          .asFunction<_dart_clang_getCompletionNumFixIts>();
 
   /// Fix-its that *must* be applied before inserting the text for the
   /// corresponding completion.
@@ -5405,10 +5878,7 @@
     int fixit_index,
     ffi.Pointer<CXSourceRange> replacement_range,
   ) {
-    return (_clang_getCompletionFixIt ??=
-        _lookup<ffi.NativeFunction<_c_clang_getCompletionFixIt>>(
-                'clang_getCompletionFixIt')
-            .asFunction<_dart_clang_getCompletionFixIt>())(
+    return _clang_getCompletionFixIt(
       results,
       completion_index,
       fixit_index,
@@ -5416,18 +5886,25 @@
     );
   }
 
-  _dart_clang_getCompletionFixIt? _clang_getCompletionFixIt;
+  late final _clang_getCompletionFixIt_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_getCompletionFixIt>>(
+          'clang_getCompletionFixIt');
+  late final _dart_clang_getCompletionFixIt _clang_getCompletionFixIt =
+      _clang_getCompletionFixIt_ptr
+          .asFunction<_dart_clang_getCompletionFixIt>();
 
   /// Returns a default set of code-completion options that can be
   /// passed to\c clang_codeCompleteAt().
   int clang_defaultCodeCompleteOptions() {
-    return (_clang_defaultCodeCompleteOptions ??=
-        _lookup<ffi.NativeFunction<_c_clang_defaultCodeCompleteOptions>>(
-                'clang_defaultCodeCompleteOptions')
-            .asFunction<_dart_clang_defaultCodeCompleteOptions>())();
+    return _clang_defaultCodeCompleteOptions();
   }
 
-  _dart_clang_defaultCodeCompleteOptions? _clang_defaultCodeCompleteOptions;
+  late final _clang_defaultCodeCompleteOptions_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_defaultCodeCompleteOptions>>(
+          'clang_defaultCodeCompleteOptions');
+  late final _dart_clang_defaultCodeCompleteOptions
+      _clang_defaultCodeCompleteOptions = _clang_defaultCodeCompleteOptions_ptr
+          .asFunction<_dart_clang_defaultCodeCompleteOptions>();
 
   /// Perform code completion at a given location in a translation unit.
   ///
@@ -5504,10 +5981,7 @@
     int num_unsaved_files,
     int options,
   ) {
-    return (_clang_codeCompleteAt ??=
-        _lookup<ffi.NativeFunction<_c_clang_codeCompleteAt>>(
-                'clang_codeCompleteAt')
-            .asFunction<_dart_clang_codeCompleteAt>())(
+    return _clang_codeCompleteAt(
       TU,
       complete_filename,
       complete_line,
@@ -5518,7 +5992,11 @@
     );
   }
 
-  _dart_clang_codeCompleteAt? _clang_codeCompleteAt;
+  late final _clang_codeCompleteAt_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_codeCompleteAt>>(
+          'clang_codeCompleteAt');
+  late final _dart_clang_codeCompleteAt _clang_codeCompleteAt =
+      _clang_codeCompleteAt_ptr.asFunction<_dart_clang_codeCompleteAt>();
 
   /// Sort the code-completion results in case-insensitive alphabetical
   /// order.
@@ -5529,46 +6007,52 @@
     ffi.Pointer<CXCompletionResult> Results,
     int NumResults,
   ) {
-    return (_clang_sortCodeCompletionResults ??=
-        _lookup<ffi.NativeFunction<_c_clang_sortCodeCompletionResults>>(
-                'clang_sortCodeCompletionResults')
-            .asFunction<_dart_clang_sortCodeCompletionResults>())(
+    return _clang_sortCodeCompletionResults(
       Results,
       NumResults,
     );
   }
 
-  _dart_clang_sortCodeCompletionResults? _clang_sortCodeCompletionResults;
+  late final _clang_sortCodeCompletionResults_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_sortCodeCompletionResults>>(
+          'clang_sortCodeCompletionResults');
+  late final _dart_clang_sortCodeCompletionResults
+      _clang_sortCodeCompletionResults = _clang_sortCodeCompletionResults_ptr
+          .asFunction<_dart_clang_sortCodeCompletionResults>();
 
   /// Free the given set of code-completion results.
   void clang_disposeCodeCompleteResults(
     ffi.Pointer<CXCodeCompleteResults> Results,
   ) {
-    return (_clang_disposeCodeCompleteResults ??=
-        _lookup<ffi.NativeFunction<_c_clang_disposeCodeCompleteResults>>(
-                'clang_disposeCodeCompleteResults')
-            .asFunction<_dart_clang_disposeCodeCompleteResults>())(
+    return _clang_disposeCodeCompleteResults(
       Results,
     );
   }
 
-  _dart_clang_disposeCodeCompleteResults? _clang_disposeCodeCompleteResults;
+  late final _clang_disposeCodeCompleteResults_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_disposeCodeCompleteResults>>(
+          'clang_disposeCodeCompleteResults');
+  late final _dart_clang_disposeCodeCompleteResults
+      _clang_disposeCodeCompleteResults = _clang_disposeCodeCompleteResults_ptr
+          .asFunction<_dart_clang_disposeCodeCompleteResults>();
 
   /// Determine the number of diagnostics produced prior to the
   /// location where code completion was performed.
   int clang_codeCompleteGetNumDiagnostics(
     ffi.Pointer<CXCodeCompleteResults> Results,
   ) {
-    return (_clang_codeCompleteGetNumDiagnostics ??=
-        _lookup<ffi.NativeFunction<_c_clang_codeCompleteGetNumDiagnostics>>(
-                'clang_codeCompleteGetNumDiagnostics')
-            .asFunction<_dart_clang_codeCompleteGetNumDiagnostics>())(
+    return _clang_codeCompleteGetNumDiagnostics(
       Results,
     );
   }
 
-  _dart_clang_codeCompleteGetNumDiagnostics?
-      _clang_codeCompleteGetNumDiagnostics;
+  late final _clang_codeCompleteGetNumDiagnostics_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_codeCompleteGetNumDiagnostics>>(
+          'clang_codeCompleteGetNumDiagnostics');
+  late final _dart_clang_codeCompleteGetNumDiagnostics
+      _clang_codeCompleteGetNumDiagnostics =
+      _clang_codeCompleteGetNumDiagnostics_ptr
+          .asFunction<_dart_clang_codeCompleteGetNumDiagnostics>();
 
   /// Retrieve a diagnostic associated with the given code completion.
   ///
@@ -5581,16 +6065,18 @@
     ffi.Pointer<CXCodeCompleteResults> Results,
     int Index,
   ) {
-    return (_clang_codeCompleteGetDiagnostic ??=
-        _lookup<ffi.NativeFunction<_c_clang_codeCompleteGetDiagnostic>>(
-                'clang_codeCompleteGetDiagnostic')
-            .asFunction<_dart_clang_codeCompleteGetDiagnostic>())(
+    return _clang_codeCompleteGetDiagnostic(
       Results,
       Index,
     );
   }
 
-  _dart_clang_codeCompleteGetDiagnostic? _clang_codeCompleteGetDiagnostic;
+  late final _clang_codeCompleteGetDiagnostic_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_codeCompleteGetDiagnostic>>(
+          'clang_codeCompleteGetDiagnostic');
+  late final _dart_clang_codeCompleteGetDiagnostic
+      _clang_codeCompleteGetDiagnostic = _clang_codeCompleteGetDiagnostic_ptr
+          .asFunction<_dart_clang_codeCompleteGetDiagnostic>();
 
   /// Determines what completions are appropriate for the context
   /// the given code completion.
@@ -5602,15 +6088,17 @@
   int clang_codeCompleteGetContexts(
     ffi.Pointer<CXCodeCompleteResults> Results,
   ) {
-    return (_clang_codeCompleteGetContexts ??=
-        _lookup<ffi.NativeFunction<_c_clang_codeCompleteGetContexts>>(
-                'clang_codeCompleteGetContexts')
-            .asFunction<_dart_clang_codeCompleteGetContexts>())(
+    return _clang_codeCompleteGetContexts(
       Results,
     );
   }
 
-  _dart_clang_codeCompleteGetContexts? _clang_codeCompleteGetContexts;
+  late final _clang_codeCompleteGetContexts_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_codeCompleteGetContexts>>(
+          'clang_codeCompleteGetContexts');
+  late final _dart_clang_codeCompleteGetContexts
+      _clang_codeCompleteGetContexts = _clang_codeCompleteGetContexts_ptr
+          .asFunction<_dart_clang_codeCompleteGetContexts>();
 
   /// Returns the cursor kind for the container for the current code
   /// completion context. The container is only guaranteed to be set for
@@ -5630,16 +6118,19 @@
     ffi.Pointer<CXCodeCompleteResults> Results,
     ffi.Pointer<ffi.Uint32> IsIncomplete,
   ) {
-    return (_clang_codeCompleteGetContainerKind ??=
-        _lookup<ffi.NativeFunction<_c_clang_codeCompleteGetContainerKind>>(
-                'clang_codeCompleteGetContainerKind')
-            .asFunction<_dart_clang_codeCompleteGetContainerKind>())(
+    return _clang_codeCompleteGetContainerKind(
       Results,
       IsIncomplete,
     );
   }
 
-  _dart_clang_codeCompleteGetContainerKind? _clang_codeCompleteGetContainerKind;
+  late final _clang_codeCompleteGetContainerKind_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_codeCompleteGetContainerKind>>(
+          'clang_codeCompleteGetContainerKind');
+  late final _dart_clang_codeCompleteGetContainerKind
+      _clang_codeCompleteGetContainerKind =
+      _clang_codeCompleteGetContainerKind_ptr
+          .asFunction<_dart_clang_codeCompleteGetContainerKind>();
 
   /// Returns the USR for the container for the current code completion
   /// context. If there is not a container for the current context, this
@@ -5651,15 +6142,18 @@
   CXString clang_codeCompleteGetContainerUSR(
     ffi.Pointer<CXCodeCompleteResults> Results,
   ) {
-    return (_clang_codeCompleteGetContainerUSR ??=
-        _lookup<ffi.NativeFunction<_c_clang_codeCompleteGetContainerUSR>>(
-                'clang_codeCompleteGetContainerUSR')
-            .asFunction<_dart_clang_codeCompleteGetContainerUSR>())(
+    return _clang_codeCompleteGetContainerUSR(
       Results,
     );
   }
 
-  _dart_clang_codeCompleteGetContainerUSR? _clang_codeCompleteGetContainerUSR;
+  late final _clang_codeCompleteGetContainerUSR_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_codeCompleteGetContainerUSR>>(
+          'clang_codeCompleteGetContainerUSR');
+  late final _dart_clang_codeCompleteGetContainerUSR
+      _clang_codeCompleteGetContainerUSR =
+      _clang_codeCompleteGetContainerUSR_ptr
+          .asFunction<_dart_clang_codeCompleteGetContainerUSR>();
 
   /// Returns the currently-entered selector for an Objective-C message
   /// send, formatted like "initWithFoo:bar:". Only guaranteed to return a
@@ -5673,26 +6167,30 @@
   CXString clang_codeCompleteGetObjCSelector(
     ffi.Pointer<CXCodeCompleteResults> Results,
   ) {
-    return (_clang_codeCompleteGetObjCSelector ??=
-        _lookup<ffi.NativeFunction<_c_clang_codeCompleteGetObjCSelector>>(
-                'clang_codeCompleteGetObjCSelector')
-            .asFunction<_dart_clang_codeCompleteGetObjCSelector>())(
+    return _clang_codeCompleteGetObjCSelector(
       Results,
     );
   }
 
-  _dart_clang_codeCompleteGetObjCSelector? _clang_codeCompleteGetObjCSelector;
+  late final _clang_codeCompleteGetObjCSelector_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_codeCompleteGetObjCSelector>>(
+          'clang_codeCompleteGetObjCSelector');
+  late final _dart_clang_codeCompleteGetObjCSelector
+      _clang_codeCompleteGetObjCSelector =
+      _clang_codeCompleteGetObjCSelector_ptr
+          .asFunction<_dart_clang_codeCompleteGetObjCSelector>();
 
   /// Return a version string, suitable for showing to a user, but not
   /// intended to be parsed (the format is not guaranteed to be stable).
   CXString clang_getClangVersion() {
-    return (_clang_getClangVersion ??=
-        _lookup<ffi.NativeFunction<_c_clang_getClangVersion>>(
-                'clang_getClangVersion')
-            .asFunction<_dart_clang_getClangVersion>())();
+    return _clang_getClangVersion();
   }
 
-  _dart_clang_getClangVersion? _clang_getClangVersion;
+  late final _clang_getClangVersion_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_getClangVersion>>(
+          'clang_getClangVersion');
+  late final _dart_clang_getClangVersion _clang_getClangVersion =
+      _clang_getClangVersion_ptr.asFunction<_dart_clang_getClangVersion>();
 
   /// Enable/disable crash recovery.
   ///
@@ -5701,15 +6199,17 @@
   void clang_toggleCrashRecovery(
     int isEnabled,
   ) {
-    return (_clang_toggleCrashRecovery ??=
-        _lookup<ffi.NativeFunction<_c_clang_toggleCrashRecovery>>(
-                'clang_toggleCrashRecovery')
-            .asFunction<_dart_clang_toggleCrashRecovery>())(
+    return _clang_toggleCrashRecovery(
       isEnabled,
     );
   }
 
-  _dart_clang_toggleCrashRecovery? _clang_toggleCrashRecovery;
+  late final _clang_toggleCrashRecovery_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_toggleCrashRecovery>>(
+          'clang_toggleCrashRecovery');
+  late final _dart_clang_toggleCrashRecovery _clang_toggleCrashRecovery =
+      _clang_toggleCrashRecovery_ptr
+          .asFunction<_dart_clang_toggleCrashRecovery>();
 
   /// Visit the set of preprocessor inclusions in a translation unit.
   /// The visitor function is called with the provided data for every included
@@ -5720,17 +6220,18 @@
     ffi.Pointer<ffi.NativeFunction<CXInclusionVisitor>> visitor,
     ffi.Pointer<ffi.Void> client_data,
   ) {
-    return (_clang_getInclusions ??=
-        _lookup<ffi.NativeFunction<_c_clang_getInclusions>>(
-                'clang_getInclusions')
-            .asFunction<_dart_clang_getInclusions>())(
+    return _clang_getInclusions(
       tu,
       visitor,
       client_data,
     );
   }
 
-  _dart_clang_getInclusions? _clang_getInclusions;
+  late final _clang_getInclusions_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_getInclusions>>(
+          'clang_getInclusions');
+  late final _dart_clang_getInclusions _clang_getInclusions =
+      _clang_getInclusions_ptr.asFunction<_dart_clang_getInclusions>();
 
   /// If cursor is a statement declaration tries to evaluate the
   /// statement and if its variable, tries to evaluate its initializer,
@@ -5738,44 +6239,49 @@
   ffi.Pointer<ffi.Void> clang_Cursor_Evaluate(
     CXCursor C,
   ) {
-    return (_clang_Cursor_Evaluate ??=
-        _lookup<ffi.NativeFunction<_c_clang_Cursor_Evaluate>>(
-                'clang_Cursor_Evaluate')
-            .asFunction<_dart_clang_Cursor_Evaluate>())(
+    return _clang_Cursor_Evaluate(
       C,
     );
   }
 
-  _dart_clang_Cursor_Evaluate? _clang_Cursor_Evaluate;
+  late final _clang_Cursor_Evaluate_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_Cursor_Evaluate>>(
+          'clang_Cursor_Evaluate');
+  late final _dart_clang_Cursor_Evaluate _clang_Cursor_Evaluate =
+      _clang_Cursor_Evaluate_ptr.asFunction<_dart_clang_Cursor_Evaluate>();
 
   /// Returns the kind of the evaluated result.
   int clang_EvalResult_getKind(
     ffi.Pointer<ffi.Void> E,
   ) {
-    return (_clang_EvalResult_getKind ??=
-        _lookup<ffi.NativeFunction<_c_clang_EvalResult_getKind>>(
-                'clang_EvalResult_getKind')
-            .asFunction<_dart_clang_EvalResult_getKind>())(
+    return _clang_EvalResult_getKind(
       E,
     );
   }
 
-  _dart_clang_EvalResult_getKind? _clang_EvalResult_getKind;
+  late final _clang_EvalResult_getKind_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_EvalResult_getKind>>(
+          'clang_EvalResult_getKind');
+  late final _dart_clang_EvalResult_getKind _clang_EvalResult_getKind =
+      _clang_EvalResult_getKind_ptr
+          .asFunction<_dart_clang_EvalResult_getKind>();
 
   /// Returns the evaluation result as integer if the
   /// kind is Int.
   int clang_EvalResult_getAsInt(
     ffi.Pointer<ffi.Void> E,
   ) {
-    return (_clang_EvalResult_getAsInt ??=
-        _lookup<ffi.NativeFunction<_c_clang_EvalResult_getAsInt>>(
-                'clang_EvalResult_getAsInt')
-            .asFunction<_dart_clang_EvalResult_getAsInt>())(
+    return _clang_EvalResult_getAsInt(
       E,
     );
   }
 
-  _dart_clang_EvalResult_getAsInt? _clang_EvalResult_getAsInt;
+  late final _clang_EvalResult_getAsInt_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_EvalResult_getAsInt>>(
+          'clang_EvalResult_getAsInt');
+  late final _dart_clang_EvalResult_getAsInt _clang_EvalResult_getAsInt =
+      _clang_EvalResult_getAsInt_ptr
+          .asFunction<_dart_clang_EvalResult_getAsInt>();
 
   /// Returns the evaluation result as a long long integer if the
   /// kind is Int. This prevents overflows that may happen if the result is
@@ -5783,60 +6289,68 @@
   int clang_EvalResult_getAsLongLong(
     ffi.Pointer<ffi.Void> E,
   ) {
-    return (_clang_EvalResult_getAsLongLong ??=
-        _lookup<ffi.NativeFunction<_c_clang_EvalResult_getAsLongLong>>(
-                'clang_EvalResult_getAsLongLong')
-            .asFunction<_dart_clang_EvalResult_getAsLongLong>())(
+    return _clang_EvalResult_getAsLongLong(
       E,
     );
   }
 
-  _dart_clang_EvalResult_getAsLongLong? _clang_EvalResult_getAsLongLong;
+  late final _clang_EvalResult_getAsLongLong_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_EvalResult_getAsLongLong>>(
+          'clang_EvalResult_getAsLongLong');
+  late final _dart_clang_EvalResult_getAsLongLong
+      _clang_EvalResult_getAsLongLong = _clang_EvalResult_getAsLongLong_ptr
+          .asFunction<_dart_clang_EvalResult_getAsLongLong>();
 
   /// Returns a non-zero value if the kind is Int and the evaluation
   /// result resulted in an unsigned integer.
   int clang_EvalResult_isUnsignedInt(
     ffi.Pointer<ffi.Void> E,
   ) {
-    return (_clang_EvalResult_isUnsignedInt ??=
-        _lookup<ffi.NativeFunction<_c_clang_EvalResult_isUnsignedInt>>(
-                'clang_EvalResult_isUnsignedInt')
-            .asFunction<_dart_clang_EvalResult_isUnsignedInt>())(
+    return _clang_EvalResult_isUnsignedInt(
       E,
     );
   }
 
-  _dart_clang_EvalResult_isUnsignedInt? _clang_EvalResult_isUnsignedInt;
+  late final _clang_EvalResult_isUnsignedInt_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_EvalResult_isUnsignedInt>>(
+          'clang_EvalResult_isUnsignedInt');
+  late final _dart_clang_EvalResult_isUnsignedInt
+      _clang_EvalResult_isUnsignedInt = _clang_EvalResult_isUnsignedInt_ptr
+          .asFunction<_dart_clang_EvalResult_isUnsignedInt>();
 
   /// Returns the evaluation result as an unsigned integer if
   /// the kind is Int and clang_EvalResult_isUnsignedInt is non-zero.
   int clang_EvalResult_getAsUnsigned(
     ffi.Pointer<ffi.Void> E,
   ) {
-    return (_clang_EvalResult_getAsUnsigned ??=
-        _lookup<ffi.NativeFunction<_c_clang_EvalResult_getAsUnsigned>>(
-                'clang_EvalResult_getAsUnsigned')
-            .asFunction<_dart_clang_EvalResult_getAsUnsigned>())(
+    return _clang_EvalResult_getAsUnsigned(
       E,
     );
   }
 
-  _dart_clang_EvalResult_getAsUnsigned? _clang_EvalResult_getAsUnsigned;
+  late final _clang_EvalResult_getAsUnsigned_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_EvalResult_getAsUnsigned>>(
+          'clang_EvalResult_getAsUnsigned');
+  late final _dart_clang_EvalResult_getAsUnsigned
+      _clang_EvalResult_getAsUnsigned = _clang_EvalResult_getAsUnsigned_ptr
+          .asFunction<_dart_clang_EvalResult_getAsUnsigned>();
 
   /// Returns the evaluation result as double if the
   /// kind is double.
   double clang_EvalResult_getAsDouble(
     ffi.Pointer<ffi.Void> E,
   ) {
-    return (_clang_EvalResult_getAsDouble ??=
-        _lookup<ffi.NativeFunction<_c_clang_EvalResult_getAsDouble>>(
-                'clang_EvalResult_getAsDouble')
-            .asFunction<_dart_clang_EvalResult_getAsDouble>())(
+    return _clang_EvalResult_getAsDouble(
       E,
     );
   }
 
-  _dart_clang_EvalResult_getAsDouble? _clang_EvalResult_getAsDouble;
+  late final _clang_EvalResult_getAsDouble_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_EvalResult_getAsDouble>>(
+          'clang_EvalResult_getAsDouble');
+  late final _dart_clang_EvalResult_getAsDouble _clang_EvalResult_getAsDouble =
+      _clang_EvalResult_getAsDouble_ptr
+          .asFunction<_dart_clang_EvalResult_getAsDouble>();
 
   /// Returns the evaluation result as a constant string if the
   /// kind is other than Int or float. User must not free this pointer,
@@ -5845,29 +6359,33 @@
   ffi.Pointer<ffi.Int8> clang_EvalResult_getAsStr(
     ffi.Pointer<ffi.Void> E,
   ) {
-    return (_clang_EvalResult_getAsStr ??=
-        _lookup<ffi.NativeFunction<_c_clang_EvalResult_getAsStr>>(
-                'clang_EvalResult_getAsStr')
-            .asFunction<_dart_clang_EvalResult_getAsStr>())(
+    return _clang_EvalResult_getAsStr(
       E,
     );
   }
 
-  _dart_clang_EvalResult_getAsStr? _clang_EvalResult_getAsStr;
+  late final _clang_EvalResult_getAsStr_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_EvalResult_getAsStr>>(
+          'clang_EvalResult_getAsStr');
+  late final _dart_clang_EvalResult_getAsStr _clang_EvalResult_getAsStr =
+      _clang_EvalResult_getAsStr_ptr
+          .asFunction<_dart_clang_EvalResult_getAsStr>();
 
   /// Disposes the created Eval memory.
   void clang_EvalResult_dispose(
     ffi.Pointer<ffi.Void> E,
   ) {
-    return (_clang_EvalResult_dispose ??=
-        _lookup<ffi.NativeFunction<_c_clang_EvalResult_dispose>>(
-                'clang_EvalResult_dispose')
-            .asFunction<_dart_clang_EvalResult_dispose>())(
+    return _clang_EvalResult_dispose(
       E,
     );
   }
 
-  _dart_clang_EvalResult_dispose? _clang_EvalResult_dispose;
+  late final _clang_EvalResult_dispose_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_EvalResult_dispose>>(
+          'clang_EvalResult_dispose');
+  late final _dart_clang_EvalResult_dispose _clang_EvalResult_dispose =
+      _clang_EvalResult_dispose_ptr
+          .asFunction<_dart_clang_EvalResult_dispose>();
 
   /// Retrieve a remapping.
   ///
@@ -5878,15 +6396,16 @@
   ffi.Pointer<ffi.Void> clang_getRemappings(
     ffi.Pointer<ffi.Int8> path,
   ) {
-    return (_clang_getRemappings ??=
-        _lookup<ffi.NativeFunction<_c_clang_getRemappings>>(
-                'clang_getRemappings')
-            .asFunction<_dart_clang_getRemappings>())(
+    return _clang_getRemappings(
       path,
     );
   }
 
-  _dart_clang_getRemappings? _clang_getRemappings;
+  late final _clang_getRemappings_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_getRemappings>>(
+          'clang_getRemappings');
+  late final _dart_clang_getRemappings _clang_getRemappings =
+      _clang_getRemappings_ptr.asFunction<_dart_clang_getRemappings>();
 
   /// Retrieve a remapping.
   ///
@@ -5900,30 +6419,33 @@
     ffi.Pointer<ffi.Pointer<ffi.Int8>> filePaths,
     int numFiles,
   ) {
-    return (_clang_getRemappingsFromFileList ??=
-        _lookup<ffi.NativeFunction<_c_clang_getRemappingsFromFileList>>(
-                'clang_getRemappingsFromFileList')
-            .asFunction<_dart_clang_getRemappingsFromFileList>())(
+    return _clang_getRemappingsFromFileList(
       filePaths,
       numFiles,
     );
   }
 
-  _dart_clang_getRemappingsFromFileList? _clang_getRemappingsFromFileList;
+  late final _clang_getRemappingsFromFileList_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_getRemappingsFromFileList>>(
+          'clang_getRemappingsFromFileList');
+  late final _dart_clang_getRemappingsFromFileList
+      _clang_getRemappingsFromFileList = _clang_getRemappingsFromFileList_ptr
+          .asFunction<_dart_clang_getRemappingsFromFileList>();
 
   /// Determine the number of remappings.
   int clang_remap_getNumFiles(
     ffi.Pointer<ffi.Void> arg0,
   ) {
-    return (_clang_remap_getNumFiles ??=
-        _lookup<ffi.NativeFunction<_c_clang_remap_getNumFiles>>(
-                'clang_remap_getNumFiles')
-            .asFunction<_dart_clang_remap_getNumFiles>())(
+    return _clang_remap_getNumFiles(
       arg0,
     );
   }
 
-  _dart_clang_remap_getNumFiles? _clang_remap_getNumFiles;
+  late final _clang_remap_getNumFiles_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_remap_getNumFiles>>(
+          'clang_remap_getNumFiles');
+  late final _dart_clang_remap_getNumFiles _clang_remap_getNumFiles =
+      _clang_remap_getNumFiles_ptr.asFunction<_dart_clang_remap_getNumFiles>();
 
   /// Get the original and the associated filename from the remapping.
   ///
@@ -5937,10 +6459,7 @@
     ffi.Pointer<CXString> original,
     ffi.Pointer<CXString> transformed,
   ) {
-    return (_clang_remap_getFilenames ??=
-        _lookup<ffi.NativeFunction<_c_clang_remap_getFilenames>>(
-                'clang_remap_getFilenames')
-            .asFunction<_dart_clang_remap_getFilenames>())(
+    return _clang_remap_getFilenames(
       arg0,
       index,
       original,
@@ -5948,21 +6467,27 @@
     );
   }
 
-  _dart_clang_remap_getFilenames? _clang_remap_getFilenames;
+  late final _clang_remap_getFilenames_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_remap_getFilenames>>(
+          'clang_remap_getFilenames');
+  late final _dart_clang_remap_getFilenames _clang_remap_getFilenames =
+      _clang_remap_getFilenames_ptr
+          .asFunction<_dart_clang_remap_getFilenames>();
 
   /// Dispose the remapping.
   void clang_remap_dispose(
     ffi.Pointer<ffi.Void> arg0,
   ) {
-    return (_clang_remap_dispose ??=
-        _lookup<ffi.NativeFunction<_c_clang_remap_dispose>>(
-                'clang_remap_dispose')
-            .asFunction<_dart_clang_remap_dispose>())(
+    return _clang_remap_dispose(
       arg0,
     );
   }
 
-  _dart_clang_remap_dispose? _clang_remap_dispose;
+  late final _clang_remap_dispose_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_remap_dispose>>(
+          'clang_remap_dispose');
+  late final _dart_clang_remap_dispose _clang_remap_dispose =
+      _clang_remap_dispose_ptr.asFunction<_dart_clang_remap_dispose>();
 
   /// Find references of a declaration in a specific file.
   ///
@@ -5981,17 +6506,19 @@
     ffi.Pointer<ffi.Void> file,
     CXCursorAndRangeVisitor visitor,
   ) {
-    return (_clang_findReferencesInFile ??=
-        _lookup<ffi.NativeFunction<_c_clang_findReferencesInFile>>(
-                'clang_findReferencesInFile')
-            .asFunction<_dart_clang_findReferencesInFile>())(
+    return _clang_findReferencesInFile(
       cursor,
       file,
       visitor,
     );
   }
 
-  _dart_clang_findReferencesInFile? _clang_findReferencesInFile;
+  late final _clang_findReferencesInFile_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_findReferencesInFile>>(
+          'clang_findReferencesInFile');
+  late final _dart_clang_findReferencesInFile _clang_findReferencesInFile =
+      _clang_findReferencesInFile_ptr
+          .asFunction<_dart_clang_findReferencesInFile>();
 
   /// Find #import/#include directives in a specific file.
   ///
@@ -6008,146 +6535,165 @@
     ffi.Pointer<ffi.Void> file,
     CXCursorAndRangeVisitor visitor,
   ) {
-    return (_clang_findIncludesInFile ??=
-        _lookup<ffi.NativeFunction<_c_clang_findIncludesInFile>>(
-                'clang_findIncludesInFile')
-            .asFunction<_dart_clang_findIncludesInFile>())(
+    return _clang_findIncludesInFile(
       TU,
       file,
       visitor,
     );
   }
 
-  _dart_clang_findIncludesInFile? _clang_findIncludesInFile;
+  late final _clang_findIncludesInFile_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_findIncludesInFile>>(
+          'clang_findIncludesInFile');
+  late final _dart_clang_findIncludesInFile _clang_findIncludesInFile =
+      _clang_findIncludesInFile_ptr
+          .asFunction<_dart_clang_findIncludesInFile>();
 
   int clang_index_isEntityObjCContainerKind(
     int arg0,
   ) {
-    return (_clang_index_isEntityObjCContainerKind ??=
-        _lookup<ffi.NativeFunction<_c_clang_index_isEntityObjCContainerKind>>(
-                'clang_index_isEntityObjCContainerKind')
-            .asFunction<_dart_clang_index_isEntityObjCContainerKind>())(
+    return _clang_index_isEntityObjCContainerKind(
       arg0,
     );
   }
 
-  _dart_clang_index_isEntityObjCContainerKind?
-      _clang_index_isEntityObjCContainerKind;
+  late final _clang_index_isEntityObjCContainerKind_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_index_isEntityObjCContainerKind>>(
+          'clang_index_isEntityObjCContainerKind');
+  late final _dart_clang_index_isEntityObjCContainerKind
+      _clang_index_isEntityObjCContainerKind =
+      _clang_index_isEntityObjCContainerKind_ptr
+          .asFunction<_dart_clang_index_isEntityObjCContainerKind>();
 
   ffi.Pointer<CXIdxObjCContainerDeclInfo> clang_index_getObjCContainerDeclInfo(
     ffi.Pointer<CXIdxDeclInfo> arg0,
   ) {
-    return (_clang_index_getObjCContainerDeclInfo ??=
-        _lookup<ffi.NativeFunction<_c_clang_index_getObjCContainerDeclInfo>>(
-                'clang_index_getObjCContainerDeclInfo')
-            .asFunction<_dart_clang_index_getObjCContainerDeclInfo>())(
+    return _clang_index_getObjCContainerDeclInfo(
       arg0,
     );
   }
 
-  _dart_clang_index_getObjCContainerDeclInfo?
-      _clang_index_getObjCContainerDeclInfo;
+  late final _clang_index_getObjCContainerDeclInfo_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_index_getObjCContainerDeclInfo>>(
+          'clang_index_getObjCContainerDeclInfo');
+  late final _dart_clang_index_getObjCContainerDeclInfo
+      _clang_index_getObjCContainerDeclInfo =
+      _clang_index_getObjCContainerDeclInfo_ptr
+          .asFunction<_dart_clang_index_getObjCContainerDeclInfo>();
 
   ffi.Pointer<CXIdxObjCInterfaceDeclInfo> clang_index_getObjCInterfaceDeclInfo(
     ffi.Pointer<CXIdxDeclInfo> arg0,
   ) {
-    return (_clang_index_getObjCInterfaceDeclInfo ??=
-        _lookup<ffi.NativeFunction<_c_clang_index_getObjCInterfaceDeclInfo>>(
-                'clang_index_getObjCInterfaceDeclInfo')
-            .asFunction<_dart_clang_index_getObjCInterfaceDeclInfo>())(
+    return _clang_index_getObjCInterfaceDeclInfo(
       arg0,
     );
   }
 
-  _dart_clang_index_getObjCInterfaceDeclInfo?
-      _clang_index_getObjCInterfaceDeclInfo;
+  late final _clang_index_getObjCInterfaceDeclInfo_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_index_getObjCInterfaceDeclInfo>>(
+          'clang_index_getObjCInterfaceDeclInfo');
+  late final _dart_clang_index_getObjCInterfaceDeclInfo
+      _clang_index_getObjCInterfaceDeclInfo =
+      _clang_index_getObjCInterfaceDeclInfo_ptr
+          .asFunction<_dart_clang_index_getObjCInterfaceDeclInfo>();
 
   ffi.Pointer<CXIdxObjCCategoryDeclInfo> clang_index_getObjCCategoryDeclInfo(
     ffi.Pointer<CXIdxDeclInfo> arg0,
   ) {
-    return (_clang_index_getObjCCategoryDeclInfo ??=
-        _lookup<ffi.NativeFunction<_c_clang_index_getObjCCategoryDeclInfo>>(
-                'clang_index_getObjCCategoryDeclInfo')
-            .asFunction<_dart_clang_index_getObjCCategoryDeclInfo>())(
+    return _clang_index_getObjCCategoryDeclInfo(
       arg0,
     );
   }
 
-  _dart_clang_index_getObjCCategoryDeclInfo?
-      _clang_index_getObjCCategoryDeclInfo;
+  late final _clang_index_getObjCCategoryDeclInfo_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_index_getObjCCategoryDeclInfo>>(
+          'clang_index_getObjCCategoryDeclInfo');
+  late final _dart_clang_index_getObjCCategoryDeclInfo
+      _clang_index_getObjCCategoryDeclInfo =
+      _clang_index_getObjCCategoryDeclInfo_ptr
+          .asFunction<_dart_clang_index_getObjCCategoryDeclInfo>();
 
   ffi.Pointer<CXIdxObjCProtocolRefListInfo>
       clang_index_getObjCProtocolRefListInfo(
     ffi.Pointer<CXIdxDeclInfo> arg0,
   ) {
-    return (_clang_index_getObjCProtocolRefListInfo ??=
-        _lookup<ffi.NativeFunction<_c_clang_index_getObjCProtocolRefListInfo>>(
-                'clang_index_getObjCProtocolRefListInfo')
-            .asFunction<_dart_clang_index_getObjCProtocolRefListInfo>())(
+    return _clang_index_getObjCProtocolRefListInfo(
       arg0,
     );
   }
 
-  _dart_clang_index_getObjCProtocolRefListInfo?
-      _clang_index_getObjCProtocolRefListInfo;
+  late final _clang_index_getObjCProtocolRefListInfo_ptr = _lookup<
+          ffi.NativeFunction<Native_clang_index_getObjCProtocolRefListInfo>>(
+      'clang_index_getObjCProtocolRefListInfo');
+  late final _dart_clang_index_getObjCProtocolRefListInfo
+      _clang_index_getObjCProtocolRefListInfo =
+      _clang_index_getObjCProtocolRefListInfo_ptr
+          .asFunction<_dart_clang_index_getObjCProtocolRefListInfo>();
 
   ffi.Pointer<CXIdxObjCPropertyDeclInfo> clang_index_getObjCPropertyDeclInfo(
     ffi.Pointer<CXIdxDeclInfo> arg0,
   ) {
-    return (_clang_index_getObjCPropertyDeclInfo ??=
-        _lookup<ffi.NativeFunction<_c_clang_index_getObjCPropertyDeclInfo>>(
-                'clang_index_getObjCPropertyDeclInfo')
-            .asFunction<_dart_clang_index_getObjCPropertyDeclInfo>())(
+    return _clang_index_getObjCPropertyDeclInfo(
       arg0,
     );
   }
 
-  _dart_clang_index_getObjCPropertyDeclInfo?
-      _clang_index_getObjCPropertyDeclInfo;
+  late final _clang_index_getObjCPropertyDeclInfo_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_index_getObjCPropertyDeclInfo>>(
+          'clang_index_getObjCPropertyDeclInfo');
+  late final _dart_clang_index_getObjCPropertyDeclInfo
+      _clang_index_getObjCPropertyDeclInfo =
+      _clang_index_getObjCPropertyDeclInfo_ptr
+          .asFunction<_dart_clang_index_getObjCPropertyDeclInfo>();
 
   ffi.Pointer<CXIdxIBOutletCollectionAttrInfo>
       clang_index_getIBOutletCollectionAttrInfo(
     ffi.Pointer<CXIdxAttrInfo> arg0,
   ) {
-    return (_clang_index_getIBOutletCollectionAttrInfo ??= _lookup<
-                ffi.NativeFunction<
-                    _c_clang_index_getIBOutletCollectionAttrInfo>>(
-            'clang_index_getIBOutletCollectionAttrInfo')
-        .asFunction<_dart_clang_index_getIBOutletCollectionAttrInfo>())(
+    return _clang_index_getIBOutletCollectionAttrInfo(
       arg0,
     );
   }
 
-  _dart_clang_index_getIBOutletCollectionAttrInfo?
-      _clang_index_getIBOutletCollectionAttrInfo;
+  late final _clang_index_getIBOutletCollectionAttrInfo_ptr = _lookup<
+          ffi.NativeFunction<Native_clang_index_getIBOutletCollectionAttrInfo>>(
+      'clang_index_getIBOutletCollectionAttrInfo');
+  late final _dart_clang_index_getIBOutletCollectionAttrInfo
+      _clang_index_getIBOutletCollectionAttrInfo =
+      _clang_index_getIBOutletCollectionAttrInfo_ptr
+          .asFunction<_dart_clang_index_getIBOutletCollectionAttrInfo>();
 
   ffi.Pointer<CXIdxCXXClassDeclInfo> clang_index_getCXXClassDeclInfo(
     ffi.Pointer<CXIdxDeclInfo> arg0,
   ) {
-    return (_clang_index_getCXXClassDeclInfo ??=
-        _lookup<ffi.NativeFunction<_c_clang_index_getCXXClassDeclInfo>>(
-                'clang_index_getCXXClassDeclInfo')
-            .asFunction<_dart_clang_index_getCXXClassDeclInfo>())(
+    return _clang_index_getCXXClassDeclInfo(
       arg0,
     );
   }
 
-  _dart_clang_index_getCXXClassDeclInfo? _clang_index_getCXXClassDeclInfo;
+  late final _clang_index_getCXXClassDeclInfo_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_index_getCXXClassDeclInfo>>(
+          'clang_index_getCXXClassDeclInfo');
+  late final _dart_clang_index_getCXXClassDeclInfo
+      _clang_index_getCXXClassDeclInfo = _clang_index_getCXXClassDeclInfo_ptr
+          .asFunction<_dart_clang_index_getCXXClassDeclInfo>();
 
   /// For retrieving a custom CXIdxClientContainer attached to a
   /// container.
   ffi.Pointer<ffi.Void> clang_index_getClientContainer(
     ffi.Pointer<CXIdxContainerInfo> arg0,
   ) {
-    return (_clang_index_getClientContainer ??=
-        _lookup<ffi.NativeFunction<_c_clang_index_getClientContainer>>(
-                'clang_index_getClientContainer')
-            .asFunction<_dart_clang_index_getClientContainer>())(
+    return _clang_index_getClientContainer(
       arg0,
     );
   }
 
-  _dart_clang_index_getClientContainer? _clang_index_getClientContainer;
+  late final _clang_index_getClientContainer_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_index_getClientContainer>>(
+          'clang_index_getClientContainer');
+  late final _dart_clang_index_getClientContainer
+      _clang_index_getClientContainer = _clang_index_getClientContainer_ptr
+          .asFunction<_dart_clang_index_getClientContainer>();
 
   /// For setting a custom CXIdxClientContainer attached to a
   /// container.
@@ -6155,46 +6701,52 @@
     ffi.Pointer<CXIdxContainerInfo> arg0,
     ffi.Pointer<ffi.Void> arg1,
   ) {
-    return (_clang_index_setClientContainer ??=
-        _lookup<ffi.NativeFunction<_c_clang_index_setClientContainer>>(
-                'clang_index_setClientContainer')
-            .asFunction<_dart_clang_index_setClientContainer>())(
+    return _clang_index_setClientContainer(
       arg0,
       arg1,
     );
   }
 
-  _dart_clang_index_setClientContainer? _clang_index_setClientContainer;
+  late final _clang_index_setClientContainer_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_index_setClientContainer>>(
+          'clang_index_setClientContainer');
+  late final _dart_clang_index_setClientContainer
+      _clang_index_setClientContainer = _clang_index_setClientContainer_ptr
+          .asFunction<_dart_clang_index_setClientContainer>();
 
   /// For retrieving a custom CXIdxClientEntity attached to an entity.
   ffi.Pointer<ffi.Void> clang_index_getClientEntity(
     ffi.Pointer<CXIdxEntityInfo> arg0,
   ) {
-    return (_clang_index_getClientEntity ??=
-        _lookup<ffi.NativeFunction<_c_clang_index_getClientEntity>>(
-                'clang_index_getClientEntity')
-            .asFunction<_dart_clang_index_getClientEntity>())(
+    return _clang_index_getClientEntity(
       arg0,
     );
   }
 
-  _dart_clang_index_getClientEntity? _clang_index_getClientEntity;
+  late final _clang_index_getClientEntity_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_index_getClientEntity>>(
+          'clang_index_getClientEntity');
+  late final _dart_clang_index_getClientEntity _clang_index_getClientEntity =
+      _clang_index_getClientEntity_ptr
+          .asFunction<_dart_clang_index_getClientEntity>();
 
   /// For setting a custom CXIdxClientEntity attached to an entity.
   void clang_index_setClientEntity(
     ffi.Pointer<CXIdxEntityInfo> arg0,
     ffi.Pointer<ffi.Void> arg1,
   ) {
-    return (_clang_index_setClientEntity ??=
-        _lookup<ffi.NativeFunction<_c_clang_index_setClientEntity>>(
-                'clang_index_setClientEntity')
-            .asFunction<_dart_clang_index_setClientEntity>())(
+    return _clang_index_setClientEntity(
       arg0,
       arg1,
     );
   }
 
-  _dart_clang_index_setClientEntity? _clang_index_setClientEntity;
+  late final _clang_index_setClientEntity_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_index_setClientEntity>>(
+          'clang_index_setClientEntity');
+  late final _dart_clang_index_setClientEntity _clang_index_setClientEntity =
+      _clang_index_setClientEntity_ptr
+          .asFunction<_dart_clang_index_setClientEntity>();
 
   /// An indexing action/session, to be applied to one or multiple
   /// translation units.
@@ -6203,15 +6755,17 @@
   ffi.Pointer<ffi.Void> clang_IndexAction_create(
     ffi.Pointer<ffi.Void> CIdx,
   ) {
-    return (_clang_IndexAction_create ??=
-        _lookup<ffi.NativeFunction<_c_clang_IndexAction_create>>(
-                'clang_IndexAction_create')
-            .asFunction<_dart_clang_IndexAction_create>())(
+    return _clang_IndexAction_create(
       CIdx,
     );
   }
 
-  _dart_clang_IndexAction_create? _clang_IndexAction_create;
+  late final _clang_IndexAction_create_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_IndexAction_create>>(
+          'clang_IndexAction_create');
+  late final _dart_clang_IndexAction_create _clang_IndexAction_create =
+      _clang_IndexAction_create_ptr
+          .asFunction<_dart_clang_IndexAction_create>();
 
   /// Destroy the given index action.
   ///
@@ -6220,15 +6774,17 @@
   void clang_IndexAction_dispose(
     ffi.Pointer<ffi.Void> arg0,
   ) {
-    return (_clang_IndexAction_dispose ??=
-        _lookup<ffi.NativeFunction<_c_clang_IndexAction_dispose>>(
-                'clang_IndexAction_dispose')
-            .asFunction<_dart_clang_IndexAction_dispose>())(
+    return _clang_IndexAction_dispose(
       arg0,
     );
   }
 
-  _dart_clang_IndexAction_dispose? _clang_IndexAction_dispose;
+  late final _clang_IndexAction_dispose_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_IndexAction_dispose>>(
+          'clang_IndexAction_dispose');
+  late final _dart_clang_IndexAction_dispose _clang_IndexAction_dispose =
+      _clang_IndexAction_dispose_ptr
+          .asFunction<_dart_clang_IndexAction_dispose>();
 
   /// Index the given source file and the translation unit corresponding
   /// to that file via callbacks implemented through #IndexerCallbacks.
@@ -6267,10 +6823,7 @@
     ffi.Pointer<ffi.Pointer<CXTranslationUnitImpl>> out_TU,
     int TU_options,
   ) {
-    return (_clang_indexSourceFile ??=
-        _lookup<ffi.NativeFunction<_c_clang_indexSourceFile>>(
-                'clang_indexSourceFile')
-            .asFunction<_dart_clang_indexSourceFile>())(
+    return _clang_indexSourceFile(
       arg0,
       client_data,
       index_callbacks,
@@ -6286,7 +6839,11 @@
     );
   }
 
-  _dart_clang_indexSourceFile? _clang_indexSourceFile;
+  late final _clang_indexSourceFile_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_indexSourceFile>>(
+          'clang_indexSourceFile');
+  late final _dart_clang_indexSourceFile _clang_indexSourceFile =
+      _clang_indexSourceFile_ptr.asFunction<_dart_clang_indexSourceFile>();
 
   /// Same as clang_indexSourceFile but requires a full command line
   /// for \c command_line_args including argv[0]. This is useful if the standard
@@ -6305,10 +6862,7 @@
     ffi.Pointer<ffi.Pointer<CXTranslationUnitImpl>> out_TU,
     int TU_options,
   ) {
-    return (_clang_indexSourceFileFullArgv ??=
-        _lookup<ffi.NativeFunction<_c_clang_indexSourceFileFullArgv>>(
-                'clang_indexSourceFileFullArgv')
-            .asFunction<_dart_clang_indexSourceFileFullArgv>())(
+    return _clang_indexSourceFileFullArgv(
       arg0,
       client_data,
       index_callbacks,
@@ -6324,7 +6878,12 @@
     );
   }
 
-  _dart_clang_indexSourceFileFullArgv? _clang_indexSourceFileFullArgv;
+  late final _clang_indexSourceFileFullArgv_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_indexSourceFileFullArgv>>(
+          'clang_indexSourceFileFullArgv');
+  late final _dart_clang_indexSourceFileFullArgv
+      _clang_indexSourceFileFullArgv = _clang_indexSourceFileFullArgv_ptr
+          .asFunction<_dart_clang_indexSourceFileFullArgv>();
 
   /// Index the given translation unit via callbacks implemented through
   /// #IndexerCallbacks.
@@ -6348,10 +6907,7 @@
     int index_options,
     ffi.Pointer<CXTranslationUnitImpl> arg5,
   ) {
-    return (_clang_indexTranslationUnit ??=
-        _lookup<ffi.NativeFunction<_c_clang_indexTranslationUnit>>(
-                'clang_indexTranslationUnit')
-            .asFunction<_dart_clang_indexTranslationUnit>())(
+    return _clang_indexTranslationUnit(
       arg0,
       client_data,
       index_callbacks,
@@ -6361,7 +6917,12 @@
     );
   }
 
-  _dart_clang_indexTranslationUnit? _clang_indexTranslationUnit;
+  late final _clang_indexTranslationUnit_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_indexTranslationUnit>>(
+          'clang_indexTranslationUnit');
+  late final _dart_clang_indexTranslationUnit _clang_indexTranslationUnit =
+      _clang_indexTranslationUnit_ptr
+          .asFunction<_dart_clang_indexTranslationUnit>();
 
   /// Retrieve the CXIdxFile, file, line, column, and offset represented by
   /// the given CXIdxLoc.
@@ -6377,10 +6938,7 @@
     ffi.Pointer<ffi.Uint32> column,
     ffi.Pointer<ffi.Uint32> offset,
   ) {
-    return (_clang_indexLoc_getFileLocation ??=
-        _lookup<ffi.NativeFunction<_c_clang_indexLoc_getFileLocation>>(
-                'clang_indexLoc_getFileLocation')
-            .asFunction<_dart_clang_indexLoc_getFileLocation>())(
+    return _clang_indexLoc_getFileLocation(
       loc,
       indexFile,
       file,
@@ -6390,21 +6948,29 @@
     );
   }
 
-  _dart_clang_indexLoc_getFileLocation? _clang_indexLoc_getFileLocation;
+  late final _clang_indexLoc_getFileLocation_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_indexLoc_getFileLocation>>(
+          'clang_indexLoc_getFileLocation');
+  late final _dart_clang_indexLoc_getFileLocation
+      _clang_indexLoc_getFileLocation = _clang_indexLoc_getFileLocation_ptr
+          .asFunction<_dart_clang_indexLoc_getFileLocation>();
 
   /// Retrieve the CXSourceLocation represented by the given CXIdxLoc.
   CXSourceLocation clang_indexLoc_getCXSourceLocation(
     CXIdxLoc loc,
   ) {
-    return (_clang_indexLoc_getCXSourceLocation ??=
-        _lookup<ffi.NativeFunction<_c_clang_indexLoc_getCXSourceLocation>>(
-                'clang_indexLoc_getCXSourceLocation')
-            .asFunction<_dart_clang_indexLoc_getCXSourceLocation>())(
+    return _clang_indexLoc_getCXSourceLocation(
       loc,
     );
   }
 
-  _dart_clang_indexLoc_getCXSourceLocation? _clang_indexLoc_getCXSourceLocation;
+  late final _clang_indexLoc_getCXSourceLocation_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_indexLoc_getCXSourceLocation>>(
+          'clang_indexLoc_getCXSourceLocation');
+  late final _dart_clang_indexLoc_getCXSourceLocation
+      _clang_indexLoc_getCXSourceLocation =
+      _clang_indexLoc_getCXSourceLocation_ptr
+          .asFunction<_dart_clang_indexLoc_getCXSourceLocation>();
 
   /// Visit the fields of a particular type.
   ///
@@ -6428,17 +6994,849 @@
     ffi.Pointer<ffi.NativeFunction<CXFieldVisitor>> visitor,
     ffi.Pointer<ffi.Void> client_data,
   ) {
-    return (_clang_Type_visitFields ??=
-        _lookup<ffi.NativeFunction<_c_clang_Type_visitFields>>(
-                'clang_Type_visitFields')
-            .asFunction<_dart_clang_Type_visitFields>())(
+    return _clang_Type_visitFields(
       T,
       visitor,
       client_data,
     );
   }
 
-  _dart_clang_Type_visitFields? _clang_Type_visitFields;
+  late final _clang_Type_visitFields_ptr =
+      _lookup<ffi.NativeFunction<Native_clang_Type_visitFields>>(
+          'clang_Type_visitFields');
+  late final _dart_clang_Type_visitFields _clang_Type_visitFields =
+      _clang_Type_visitFields_ptr.asFunction<_dart_clang_Type_visitFields>();
+
+  late final addresses = _SymbolAddresses(this);
+}
+
+class _SymbolAddresses {
+  final LibClang _library;
+  _SymbolAddresses(this._library);
+  ffi.Pointer<ffi.NativeFunction<Native_clang_getCString>>
+      get clang_getCString => _library._clang_getCString_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_disposeString>>
+      get clang_disposeString => _library._clang_disposeString_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_disposeStringSet>>
+      get clang_disposeStringSet => _library._clang_disposeStringSet_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_createIndex>>
+      get clang_createIndex => _library._clang_createIndex_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_disposeIndex>>
+      get clang_disposeIndex => _library._clang_disposeIndex_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_CXIndex_setGlobalOptions>>
+      get clang_CXIndex_setGlobalOptions =>
+          _library._clang_CXIndex_setGlobalOptions_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_CXIndex_getGlobalOptions>>
+      get clang_CXIndex_getGlobalOptions =>
+          _library._clang_CXIndex_getGlobalOptions_ptr;
+  ffi.Pointer<
+          ffi.NativeFunction<
+              Native_clang_CXIndex_setInvocationEmissionPathOption>>
+      get clang_CXIndex_setInvocationEmissionPathOption =>
+          _library._clang_CXIndex_setInvocationEmissionPathOption_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_getFileName>>
+      get clang_getFileName => _library._clang_getFileName_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_getFileTime>>
+      get clang_getFileTime => _library._clang_getFileTime_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_getFileUniqueID>>
+      get clang_getFileUniqueID => _library._clang_getFileUniqueID_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_isFileMultipleIncludeGuarded>>
+      get clang_isFileMultipleIncludeGuarded =>
+          _library._clang_isFileMultipleIncludeGuarded_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_getFile>> get clang_getFile =>
+      _library._clang_getFile_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_getFileContents>>
+      get clang_getFileContents => _library._clang_getFileContents_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_File_isEqual>>
+      get clang_File_isEqual => _library._clang_File_isEqual_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_File_tryGetRealPathName>>
+      get clang_File_tryGetRealPathName =>
+          _library._clang_File_tryGetRealPathName_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_getNullLocation>>
+      get clang_getNullLocation => _library._clang_getNullLocation_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_equalLocations>>
+      get clang_equalLocations => _library._clang_equalLocations_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_getLocation>>
+      get clang_getLocation => _library._clang_getLocation_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_getLocationForOffset>>
+      get clang_getLocationForOffset =>
+          _library._clang_getLocationForOffset_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_Location_isInSystemHeader>>
+      get clang_Location_isInSystemHeader =>
+          _library._clang_Location_isInSystemHeader_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_Location_isFromMainFile>>
+      get clang_Location_isFromMainFile =>
+          _library._clang_Location_isFromMainFile_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_getNullRange>>
+      get clang_getNullRange => _library._clang_getNullRange_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_getRange>> get clang_getRange =>
+      _library._clang_getRange_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_equalRanges>>
+      get clang_equalRanges => _library._clang_equalRanges_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_Range_isNull>>
+      get clang_Range_isNull => _library._clang_Range_isNull_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_getExpansionLocation>>
+      get clang_getExpansionLocation =>
+          _library._clang_getExpansionLocation_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_getPresumedLocation>>
+      get clang_getPresumedLocation => _library._clang_getPresumedLocation_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_getInstantiationLocation>>
+      get clang_getInstantiationLocation =>
+          _library._clang_getInstantiationLocation_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_getSpellingLocation>>
+      get clang_getSpellingLocation => _library._clang_getSpellingLocation_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_getFileLocation>>
+      get clang_getFileLocation => _library._clang_getFileLocation_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_getRangeStart>>
+      get clang_getRangeStart => _library._clang_getRangeStart_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_getRangeEnd>>
+      get clang_getRangeEnd => _library._clang_getRangeEnd_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_getSkippedRanges>>
+      get clang_getSkippedRanges => _library._clang_getSkippedRanges_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_getAllSkippedRanges>>
+      get clang_getAllSkippedRanges => _library._clang_getAllSkippedRanges_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_disposeSourceRangeList>>
+      get clang_disposeSourceRangeList =>
+          _library._clang_disposeSourceRangeList_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_getNumDiagnosticsInSet>>
+      get clang_getNumDiagnosticsInSet =>
+          _library._clang_getNumDiagnosticsInSet_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_getDiagnosticInSet>>
+      get clang_getDiagnosticInSet => _library._clang_getDiagnosticInSet_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_loadDiagnostics>>
+      get clang_loadDiagnostics => _library._clang_loadDiagnostics_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_disposeDiagnosticSet>>
+      get clang_disposeDiagnosticSet =>
+          _library._clang_disposeDiagnosticSet_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_getChildDiagnostics>>
+      get clang_getChildDiagnostics => _library._clang_getChildDiagnostics_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_getNumDiagnostics>>
+      get clang_getNumDiagnostics => _library._clang_getNumDiagnostics_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_getDiagnostic>>
+      get clang_getDiagnostic => _library._clang_getDiagnostic_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_getDiagnosticSetFromTU>>
+      get clang_getDiagnosticSetFromTU =>
+          _library._clang_getDiagnosticSetFromTU_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_disposeDiagnostic>>
+      get clang_disposeDiagnostic => _library._clang_disposeDiagnostic_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_formatDiagnostic>>
+      get clang_formatDiagnostic => _library._clang_formatDiagnostic_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_defaultDiagnosticDisplayOptions>>
+      get clang_defaultDiagnosticDisplayOptions =>
+          _library._clang_defaultDiagnosticDisplayOptions_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_getDiagnosticSeverity>>
+      get clang_getDiagnosticSeverity =>
+          _library._clang_getDiagnosticSeverity_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_getDiagnosticLocation>>
+      get clang_getDiagnosticLocation =>
+          _library._clang_getDiagnosticLocation_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_getDiagnosticSpelling>>
+      get clang_getDiagnosticSpelling =>
+          _library._clang_getDiagnosticSpelling_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_getDiagnosticOption>>
+      get clang_getDiagnosticOption => _library._clang_getDiagnosticOption_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_getDiagnosticCategory>>
+      get clang_getDiagnosticCategory =>
+          _library._clang_getDiagnosticCategory_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_getDiagnosticCategoryName>>
+      get clang_getDiagnosticCategoryName =>
+          _library._clang_getDiagnosticCategoryName_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_getDiagnosticCategoryText>>
+      get clang_getDiagnosticCategoryText =>
+          _library._clang_getDiagnosticCategoryText_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_getDiagnosticNumRanges>>
+      get clang_getDiagnosticNumRanges =>
+          _library._clang_getDiagnosticNumRanges_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_getDiagnosticRange>>
+      get clang_getDiagnosticRange => _library._clang_getDiagnosticRange_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_getDiagnosticNumFixIts>>
+      get clang_getDiagnosticNumFixIts =>
+          _library._clang_getDiagnosticNumFixIts_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_getDiagnosticFixIt>>
+      get clang_getDiagnosticFixIt => _library._clang_getDiagnosticFixIt_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_getTranslationUnitSpelling>>
+      get clang_getTranslationUnitSpelling =>
+          _library._clang_getTranslationUnitSpelling_ptr;
+  ffi.Pointer<
+          ffi.NativeFunction<Native_clang_createTranslationUnitFromSourceFile>>
+      get clang_createTranslationUnitFromSourceFile =>
+          _library._clang_createTranslationUnitFromSourceFile_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_createTranslationUnit>>
+      get clang_createTranslationUnit =>
+          _library._clang_createTranslationUnit_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_createTranslationUnit2>>
+      get clang_createTranslationUnit2 =>
+          _library._clang_createTranslationUnit2_ptr;
+  ffi.Pointer<
+          ffi.NativeFunction<Native_clang_defaultEditingTranslationUnitOptions>>
+      get clang_defaultEditingTranslationUnitOptions =>
+          _library._clang_defaultEditingTranslationUnitOptions_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_parseTranslationUnit>>
+      get clang_parseTranslationUnit =>
+          _library._clang_parseTranslationUnit_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_parseTranslationUnit2>>
+      get clang_parseTranslationUnit2 =>
+          _library._clang_parseTranslationUnit2_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_parseTranslationUnit2FullArgv>>
+      get clang_parseTranslationUnit2FullArgv =>
+          _library._clang_parseTranslationUnit2FullArgv_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_defaultSaveOptions>>
+      get clang_defaultSaveOptions => _library._clang_defaultSaveOptions_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_saveTranslationUnit>>
+      get clang_saveTranslationUnit => _library._clang_saveTranslationUnit_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_suspendTranslationUnit>>
+      get clang_suspendTranslationUnit =>
+          _library._clang_suspendTranslationUnit_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_disposeTranslationUnit>>
+      get clang_disposeTranslationUnit =>
+          _library._clang_disposeTranslationUnit_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_defaultReparseOptions>>
+      get clang_defaultReparseOptions =>
+          _library._clang_defaultReparseOptions_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_reparseTranslationUnit>>
+      get clang_reparseTranslationUnit =>
+          _library._clang_reparseTranslationUnit_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_getTUResourceUsageName>>
+      get clang_getTUResourceUsageName =>
+          _library._clang_getTUResourceUsageName_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_getCXTUResourceUsage>>
+      get clang_getCXTUResourceUsage =>
+          _library._clang_getCXTUResourceUsage_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_disposeCXTUResourceUsage>>
+      get clang_disposeCXTUResourceUsage =>
+          _library._clang_disposeCXTUResourceUsage_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_getTranslationUnitTargetInfo>>
+      get clang_getTranslationUnitTargetInfo =>
+          _library._clang_getTranslationUnitTargetInfo_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_TargetInfo_dispose>>
+      get clang_TargetInfo_dispose => _library._clang_TargetInfo_dispose_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_TargetInfo_getTriple>>
+      get clang_TargetInfo_getTriple =>
+          _library._clang_TargetInfo_getTriple_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_TargetInfo_getPointerWidth>>
+      get clang_TargetInfo_getPointerWidth =>
+          _library._clang_TargetInfo_getPointerWidth_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_getNullCursor>>
+      get clang_getNullCursor => _library._clang_getNullCursor_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_getTranslationUnitCursor>>
+      get clang_getTranslationUnitCursor =>
+          _library._clang_getTranslationUnitCursor_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_equalCursors>>
+      get clang_equalCursors => _library._clang_equalCursors_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_Cursor_isNull>>
+      get clang_Cursor_isNull => _library._clang_Cursor_isNull_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_hashCursor>>
+      get clang_hashCursor => _library._clang_hashCursor_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_getCursorKind>>
+      get clang_getCursorKind => _library._clang_getCursorKind_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_isDeclaration>>
+      get clang_isDeclaration => _library._clang_isDeclaration_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_isInvalidDeclaration>>
+      get clang_isInvalidDeclaration =>
+          _library._clang_isInvalidDeclaration_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_isReference>>
+      get clang_isReference => _library._clang_isReference_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_isExpression>>
+      get clang_isExpression => _library._clang_isExpression_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_isStatement>>
+      get clang_isStatement => _library._clang_isStatement_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_isAttribute>>
+      get clang_isAttribute => _library._clang_isAttribute_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_Cursor_hasAttrs>>
+      get clang_Cursor_hasAttrs => _library._clang_Cursor_hasAttrs_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_isInvalid>> get clang_isInvalid =>
+      _library._clang_isInvalid_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_isTranslationUnit>>
+      get clang_isTranslationUnit => _library._clang_isTranslationUnit_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_isPreprocessing>>
+      get clang_isPreprocessing => _library._clang_isPreprocessing_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_isUnexposed>>
+      get clang_isUnexposed => _library._clang_isUnexposed_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_getCursorLinkage>>
+      get clang_getCursorLinkage => _library._clang_getCursorLinkage_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_getCursorVisibility>>
+      get clang_getCursorVisibility => _library._clang_getCursorVisibility_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_getCursorAvailability>>
+      get clang_getCursorAvailability =>
+          _library._clang_getCursorAvailability_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_getCursorPlatformAvailability>>
+      get clang_getCursorPlatformAvailability =>
+          _library._clang_getCursorPlatformAvailability_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_disposeCXPlatformAvailability>>
+      get clang_disposeCXPlatformAvailability =>
+          _library._clang_disposeCXPlatformAvailability_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_getCursorLanguage>>
+      get clang_getCursorLanguage => _library._clang_getCursorLanguage_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_getCursorTLSKind>>
+      get clang_getCursorTLSKind => _library._clang_getCursorTLSKind_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_Cursor_getTranslationUnit>>
+      get clang_Cursor_getTranslationUnit =>
+          _library._clang_Cursor_getTranslationUnit_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_createCXCursorSet>>
+      get clang_createCXCursorSet => _library._clang_createCXCursorSet_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_disposeCXCursorSet>>
+      get clang_disposeCXCursorSet => _library._clang_disposeCXCursorSet_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_CXCursorSet_contains>>
+      get clang_CXCursorSet_contains =>
+          _library._clang_CXCursorSet_contains_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_CXCursorSet_insert>>
+      get clang_CXCursorSet_insert => _library._clang_CXCursorSet_insert_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_getCursorSemanticParent>>
+      get clang_getCursorSemanticParent =>
+          _library._clang_getCursorSemanticParent_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_getCursorLexicalParent>>
+      get clang_getCursorLexicalParent =>
+          _library._clang_getCursorLexicalParent_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_getOverriddenCursors>>
+      get clang_getOverriddenCursors =>
+          _library._clang_getOverriddenCursors_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_disposeOverriddenCursors>>
+      get clang_disposeOverriddenCursors =>
+          _library._clang_disposeOverriddenCursors_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_getIncludedFile>>
+      get clang_getIncludedFile => _library._clang_getIncludedFile_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_getCursor>> get clang_getCursor =>
+      _library._clang_getCursor_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_getCursorLocation>>
+      get clang_getCursorLocation => _library._clang_getCursorLocation_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_getCursorExtent>>
+      get clang_getCursorExtent => _library._clang_getCursorExtent_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_getCursorType>>
+      get clang_getCursorType => _library._clang_getCursorType_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_getTypeSpelling>>
+      get clang_getTypeSpelling => _library._clang_getTypeSpelling_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_getTypedefDeclUnderlyingType>>
+      get clang_getTypedefDeclUnderlyingType =>
+          _library._clang_getTypedefDeclUnderlyingType_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_getEnumDeclIntegerType>>
+      get clang_getEnumDeclIntegerType =>
+          _library._clang_getEnumDeclIntegerType_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_getEnumConstantDeclValue>>
+      get clang_getEnumConstantDeclValue =>
+          _library._clang_getEnumConstantDeclValue_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_getEnumConstantDeclUnsignedValue>>
+      get clang_getEnumConstantDeclUnsignedValue =>
+          _library._clang_getEnumConstantDeclUnsignedValue_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_getFieldDeclBitWidth>>
+      get clang_getFieldDeclBitWidth =>
+          _library._clang_getFieldDeclBitWidth_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_Cursor_getNumArguments>>
+      get clang_Cursor_getNumArguments =>
+          _library._clang_Cursor_getNumArguments_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_Cursor_getArgument>>
+      get clang_Cursor_getArgument => _library._clang_Cursor_getArgument_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_Cursor_getNumTemplateArguments>>
+      get clang_Cursor_getNumTemplateArguments =>
+          _library._clang_Cursor_getNumTemplateArguments_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_Cursor_getTemplateArgumentKind>>
+      get clang_Cursor_getTemplateArgumentKind =>
+          _library._clang_Cursor_getTemplateArgumentKind_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_Cursor_getTemplateArgumentType>>
+      get clang_Cursor_getTemplateArgumentType =>
+          _library._clang_Cursor_getTemplateArgumentType_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_Cursor_getTemplateArgumentValue>>
+      get clang_Cursor_getTemplateArgumentValue =>
+          _library._clang_Cursor_getTemplateArgumentValue_ptr;
+  ffi.Pointer<
+          ffi.NativeFunction<
+              Native_clang_Cursor_getTemplateArgumentUnsignedValue>>
+      get clang_Cursor_getTemplateArgumentUnsignedValue =>
+          _library._clang_Cursor_getTemplateArgumentUnsignedValue_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_equalTypes>>
+      get clang_equalTypes => _library._clang_equalTypes_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_getCanonicalType>>
+      get clang_getCanonicalType => _library._clang_getCanonicalType_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_isConstQualifiedType>>
+      get clang_isConstQualifiedType =>
+          _library._clang_isConstQualifiedType_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_Cursor_isMacroFunctionLike>>
+      get clang_Cursor_isMacroFunctionLike =>
+          _library._clang_Cursor_isMacroFunctionLike_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_Cursor_isMacroBuiltin>>
+      get clang_Cursor_isMacroBuiltin =>
+          _library._clang_Cursor_isMacroBuiltin_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_Cursor_isFunctionInlined>>
+      get clang_Cursor_isFunctionInlined =>
+          _library._clang_Cursor_isFunctionInlined_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_isVolatileQualifiedType>>
+      get clang_isVolatileQualifiedType =>
+          _library._clang_isVolatileQualifiedType_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_isRestrictQualifiedType>>
+      get clang_isRestrictQualifiedType =>
+          _library._clang_isRestrictQualifiedType_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_getAddressSpace>>
+      get clang_getAddressSpace => _library._clang_getAddressSpace_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_getTypedefName>>
+      get clang_getTypedefName => _library._clang_getTypedefName_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_getPointeeType>>
+      get clang_getPointeeType => _library._clang_getPointeeType_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_getTypeDeclaration>>
+      get clang_getTypeDeclaration => _library._clang_getTypeDeclaration_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_getDeclObjCTypeEncoding>>
+      get clang_getDeclObjCTypeEncoding =>
+          _library._clang_getDeclObjCTypeEncoding_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_Type_getObjCEncoding>>
+      get clang_Type_getObjCEncoding =>
+          _library._clang_Type_getObjCEncoding_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_getTypeKindSpelling>>
+      get clang_getTypeKindSpelling => _library._clang_getTypeKindSpelling_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_getFunctionTypeCallingConv>>
+      get clang_getFunctionTypeCallingConv =>
+          _library._clang_getFunctionTypeCallingConv_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_getResultType>>
+      get clang_getResultType => _library._clang_getResultType_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_getExceptionSpecificationType>>
+      get clang_getExceptionSpecificationType =>
+          _library._clang_getExceptionSpecificationType_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_getNumArgTypes>>
+      get clang_getNumArgTypes => _library._clang_getNumArgTypes_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_getArgType>>
+      get clang_getArgType => _library._clang_getArgType_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_Type_getObjCObjectBaseType>>
+      get clang_Type_getObjCObjectBaseType =>
+          _library._clang_Type_getObjCObjectBaseType_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_Type_getNumObjCProtocolRefs>>
+      get clang_Type_getNumObjCProtocolRefs =>
+          _library._clang_Type_getNumObjCProtocolRefs_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_Type_getObjCProtocolDecl>>
+      get clang_Type_getObjCProtocolDecl =>
+          _library._clang_Type_getObjCProtocolDecl_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_Type_getNumObjCTypeArgs>>
+      get clang_Type_getNumObjCTypeArgs =>
+          _library._clang_Type_getNumObjCTypeArgs_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_Type_getObjCTypeArg>>
+      get clang_Type_getObjCTypeArg => _library._clang_Type_getObjCTypeArg_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_isFunctionTypeVariadic>>
+      get clang_isFunctionTypeVariadic =>
+          _library._clang_isFunctionTypeVariadic_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_getCursorResultType>>
+      get clang_getCursorResultType => _library._clang_getCursorResultType_ptr;
+  ffi.Pointer<
+          ffi.NativeFunction<Native_clang_getCursorExceptionSpecificationType>>
+      get clang_getCursorExceptionSpecificationType =>
+          _library._clang_getCursorExceptionSpecificationType_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_isPODType>> get clang_isPODType =>
+      _library._clang_isPODType_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_getElementType>>
+      get clang_getElementType => _library._clang_getElementType_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_getNumElements>>
+      get clang_getNumElements => _library._clang_getNumElements_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_getArrayElementType>>
+      get clang_getArrayElementType => _library._clang_getArrayElementType_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_getArraySize>>
+      get clang_getArraySize => _library._clang_getArraySize_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_Type_getNamedType>>
+      get clang_Type_getNamedType => _library._clang_Type_getNamedType_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_Type_isTransparentTagTypedef>>
+      get clang_Type_isTransparentTagTypedef =>
+          _library._clang_Type_isTransparentTagTypedef_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_Type_getNullability>>
+      get clang_Type_getNullability => _library._clang_Type_getNullability_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_Type_getAlignOf>>
+      get clang_Type_getAlignOf => _library._clang_Type_getAlignOf_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_Type_getClassType>>
+      get clang_Type_getClassType => _library._clang_Type_getClassType_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_Type_getSizeOf>>
+      get clang_Type_getSizeOf => _library._clang_Type_getSizeOf_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_Type_getOffsetOf>>
+      get clang_Type_getOffsetOf => _library._clang_Type_getOffsetOf_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_Type_getModifiedType>>
+      get clang_Type_getModifiedType =>
+          _library._clang_Type_getModifiedType_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_Cursor_getOffsetOfField>>
+      get clang_Cursor_getOffsetOfField =>
+          _library._clang_Cursor_getOffsetOfField_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_Cursor_isAnonymous>>
+      get clang_Cursor_isAnonymous => _library._clang_Cursor_isAnonymous_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_Cursor_isAnonymousRecordDecl>>
+      get clang_Cursor_isAnonymousRecordDecl =>
+          _library._clang_Cursor_isAnonymousRecordDecl_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_Cursor_isInlineNamespace>>
+      get clang_Cursor_isInlineNamespace =>
+          _library._clang_Cursor_isInlineNamespace_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_Type_getNumTemplateArguments>>
+      get clang_Type_getNumTemplateArguments =>
+          _library._clang_Type_getNumTemplateArguments_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_Type_getTemplateArgumentAsType>>
+      get clang_Type_getTemplateArgumentAsType =>
+          _library._clang_Type_getTemplateArgumentAsType_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_Type_getCXXRefQualifier>>
+      get clang_Type_getCXXRefQualifier =>
+          _library._clang_Type_getCXXRefQualifier_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_Cursor_isBitField>>
+      get clang_Cursor_isBitField => _library._clang_Cursor_isBitField_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_isVirtualBase>>
+      get clang_isVirtualBase => _library._clang_isVirtualBase_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_getCXXAccessSpecifier>>
+      get clang_getCXXAccessSpecifier =>
+          _library._clang_getCXXAccessSpecifier_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_Cursor_getStorageClass>>
+      get clang_Cursor_getStorageClass =>
+          _library._clang_Cursor_getStorageClass_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_getNumOverloadedDecls>>
+      get clang_getNumOverloadedDecls =>
+          _library._clang_getNumOverloadedDecls_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_getOverloadedDecl>>
+      get clang_getOverloadedDecl => _library._clang_getOverloadedDecl_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_getIBOutletCollectionType>>
+      get clang_getIBOutletCollectionType =>
+          _library._clang_getIBOutletCollectionType_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_visitChildren>>
+      get clang_visitChildren => _library._clang_visitChildren_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_getCursorUSR>>
+      get clang_getCursorUSR => _library._clang_getCursorUSR_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_constructUSR_ObjCClass>>
+      get clang_constructUSR_ObjCClass =>
+          _library._clang_constructUSR_ObjCClass_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_constructUSR_ObjCCategory>>
+      get clang_constructUSR_ObjCCategory =>
+          _library._clang_constructUSR_ObjCCategory_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_constructUSR_ObjCProtocol>>
+      get clang_constructUSR_ObjCProtocol =>
+          _library._clang_constructUSR_ObjCProtocol_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_constructUSR_ObjCIvar>>
+      get clang_constructUSR_ObjCIvar =>
+          _library._clang_constructUSR_ObjCIvar_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_constructUSR_ObjCMethod>>
+      get clang_constructUSR_ObjCMethod =>
+          _library._clang_constructUSR_ObjCMethod_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_constructUSR_ObjCProperty>>
+      get clang_constructUSR_ObjCProperty =>
+          _library._clang_constructUSR_ObjCProperty_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_getCursorSpelling>>
+      get clang_getCursorSpelling => _library._clang_getCursorSpelling_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_Cursor_getSpellingNameRange>>
+      get clang_Cursor_getSpellingNameRange =>
+          _library._clang_Cursor_getSpellingNameRange_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_PrintingPolicy_getProperty>>
+      get clang_PrintingPolicy_getProperty =>
+          _library._clang_PrintingPolicy_getProperty_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_PrintingPolicy_setProperty>>
+      get clang_PrintingPolicy_setProperty =>
+          _library._clang_PrintingPolicy_setProperty_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_getCursorPrintingPolicy>>
+      get clang_getCursorPrintingPolicy =>
+          _library._clang_getCursorPrintingPolicy_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_PrintingPolicy_dispose>>
+      get clang_PrintingPolicy_dispose =>
+          _library._clang_PrintingPolicy_dispose_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_getCursorPrettyPrinted>>
+      get clang_getCursorPrettyPrinted =>
+          _library._clang_getCursorPrettyPrinted_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_getCursorDisplayName>>
+      get clang_getCursorDisplayName =>
+          _library._clang_getCursorDisplayName_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_getCursorReferenced>>
+      get clang_getCursorReferenced => _library._clang_getCursorReferenced_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_getCursorDefinition>>
+      get clang_getCursorDefinition => _library._clang_getCursorDefinition_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_isCursorDefinition>>
+      get clang_isCursorDefinition => _library._clang_isCursorDefinition_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_getCanonicalCursor>>
+      get clang_getCanonicalCursor => _library._clang_getCanonicalCursor_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_Cursor_getObjCSelectorIndex>>
+      get clang_Cursor_getObjCSelectorIndex =>
+          _library._clang_Cursor_getObjCSelectorIndex_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_Cursor_isDynamicCall>>
+      get clang_Cursor_isDynamicCall =>
+          _library._clang_Cursor_isDynamicCall_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_Cursor_getReceiverType>>
+      get clang_Cursor_getReceiverType =>
+          _library._clang_Cursor_getReceiverType_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_Cursor_getObjCPropertyAttributes>>
+      get clang_Cursor_getObjCPropertyAttributes =>
+          _library._clang_Cursor_getObjCPropertyAttributes_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_Cursor_getObjCPropertyGetterName>>
+      get clang_Cursor_getObjCPropertyGetterName =>
+          _library._clang_Cursor_getObjCPropertyGetterName_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_Cursor_getObjCPropertySetterName>>
+      get clang_Cursor_getObjCPropertySetterName =>
+          _library._clang_Cursor_getObjCPropertySetterName_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_Cursor_getObjCDeclQualifiers>>
+      get clang_Cursor_getObjCDeclQualifiers =>
+          _library._clang_Cursor_getObjCDeclQualifiers_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_Cursor_isObjCOptional>>
+      get clang_Cursor_isObjCOptional =>
+          _library._clang_Cursor_isObjCOptional_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_Cursor_isVariadic>>
+      get clang_Cursor_isVariadic => _library._clang_Cursor_isVariadic_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_Cursor_isExternalSymbol>>
+      get clang_Cursor_isExternalSymbol =>
+          _library._clang_Cursor_isExternalSymbol_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_Cursor_getCommentRange>>
+      get clang_Cursor_getCommentRange =>
+          _library._clang_Cursor_getCommentRange_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_Cursor_getRawCommentText>>
+      get clang_Cursor_getRawCommentText =>
+          _library._clang_Cursor_getRawCommentText_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_Cursor_getBriefCommentText>>
+      get clang_Cursor_getBriefCommentText =>
+          _library._clang_Cursor_getBriefCommentText_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_Cursor_getMangling>>
+      get clang_Cursor_getMangling => _library._clang_Cursor_getMangling_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_Cursor_getCXXManglings>>
+      get clang_Cursor_getCXXManglings =>
+          _library._clang_Cursor_getCXXManglings_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_Cursor_getObjCManglings>>
+      get clang_Cursor_getObjCManglings =>
+          _library._clang_Cursor_getObjCManglings_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_Cursor_getModule>>
+      get clang_Cursor_getModule => _library._clang_Cursor_getModule_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_getModuleForFile>>
+      get clang_getModuleForFile => _library._clang_getModuleForFile_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_Module_getASTFile>>
+      get clang_Module_getASTFile => _library._clang_Module_getASTFile_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_Module_getParent>>
+      get clang_Module_getParent => _library._clang_Module_getParent_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_Module_getName>>
+      get clang_Module_getName => _library._clang_Module_getName_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_Module_getFullName>>
+      get clang_Module_getFullName => _library._clang_Module_getFullName_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_Module_isSystem>>
+      get clang_Module_isSystem => _library._clang_Module_isSystem_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_Module_getNumTopLevelHeaders>>
+      get clang_Module_getNumTopLevelHeaders =>
+          _library._clang_Module_getNumTopLevelHeaders_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_Module_getTopLevelHeader>>
+      get clang_Module_getTopLevelHeader =>
+          _library._clang_Module_getTopLevelHeader_ptr;
+  ffi.Pointer<
+          ffi.NativeFunction<
+              Native_clang_CXXConstructor_isConvertingConstructor>>
+      get clang_CXXConstructor_isConvertingConstructor =>
+          _library._clang_CXXConstructor_isConvertingConstructor_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_CXXConstructor_isCopyConstructor>>
+      get clang_CXXConstructor_isCopyConstructor =>
+          _library._clang_CXXConstructor_isCopyConstructor_ptr;
+  ffi.Pointer<
+          ffi.NativeFunction<Native_clang_CXXConstructor_isDefaultConstructor>>
+      get clang_CXXConstructor_isDefaultConstructor =>
+          _library._clang_CXXConstructor_isDefaultConstructor_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_CXXConstructor_isMoveConstructor>>
+      get clang_CXXConstructor_isMoveConstructor =>
+          _library._clang_CXXConstructor_isMoveConstructor_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_CXXField_isMutable>>
+      get clang_CXXField_isMutable => _library._clang_CXXField_isMutable_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_CXXMethod_isDefaulted>>
+      get clang_CXXMethod_isDefaulted =>
+          _library._clang_CXXMethod_isDefaulted_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_CXXMethod_isPureVirtual>>
+      get clang_CXXMethod_isPureVirtual =>
+          _library._clang_CXXMethod_isPureVirtual_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_CXXMethod_isStatic>>
+      get clang_CXXMethod_isStatic => _library._clang_CXXMethod_isStatic_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_CXXMethod_isVirtual>>
+      get clang_CXXMethod_isVirtual => _library._clang_CXXMethod_isVirtual_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_CXXRecord_isAbstract>>
+      get clang_CXXRecord_isAbstract =>
+          _library._clang_CXXRecord_isAbstract_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_EnumDecl_isScoped>>
+      get clang_EnumDecl_isScoped => _library._clang_EnumDecl_isScoped_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_CXXMethod_isConst>>
+      get clang_CXXMethod_isConst => _library._clang_CXXMethod_isConst_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_getTemplateCursorKind>>
+      get clang_getTemplateCursorKind =>
+          _library._clang_getTemplateCursorKind_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_getSpecializedCursorTemplate>>
+      get clang_getSpecializedCursorTemplate =>
+          _library._clang_getSpecializedCursorTemplate_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_getCursorReferenceNameRange>>
+      get clang_getCursorReferenceNameRange =>
+          _library._clang_getCursorReferenceNameRange_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_getToken>> get clang_getToken =>
+      _library._clang_getToken_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_getTokenKind>>
+      get clang_getTokenKind => _library._clang_getTokenKind_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_getTokenSpelling>>
+      get clang_getTokenSpelling => _library._clang_getTokenSpelling_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_getTokenLocation>>
+      get clang_getTokenLocation => _library._clang_getTokenLocation_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_getTokenExtent>>
+      get clang_getTokenExtent => _library._clang_getTokenExtent_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_tokenize>> get clang_tokenize =>
+      _library._clang_tokenize_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_annotateTokens>>
+      get clang_annotateTokens => _library._clang_annotateTokens_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_disposeTokens>>
+      get clang_disposeTokens => _library._clang_disposeTokens_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_getCursorKindSpelling>>
+      get clang_getCursorKindSpelling =>
+          _library._clang_getCursorKindSpelling_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_getDefinitionSpellingAndExtent>>
+      get clang_getDefinitionSpellingAndExtent =>
+          _library._clang_getDefinitionSpellingAndExtent_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_enableStackTraces>>
+      get clang_enableStackTraces => _library._clang_enableStackTraces_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_executeOnThread>>
+      get clang_executeOnThread => _library._clang_executeOnThread_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_getCompletionChunkKind>>
+      get clang_getCompletionChunkKind =>
+          _library._clang_getCompletionChunkKind_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_getCompletionChunkText>>
+      get clang_getCompletionChunkText =>
+          _library._clang_getCompletionChunkText_ptr;
+  ffi.Pointer<
+          ffi.NativeFunction<Native_clang_getCompletionChunkCompletionString>>
+      get clang_getCompletionChunkCompletionString =>
+          _library._clang_getCompletionChunkCompletionString_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_getNumCompletionChunks>>
+      get clang_getNumCompletionChunks =>
+          _library._clang_getNumCompletionChunks_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_getCompletionPriority>>
+      get clang_getCompletionPriority =>
+          _library._clang_getCompletionPriority_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_getCompletionAvailability>>
+      get clang_getCompletionAvailability =>
+          _library._clang_getCompletionAvailability_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_getCompletionNumAnnotations>>
+      get clang_getCompletionNumAnnotations =>
+          _library._clang_getCompletionNumAnnotations_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_getCompletionAnnotation>>
+      get clang_getCompletionAnnotation =>
+          _library._clang_getCompletionAnnotation_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_getCompletionParent>>
+      get clang_getCompletionParent => _library._clang_getCompletionParent_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_getCompletionBriefComment>>
+      get clang_getCompletionBriefComment =>
+          _library._clang_getCompletionBriefComment_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_getCursorCompletionString>>
+      get clang_getCursorCompletionString =>
+          _library._clang_getCursorCompletionString_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_getCompletionNumFixIts>>
+      get clang_getCompletionNumFixIts =>
+          _library._clang_getCompletionNumFixIts_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_getCompletionFixIt>>
+      get clang_getCompletionFixIt => _library._clang_getCompletionFixIt_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_defaultCodeCompleteOptions>>
+      get clang_defaultCodeCompleteOptions =>
+          _library._clang_defaultCodeCompleteOptions_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_codeCompleteAt>>
+      get clang_codeCompleteAt => _library._clang_codeCompleteAt_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_sortCodeCompletionResults>>
+      get clang_sortCodeCompletionResults =>
+          _library._clang_sortCodeCompletionResults_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_disposeCodeCompleteResults>>
+      get clang_disposeCodeCompleteResults =>
+          _library._clang_disposeCodeCompleteResults_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_codeCompleteGetNumDiagnostics>>
+      get clang_codeCompleteGetNumDiagnostics =>
+          _library._clang_codeCompleteGetNumDiagnostics_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_codeCompleteGetDiagnostic>>
+      get clang_codeCompleteGetDiagnostic =>
+          _library._clang_codeCompleteGetDiagnostic_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_codeCompleteGetContexts>>
+      get clang_codeCompleteGetContexts =>
+          _library._clang_codeCompleteGetContexts_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_codeCompleteGetContainerKind>>
+      get clang_codeCompleteGetContainerKind =>
+          _library._clang_codeCompleteGetContainerKind_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_codeCompleteGetContainerUSR>>
+      get clang_codeCompleteGetContainerUSR =>
+          _library._clang_codeCompleteGetContainerUSR_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_codeCompleteGetObjCSelector>>
+      get clang_codeCompleteGetObjCSelector =>
+          _library._clang_codeCompleteGetObjCSelector_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_getClangVersion>>
+      get clang_getClangVersion => _library._clang_getClangVersion_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_toggleCrashRecovery>>
+      get clang_toggleCrashRecovery => _library._clang_toggleCrashRecovery_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_getInclusions>>
+      get clang_getInclusions => _library._clang_getInclusions_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_Cursor_Evaluate>>
+      get clang_Cursor_Evaluate => _library._clang_Cursor_Evaluate_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_EvalResult_getKind>>
+      get clang_EvalResult_getKind => _library._clang_EvalResult_getKind_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_EvalResult_getAsInt>>
+      get clang_EvalResult_getAsInt => _library._clang_EvalResult_getAsInt_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_EvalResult_getAsLongLong>>
+      get clang_EvalResult_getAsLongLong =>
+          _library._clang_EvalResult_getAsLongLong_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_EvalResult_isUnsignedInt>>
+      get clang_EvalResult_isUnsignedInt =>
+          _library._clang_EvalResult_isUnsignedInt_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_EvalResult_getAsUnsigned>>
+      get clang_EvalResult_getAsUnsigned =>
+          _library._clang_EvalResult_getAsUnsigned_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_EvalResult_getAsDouble>>
+      get clang_EvalResult_getAsDouble =>
+          _library._clang_EvalResult_getAsDouble_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_EvalResult_getAsStr>>
+      get clang_EvalResult_getAsStr => _library._clang_EvalResult_getAsStr_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_EvalResult_dispose>>
+      get clang_EvalResult_dispose => _library._clang_EvalResult_dispose_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_getRemappings>>
+      get clang_getRemappings => _library._clang_getRemappings_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_getRemappingsFromFileList>>
+      get clang_getRemappingsFromFileList =>
+          _library._clang_getRemappingsFromFileList_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_remap_getNumFiles>>
+      get clang_remap_getNumFiles => _library._clang_remap_getNumFiles_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_remap_getFilenames>>
+      get clang_remap_getFilenames => _library._clang_remap_getFilenames_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_remap_dispose>>
+      get clang_remap_dispose => _library._clang_remap_dispose_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_findReferencesInFile>>
+      get clang_findReferencesInFile =>
+          _library._clang_findReferencesInFile_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_findIncludesInFile>>
+      get clang_findIncludesInFile => _library._clang_findIncludesInFile_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_index_isEntityObjCContainerKind>>
+      get clang_index_isEntityObjCContainerKind =>
+          _library._clang_index_isEntityObjCContainerKind_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_index_getObjCContainerDeclInfo>>
+      get clang_index_getObjCContainerDeclInfo =>
+          _library._clang_index_getObjCContainerDeclInfo_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_index_getObjCInterfaceDeclInfo>>
+      get clang_index_getObjCInterfaceDeclInfo =>
+          _library._clang_index_getObjCInterfaceDeclInfo_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_index_getObjCCategoryDeclInfo>>
+      get clang_index_getObjCCategoryDeclInfo =>
+          _library._clang_index_getObjCCategoryDeclInfo_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_index_getObjCProtocolRefListInfo>>
+      get clang_index_getObjCProtocolRefListInfo =>
+          _library._clang_index_getObjCProtocolRefListInfo_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_index_getObjCPropertyDeclInfo>>
+      get clang_index_getObjCPropertyDeclInfo =>
+          _library._clang_index_getObjCPropertyDeclInfo_ptr;
+  ffi.Pointer<
+          ffi.NativeFunction<Native_clang_index_getIBOutletCollectionAttrInfo>>
+      get clang_index_getIBOutletCollectionAttrInfo =>
+          _library._clang_index_getIBOutletCollectionAttrInfo_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_index_getCXXClassDeclInfo>>
+      get clang_index_getCXXClassDeclInfo =>
+          _library._clang_index_getCXXClassDeclInfo_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_index_getClientContainer>>
+      get clang_index_getClientContainer =>
+          _library._clang_index_getClientContainer_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_index_setClientContainer>>
+      get clang_index_setClientContainer =>
+          _library._clang_index_setClientContainer_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_index_getClientEntity>>
+      get clang_index_getClientEntity =>
+          _library._clang_index_getClientEntity_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_index_setClientEntity>>
+      get clang_index_setClientEntity =>
+          _library._clang_index_setClientEntity_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_IndexAction_create>>
+      get clang_IndexAction_create => _library._clang_IndexAction_create_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_IndexAction_dispose>>
+      get clang_IndexAction_dispose => _library._clang_IndexAction_dispose_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_indexSourceFile>>
+      get clang_indexSourceFile => _library._clang_indexSourceFile_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_indexSourceFileFullArgv>>
+      get clang_indexSourceFileFullArgv =>
+          _library._clang_indexSourceFileFullArgv_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_indexTranslationUnit>>
+      get clang_indexTranslationUnit =>
+          _library._clang_indexTranslationUnit_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_indexLoc_getFileLocation>>
+      get clang_indexLoc_getFileLocation =>
+          _library._clang_indexLoc_getFileLocation_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_indexLoc_getCXSourceLocation>>
+      get clang_indexLoc_getCXSourceLocation =>
+          _library._clang_indexLoc_getCXSourceLocation_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native_clang_Type_visitFields>>
+      get clang_Type_visitFields => _library._clang_Type_visitFields_ptr;
 }
 
 /// A character string.
@@ -7461,7 +8859,7 @@
 
 const String CINDEX_VERSION_STRING = '0.59';
 
-typedef _c_clang_getCString = ffi.Pointer<ffi.Int8> Function(
+typedef Native_clang_getCString = ffi.Pointer<ffi.Int8> Function(
   CXString string,
 );
 
@@ -7469,7 +8867,7 @@
   CXString string,
 );
 
-typedef _c_clang_disposeString = ffi.Void Function(
+typedef Native_clang_disposeString = ffi.Void Function(
   CXString string,
 );
 
@@ -7477,7 +8875,7 @@
   CXString string,
 );
 
-typedef _c_clang_disposeStringSet = ffi.Void Function(
+typedef Native_clang_disposeStringSet = ffi.Void Function(
   ffi.Pointer<CXStringSet> set_1,
 );
 
@@ -7485,7 +8883,7 @@
   ffi.Pointer<CXStringSet> set_1,
 );
 
-typedef _c_clang_createIndex = ffi.Pointer<ffi.Void> Function(
+typedef Native_clang_createIndex = ffi.Pointer<ffi.Void> Function(
   ffi.Int32 excludeDeclarationsFromPCH,
   ffi.Int32 displayDiagnostics,
 );
@@ -7495,7 +8893,7 @@
   int displayDiagnostics,
 );
 
-typedef _c_clang_disposeIndex = ffi.Void Function(
+typedef Native_clang_disposeIndex = ffi.Void Function(
   ffi.Pointer<ffi.Void> index,
 );
 
@@ -7503,7 +8901,7 @@
   ffi.Pointer<ffi.Void> index,
 );
 
-typedef _c_clang_CXIndex_setGlobalOptions = ffi.Void Function(
+typedef Native_clang_CXIndex_setGlobalOptions = ffi.Void Function(
   ffi.Pointer<ffi.Void> arg0,
   ffi.Uint32 options,
 );
@@ -7513,7 +8911,7 @@
   int options,
 );
 
-typedef _c_clang_CXIndex_getGlobalOptions = ffi.Uint32 Function(
+typedef Native_clang_CXIndex_getGlobalOptions = ffi.Uint32 Function(
   ffi.Pointer<ffi.Void> arg0,
 );
 
@@ -7521,7 +8919,8 @@
   ffi.Pointer<ffi.Void> arg0,
 );
 
-typedef _c_clang_CXIndex_setInvocationEmissionPathOption = ffi.Void Function(
+typedef Native_clang_CXIndex_setInvocationEmissionPathOption = ffi.Void
+    Function(
   ffi.Pointer<ffi.Void> arg0,
   ffi.Pointer<ffi.Int8> Path,
 );
@@ -7531,7 +8930,7 @@
   ffi.Pointer<ffi.Int8> Path,
 );
 
-typedef _c_clang_getFileName = CXString Function(
+typedef Native_clang_getFileName = CXString Function(
   ffi.Pointer<ffi.Void> SFile,
 );
 
@@ -7539,7 +8938,7 @@
   ffi.Pointer<ffi.Void> SFile,
 );
 
-typedef _c_clang_getFileTime = ffi.Int64 Function(
+typedef Native_clang_getFileTime = ffi.Int64 Function(
   ffi.Pointer<ffi.Void> SFile,
 );
 
@@ -7547,7 +8946,7 @@
   ffi.Pointer<ffi.Void> SFile,
 );
 
-typedef _c_clang_getFileUniqueID = ffi.Int32 Function(
+typedef Native_clang_getFileUniqueID = ffi.Int32 Function(
   ffi.Pointer<ffi.Void> file,
   ffi.Pointer<CXFileUniqueID> outID,
 );
@@ -7557,7 +8956,7 @@
   ffi.Pointer<CXFileUniqueID> outID,
 );
 
-typedef _c_clang_isFileMultipleIncludeGuarded = ffi.Uint32 Function(
+typedef Native_clang_isFileMultipleIncludeGuarded = ffi.Uint32 Function(
   ffi.Pointer<CXTranslationUnitImpl> tu,
   ffi.Pointer<ffi.Void> file,
 );
@@ -7567,7 +8966,7 @@
   ffi.Pointer<ffi.Void> file,
 );
 
-typedef _c_clang_getFile = ffi.Pointer<ffi.Void> Function(
+typedef Native_clang_getFile = ffi.Pointer<ffi.Void> Function(
   ffi.Pointer<CXTranslationUnitImpl> tu,
   ffi.Pointer<ffi.Int8> file_name,
 );
@@ -7577,7 +8976,7 @@
   ffi.Pointer<ffi.Int8> file_name,
 );
 
-typedef _c_clang_getFileContents = ffi.Pointer<ffi.Int8> Function(
+typedef Native_clang_getFileContents = ffi.Pointer<ffi.Int8> Function(
   ffi.Pointer<CXTranslationUnitImpl> tu,
   ffi.Pointer<ffi.Void> file,
   ffi.Pointer<ffi.Uint64> size,
@@ -7589,7 +8988,7 @@
   ffi.Pointer<ffi.Uint64> size,
 );
 
-typedef _c_clang_File_isEqual = ffi.Int32 Function(
+typedef Native_clang_File_isEqual = ffi.Int32 Function(
   ffi.Pointer<ffi.Void> file1,
   ffi.Pointer<ffi.Void> file2,
 );
@@ -7599,7 +8998,7 @@
   ffi.Pointer<ffi.Void> file2,
 );
 
-typedef _c_clang_File_tryGetRealPathName = CXString Function(
+typedef Native_clang_File_tryGetRealPathName = CXString Function(
   ffi.Pointer<ffi.Void> file,
 );
 
@@ -7607,11 +9006,11 @@
   ffi.Pointer<ffi.Void> file,
 );
 
-typedef _c_clang_getNullLocation = CXSourceLocation Function();
+typedef Native_clang_getNullLocation = CXSourceLocation Function();
 
 typedef _dart_clang_getNullLocation = CXSourceLocation Function();
 
-typedef _c_clang_equalLocations = ffi.Uint32 Function(
+typedef Native_clang_equalLocations = ffi.Uint32 Function(
   CXSourceLocation loc1,
   CXSourceLocation loc2,
 );
@@ -7621,7 +9020,7 @@
   CXSourceLocation loc2,
 );
 
-typedef _c_clang_getLocation = CXSourceLocation Function(
+typedef Native_clang_getLocation = CXSourceLocation Function(
   ffi.Pointer<CXTranslationUnitImpl> tu,
   ffi.Pointer<ffi.Void> file,
   ffi.Uint32 line,
@@ -7635,7 +9034,7 @@
   int column,
 );
 
-typedef _c_clang_getLocationForOffset = CXSourceLocation Function(
+typedef Native_clang_getLocationForOffset = CXSourceLocation Function(
   ffi.Pointer<CXTranslationUnitImpl> tu,
   ffi.Pointer<ffi.Void> file,
   ffi.Uint32 offset,
@@ -7647,7 +9046,7 @@
   int offset,
 );
 
-typedef _c_clang_Location_isInSystemHeader = ffi.Int32 Function(
+typedef Native_clang_Location_isInSystemHeader = ffi.Int32 Function(
   CXSourceLocation location,
 );
 
@@ -7655,7 +9054,7 @@
   CXSourceLocation location,
 );
 
-typedef _c_clang_Location_isFromMainFile = ffi.Int32 Function(
+typedef Native_clang_Location_isFromMainFile = ffi.Int32 Function(
   CXSourceLocation location,
 );
 
@@ -7663,11 +9062,11 @@
   CXSourceLocation location,
 );
 
-typedef _c_clang_getNullRange = CXSourceRange Function();
+typedef Native_clang_getNullRange = CXSourceRange Function();
 
 typedef _dart_clang_getNullRange = CXSourceRange Function();
 
-typedef _c_clang_getRange = CXSourceRange Function(
+typedef Native_clang_getRange = CXSourceRange Function(
   CXSourceLocation begin,
   CXSourceLocation end,
 );
@@ -7677,7 +9076,7 @@
   CXSourceLocation end,
 );
 
-typedef _c_clang_equalRanges = ffi.Uint32 Function(
+typedef Native_clang_equalRanges = ffi.Uint32 Function(
   CXSourceRange range1,
   CXSourceRange range2,
 );
@@ -7687,7 +9086,7 @@
   CXSourceRange range2,
 );
 
-typedef _c_clang_Range_isNull = ffi.Int32 Function(
+typedef Native_clang_Range_isNull = ffi.Int32 Function(
   CXSourceRange range,
 );
 
@@ -7695,7 +9094,7 @@
   CXSourceRange range,
 );
 
-typedef _c_clang_getExpansionLocation = ffi.Void Function(
+typedef Native_clang_getExpansionLocation = ffi.Void Function(
   CXSourceLocation location,
   ffi.Pointer<ffi.Pointer<ffi.Void>> file,
   ffi.Pointer<ffi.Uint32> line,
@@ -7711,7 +9110,7 @@
   ffi.Pointer<ffi.Uint32> offset,
 );
 
-typedef _c_clang_getPresumedLocation = ffi.Void Function(
+typedef Native_clang_getPresumedLocation = ffi.Void Function(
   CXSourceLocation location,
   ffi.Pointer<CXString> filename,
   ffi.Pointer<ffi.Uint32> line,
@@ -7725,7 +9124,7 @@
   ffi.Pointer<ffi.Uint32> column,
 );
 
-typedef _c_clang_getInstantiationLocation = ffi.Void Function(
+typedef Native_clang_getInstantiationLocation = ffi.Void Function(
   CXSourceLocation location,
   ffi.Pointer<ffi.Pointer<ffi.Void>> file,
   ffi.Pointer<ffi.Uint32> line,
@@ -7741,7 +9140,7 @@
   ffi.Pointer<ffi.Uint32> offset,
 );
 
-typedef _c_clang_getSpellingLocation = ffi.Void Function(
+typedef Native_clang_getSpellingLocation = ffi.Void Function(
   CXSourceLocation location,
   ffi.Pointer<ffi.Pointer<ffi.Void>> file,
   ffi.Pointer<ffi.Uint32> line,
@@ -7757,7 +9156,7 @@
   ffi.Pointer<ffi.Uint32> offset,
 );
 
-typedef _c_clang_getFileLocation = ffi.Void Function(
+typedef Native_clang_getFileLocation = ffi.Void Function(
   CXSourceLocation location,
   ffi.Pointer<ffi.Pointer<ffi.Void>> file,
   ffi.Pointer<ffi.Uint32> line,
@@ -7773,7 +9172,7 @@
   ffi.Pointer<ffi.Uint32> offset,
 );
 
-typedef _c_clang_getRangeStart = CXSourceLocation Function(
+typedef Native_clang_getRangeStart = CXSourceLocation Function(
   CXSourceRange range,
 );
 
@@ -7781,7 +9180,7 @@
   CXSourceRange range,
 );
 
-typedef _c_clang_getRangeEnd = CXSourceLocation Function(
+typedef Native_clang_getRangeEnd = CXSourceLocation Function(
   CXSourceRange range,
 );
 
@@ -7789,7 +9188,7 @@
   CXSourceRange range,
 );
 
-typedef _c_clang_getSkippedRanges = ffi.Pointer<CXSourceRangeList> Function(
+typedef Native_clang_getSkippedRanges = ffi.Pointer<CXSourceRangeList> Function(
   ffi.Pointer<CXTranslationUnitImpl> tu,
   ffi.Pointer<ffi.Void> file,
 );
@@ -7799,7 +9198,8 @@
   ffi.Pointer<ffi.Void> file,
 );
 
-typedef _c_clang_getAllSkippedRanges = ffi.Pointer<CXSourceRangeList> Function(
+typedef Native_clang_getAllSkippedRanges = ffi.Pointer<CXSourceRangeList>
+    Function(
   ffi.Pointer<CXTranslationUnitImpl> tu,
 );
 
@@ -7808,7 +9208,7 @@
   ffi.Pointer<CXTranslationUnitImpl> tu,
 );
 
-typedef _c_clang_disposeSourceRangeList = ffi.Void Function(
+typedef Native_clang_disposeSourceRangeList = ffi.Void Function(
   ffi.Pointer<CXSourceRangeList> ranges,
 );
 
@@ -7816,7 +9216,7 @@
   ffi.Pointer<CXSourceRangeList> ranges,
 );
 
-typedef _c_clang_getNumDiagnosticsInSet = ffi.Uint32 Function(
+typedef Native_clang_getNumDiagnosticsInSet = ffi.Uint32 Function(
   ffi.Pointer<ffi.Void> Diags,
 );
 
@@ -7824,7 +9224,7 @@
   ffi.Pointer<ffi.Void> Diags,
 );
 
-typedef _c_clang_getDiagnosticInSet = ffi.Pointer<ffi.Void> Function(
+typedef Native_clang_getDiagnosticInSet = ffi.Pointer<ffi.Void> Function(
   ffi.Pointer<ffi.Void> Diags,
   ffi.Uint32 Index,
 );
@@ -7834,7 +9234,7 @@
   int Index,
 );
 
-typedef _c_clang_loadDiagnostics = ffi.Pointer<ffi.Void> Function(
+typedef Native_clang_loadDiagnostics = ffi.Pointer<ffi.Void> Function(
   ffi.Pointer<ffi.Int8> file,
   ffi.Pointer<ffi.Int32> error,
   ffi.Pointer<CXString> errorString,
@@ -7846,7 +9246,7 @@
   ffi.Pointer<CXString> errorString,
 );
 
-typedef _c_clang_disposeDiagnosticSet = ffi.Void Function(
+typedef Native_clang_disposeDiagnosticSet = ffi.Void Function(
   ffi.Pointer<ffi.Void> Diags,
 );
 
@@ -7854,7 +9254,7 @@
   ffi.Pointer<ffi.Void> Diags,
 );
 
-typedef _c_clang_getChildDiagnostics = ffi.Pointer<ffi.Void> Function(
+typedef Native_clang_getChildDiagnostics = ffi.Pointer<ffi.Void> Function(
   ffi.Pointer<ffi.Void> D,
 );
 
@@ -7862,7 +9262,7 @@
   ffi.Pointer<ffi.Void> D,
 );
 
-typedef _c_clang_getNumDiagnostics = ffi.Uint32 Function(
+typedef Native_clang_getNumDiagnostics = ffi.Uint32 Function(
   ffi.Pointer<CXTranslationUnitImpl> Unit,
 );
 
@@ -7870,7 +9270,7 @@
   ffi.Pointer<CXTranslationUnitImpl> Unit,
 );
 
-typedef _c_clang_getDiagnostic = ffi.Pointer<ffi.Void> Function(
+typedef Native_clang_getDiagnostic = ffi.Pointer<ffi.Void> Function(
   ffi.Pointer<CXTranslationUnitImpl> Unit,
   ffi.Uint32 Index,
 );
@@ -7880,7 +9280,7 @@
   int Index,
 );
 
-typedef _c_clang_getDiagnosticSetFromTU = ffi.Pointer<ffi.Void> Function(
+typedef Native_clang_getDiagnosticSetFromTU = ffi.Pointer<ffi.Void> Function(
   ffi.Pointer<CXTranslationUnitImpl> Unit,
 );
 
@@ -7888,7 +9288,7 @@
   ffi.Pointer<CXTranslationUnitImpl> Unit,
 );
 
-typedef _c_clang_disposeDiagnostic = ffi.Void Function(
+typedef Native_clang_disposeDiagnostic = ffi.Void Function(
   ffi.Pointer<ffi.Void> Diagnostic,
 );
 
@@ -7896,7 +9296,7 @@
   ffi.Pointer<ffi.Void> Diagnostic,
 );
 
-typedef _c_clang_formatDiagnostic = CXString Function(
+typedef Native_clang_formatDiagnostic = CXString Function(
   ffi.Pointer<ffi.Void> Diagnostic,
   ffi.Uint32 Options,
 );
@@ -7906,11 +9306,11 @@
   int Options,
 );
 
-typedef _c_clang_defaultDiagnosticDisplayOptions = ffi.Uint32 Function();
+typedef Native_clang_defaultDiagnosticDisplayOptions = ffi.Uint32 Function();
 
 typedef _dart_clang_defaultDiagnosticDisplayOptions = int Function();
 
-typedef _c_clang_getDiagnosticSeverity = ffi.Int32 Function(
+typedef Native_clang_getDiagnosticSeverity = ffi.Int32 Function(
   ffi.Pointer<ffi.Void> arg0,
 );
 
@@ -7918,7 +9318,7 @@
   ffi.Pointer<ffi.Void> arg0,
 );
 
-typedef _c_clang_getDiagnosticLocation = CXSourceLocation Function(
+typedef Native_clang_getDiagnosticLocation = CXSourceLocation Function(
   ffi.Pointer<ffi.Void> arg0,
 );
 
@@ -7926,7 +9326,7 @@
   ffi.Pointer<ffi.Void> arg0,
 );
 
-typedef _c_clang_getDiagnosticSpelling = CXString Function(
+typedef Native_clang_getDiagnosticSpelling = CXString Function(
   ffi.Pointer<ffi.Void> arg0,
 );
 
@@ -7934,7 +9334,7 @@
   ffi.Pointer<ffi.Void> arg0,
 );
 
-typedef _c_clang_getDiagnosticOption = CXString Function(
+typedef Native_clang_getDiagnosticOption = CXString Function(
   ffi.Pointer<ffi.Void> Diag,
   ffi.Pointer<CXString> Disable,
 );
@@ -7944,7 +9344,7 @@
   ffi.Pointer<CXString> Disable,
 );
 
-typedef _c_clang_getDiagnosticCategory = ffi.Uint32 Function(
+typedef Native_clang_getDiagnosticCategory = ffi.Uint32 Function(
   ffi.Pointer<ffi.Void> arg0,
 );
 
@@ -7952,7 +9352,7 @@
   ffi.Pointer<ffi.Void> arg0,
 );
 
-typedef _c_clang_getDiagnosticCategoryName = CXString Function(
+typedef Native_clang_getDiagnosticCategoryName = CXString Function(
   ffi.Uint32 Category,
 );
 
@@ -7960,7 +9360,7 @@
   int Category,
 );
 
-typedef _c_clang_getDiagnosticCategoryText = CXString Function(
+typedef Native_clang_getDiagnosticCategoryText = CXString Function(
   ffi.Pointer<ffi.Void> arg0,
 );
 
@@ -7968,7 +9368,7 @@
   ffi.Pointer<ffi.Void> arg0,
 );
 
-typedef _c_clang_getDiagnosticNumRanges = ffi.Uint32 Function(
+typedef Native_clang_getDiagnosticNumRanges = ffi.Uint32 Function(
   ffi.Pointer<ffi.Void> arg0,
 );
 
@@ -7976,7 +9376,7 @@
   ffi.Pointer<ffi.Void> arg0,
 );
 
-typedef _c_clang_getDiagnosticRange = CXSourceRange Function(
+typedef Native_clang_getDiagnosticRange = CXSourceRange Function(
   ffi.Pointer<ffi.Void> Diagnostic,
   ffi.Uint32 Range,
 );
@@ -7986,7 +9386,7 @@
   int Range,
 );
 
-typedef _c_clang_getDiagnosticNumFixIts = ffi.Uint32 Function(
+typedef Native_clang_getDiagnosticNumFixIts = ffi.Uint32 Function(
   ffi.Pointer<ffi.Void> Diagnostic,
 );
 
@@ -7994,7 +9394,7 @@
   ffi.Pointer<ffi.Void> Diagnostic,
 );
 
-typedef _c_clang_getDiagnosticFixIt = CXString Function(
+typedef Native_clang_getDiagnosticFixIt = CXString Function(
   ffi.Pointer<ffi.Void> Diagnostic,
   ffi.Uint32 FixIt,
   ffi.Pointer<CXSourceRange> ReplacementRange,
@@ -8006,7 +9406,7 @@
   ffi.Pointer<CXSourceRange> ReplacementRange,
 );
 
-typedef _c_clang_getTranslationUnitSpelling = CXString Function(
+typedef Native_clang_getTranslationUnitSpelling = CXString Function(
   ffi.Pointer<CXTranslationUnitImpl> CTUnit,
 );
 
@@ -8014,7 +9414,7 @@
   ffi.Pointer<CXTranslationUnitImpl> CTUnit,
 );
 
-typedef _c_clang_createTranslationUnitFromSourceFile
+typedef Native_clang_createTranslationUnitFromSourceFile
     = ffi.Pointer<CXTranslationUnitImpl> Function(
   ffi.Pointer<ffi.Void> CIdx,
   ffi.Pointer<ffi.Int8> source_filename,
@@ -8034,7 +9434,7 @@
   ffi.Pointer<CXUnsavedFile> unsaved_files,
 );
 
-typedef _c_clang_createTranslationUnit = ffi.Pointer<CXTranslationUnitImpl>
+typedef Native_clang_createTranslationUnit = ffi.Pointer<CXTranslationUnitImpl>
     Function(
   ffi.Pointer<ffi.Void> CIdx,
   ffi.Pointer<ffi.Int8> ast_filename,
@@ -8046,7 +9446,7 @@
   ffi.Pointer<ffi.Int8> ast_filename,
 );
 
-typedef _c_clang_createTranslationUnit2 = ffi.Int32 Function(
+typedef Native_clang_createTranslationUnit2 = ffi.Int32 Function(
   ffi.Pointer<ffi.Void> CIdx,
   ffi.Pointer<ffi.Int8> ast_filename,
   ffi.Pointer<ffi.Pointer<CXTranslationUnitImpl>> out_TU,
@@ -8058,11 +9458,12 @@
   ffi.Pointer<ffi.Pointer<CXTranslationUnitImpl>> out_TU,
 );
 
-typedef _c_clang_defaultEditingTranslationUnitOptions = ffi.Uint32 Function();
+typedef Native_clang_defaultEditingTranslationUnitOptions = ffi.Uint32
+    Function();
 
 typedef _dart_clang_defaultEditingTranslationUnitOptions = int Function();
 
-typedef _c_clang_parseTranslationUnit = ffi.Pointer<CXTranslationUnitImpl>
+typedef Native_clang_parseTranslationUnit = ffi.Pointer<CXTranslationUnitImpl>
     Function(
   ffi.Pointer<ffi.Void> CIdx,
   ffi.Pointer<ffi.Int8> source_filename,
@@ -8084,7 +9485,7 @@
   int options,
 );
 
-typedef _c_clang_parseTranslationUnit2 = ffi.Int32 Function(
+typedef Native_clang_parseTranslationUnit2 = ffi.Int32 Function(
   ffi.Pointer<ffi.Void> CIdx,
   ffi.Pointer<ffi.Int8> source_filename,
   ffi.Pointer<ffi.Pointer<ffi.Int8>> command_line_args,
@@ -8106,7 +9507,7 @@
   ffi.Pointer<ffi.Pointer<CXTranslationUnitImpl>> out_TU,
 );
 
-typedef _c_clang_parseTranslationUnit2FullArgv = ffi.Int32 Function(
+typedef Native_clang_parseTranslationUnit2FullArgv = ffi.Int32 Function(
   ffi.Pointer<ffi.Void> CIdx,
   ffi.Pointer<ffi.Int8> source_filename,
   ffi.Pointer<ffi.Pointer<ffi.Int8>> command_line_args,
@@ -8128,7 +9529,7 @@
   ffi.Pointer<ffi.Pointer<CXTranslationUnitImpl>> out_TU,
 );
 
-typedef _c_clang_defaultSaveOptions = ffi.Uint32 Function(
+typedef Native_clang_defaultSaveOptions = ffi.Uint32 Function(
   ffi.Pointer<CXTranslationUnitImpl> TU,
 );
 
@@ -8136,7 +9537,7 @@
   ffi.Pointer<CXTranslationUnitImpl> TU,
 );
 
-typedef _c_clang_saveTranslationUnit = ffi.Int32 Function(
+typedef Native_clang_saveTranslationUnit = ffi.Int32 Function(
   ffi.Pointer<CXTranslationUnitImpl> TU,
   ffi.Pointer<ffi.Int8> FileName,
   ffi.Uint32 options,
@@ -8148,7 +9549,7 @@
   int options,
 );
 
-typedef _c_clang_suspendTranslationUnit = ffi.Uint32 Function(
+typedef Native_clang_suspendTranslationUnit = ffi.Uint32 Function(
   ffi.Pointer<CXTranslationUnitImpl> arg0,
 );
 
@@ -8156,7 +9557,7 @@
   ffi.Pointer<CXTranslationUnitImpl> arg0,
 );
 
-typedef _c_clang_disposeTranslationUnit = ffi.Void Function(
+typedef Native_clang_disposeTranslationUnit = ffi.Void Function(
   ffi.Pointer<CXTranslationUnitImpl> arg0,
 );
 
@@ -8164,7 +9565,7 @@
   ffi.Pointer<CXTranslationUnitImpl> arg0,
 );
 
-typedef _c_clang_defaultReparseOptions = ffi.Uint32 Function(
+typedef Native_clang_defaultReparseOptions = ffi.Uint32 Function(
   ffi.Pointer<CXTranslationUnitImpl> TU,
 );
 
@@ -8172,7 +9573,7 @@
   ffi.Pointer<CXTranslationUnitImpl> TU,
 );
 
-typedef _c_clang_reparseTranslationUnit = ffi.Int32 Function(
+typedef Native_clang_reparseTranslationUnit = ffi.Int32 Function(
   ffi.Pointer<CXTranslationUnitImpl> TU,
   ffi.Uint32 num_unsaved_files,
   ffi.Pointer<CXUnsavedFile> unsaved_files,
@@ -8186,7 +9587,7 @@
   int options,
 );
 
-typedef _c_clang_getTUResourceUsageName = ffi.Pointer<ffi.Int8> Function(
+typedef Native_clang_getTUResourceUsageName = ffi.Pointer<ffi.Int8> Function(
   ffi.Int32 kind,
 );
 
@@ -8194,7 +9595,7 @@
   int kind,
 );
 
-typedef _c_clang_getCXTUResourceUsage = CXTUResourceUsage Function(
+typedef Native_clang_getCXTUResourceUsage = CXTUResourceUsage Function(
   ffi.Pointer<CXTranslationUnitImpl> TU,
 );
 
@@ -8202,7 +9603,7 @@
   ffi.Pointer<CXTranslationUnitImpl> TU,
 );
 
-typedef _c_clang_disposeCXTUResourceUsage = ffi.Void Function(
+typedef Native_clang_disposeCXTUResourceUsage = ffi.Void Function(
   CXTUResourceUsage usage,
 );
 
@@ -8210,8 +9611,8 @@
   CXTUResourceUsage usage,
 );
 
-typedef _c_clang_getTranslationUnitTargetInfo = ffi.Pointer<CXTargetInfoImpl>
-    Function(
+typedef Native_clang_getTranslationUnitTargetInfo
+    = ffi.Pointer<CXTargetInfoImpl> Function(
   ffi.Pointer<CXTranslationUnitImpl> CTUnit,
 );
 
@@ -8220,7 +9621,7 @@
   ffi.Pointer<CXTranslationUnitImpl> CTUnit,
 );
 
-typedef _c_clang_TargetInfo_dispose = ffi.Void Function(
+typedef Native_clang_TargetInfo_dispose = ffi.Void Function(
   ffi.Pointer<CXTargetInfoImpl> Info,
 );
 
@@ -8228,7 +9629,7 @@
   ffi.Pointer<CXTargetInfoImpl> Info,
 );
 
-typedef _c_clang_TargetInfo_getTriple = CXString Function(
+typedef Native_clang_TargetInfo_getTriple = CXString Function(
   ffi.Pointer<CXTargetInfoImpl> Info,
 );
 
@@ -8236,7 +9637,7 @@
   ffi.Pointer<CXTargetInfoImpl> Info,
 );
 
-typedef _c_clang_TargetInfo_getPointerWidth = ffi.Int32 Function(
+typedef Native_clang_TargetInfo_getPointerWidth = ffi.Int32 Function(
   ffi.Pointer<CXTargetInfoImpl> Info,
 );
 
@@ -8244,11 +9645,11 @@
   ffi.Pointer<CXTargetInfoImpl> Info,
 );
 
-typedef _c_clang_getNullCursor = CXCursor Function();
+typedef Native_clang_getNullCursor = CXCursor Function();
 
 typedef _dart_clang_getNullCursor = CXCursor Function();
 
-typedef _c_clang_getTranslationUnitCursor = CXCursor Function(
+typedef Native_clang_getTranslationUnitCursor = CXCursor Function(
   ffi.Pointer<CXTranslationUnitImpl> arg0,
 );
 
@@ -8256,7 +9657,7 @@
   ffi.Pointer<CXTranslationUnitImpl> arg0,
 );
 
-typedef _c_clang_equalCursors = ffi.Uint32 Function(
+typedef Native_clang_equalCursors = ffi.Uint32 Function(
   CXCursor arg0,
   CXCursor arg1,
 );
@@ -8266,7 +9667,7 @@
   CXCursor arg1,
 );
 
-typedef _c_clang_Cursor_isNull = ffi.Int32 Function(
+typedef Native_clang_Cursor_isNull = ffi.Int32 Function(
   CXCursor cursor,
 );
 
@@ -8274,7 +9675,7 @@
   CXCursor cursor,
 );
 
-typedef _c_clang_hashCursor = ffi.Uint32 Function(
+typedef Native_clang_hashCursor = ffi.Uint32 Function(
   CXCursor arg0,
 );
 
@@ -8282,7 +9683,7 @@
   CXCursor arg0,
 );
 
-typedef _c_clang_getCursorKind = ffi.Int32 Function(
+typedef Native_clang_getCursorKind = ffi.Int32 Function(
   CXCursor arg0,
 );
 
@@ -8290,7 +9691,7 @@
   CXCursor arg0,
 );
 
-typedef _c_clang_isDeclaration = ffi.Uint32 Function(
+typedef Native_clang_isDeclaration = ffi.Uint32 Function(
   ffi.Int32 arg0,
 );
 
@@ -8298,7 +9699,7 @@
   int arg0,
 );
 
-typedef _c_clang_isInvalidDeclaration = ffi.Uint32 Function(
+typedef Native_clang_isInvalidDeclaration = ffi.Uint32 Function(
   CXCursor arg0,
 );
 
@@ -8306,7 +9707,7 @@
   CXCursor arg0,
 );
 
-typedef _c_clang_isReference = ffi.Uint32 Function(
+typedef Native_clang_isReference = ffi.Uint32 Function(
   ffi.Int32 arg0,
 );
 
@@ -8314,7 +9715,7 @@
   int arg0,
 );
 
-typedef _c_clang_isExpression = ffi.Uint32 Function(
+typedef Native_clang_isExpression = ffi.Uint32 Function(
   ffi.Int32 arg0,
 );
 
@@ -8322,7 +9723,7 @@
   int arg0,
 );
 
-typedef _c_clang_isStatement = ffi.Uint32 Function(
+typedef Native_clang_isStatement = ffi.Uint32 Function(
   ffi.Int32 arg0,
 );
 
@@ -8330,7 +9731,7 @@
   int arg0,
 );
 
-typedef _c_clang_isAttribute = ffi.Uint32 Function(
+typedef Native_clang_isAttribute = ffi.Uint32 Function(
   ffi.Int32 arg0,
 );
 
@@ -8338,7 +9739,7 @@
   int arg0,
 );
 
-typedef _c_clang_Cursor_hasAttrs = ffi.Uint32 Function(
+typedef Native_clang_Cursor_hasAttrs = ffi.Uint32 Function(
   CXCursor C,
 );
 
@@ -8346,7 +9747,7 @@
   CXCursor C,
 );
 
-typedef _c_clang_isInvalid = ffi.Uint32 Function(
+typedef Native_clang_isInvalid = ffi.Uint32 Function(
   ffi.Int32 arg0,
 );
 
@@ -8354,7 +9755,7 @@
   int arg0,
 );
 
-typedef _c_clang_isTranslationUnit = ffi.Uint32 Function(
+typedef Native_clang_isTranslationUnit = ffi.Uint32 Function(
   ffi.Int32 arg0,
 );
 
@@ -8362,7 +9763,7 @@
   int arg0,
 );
 
-typedef _c_clang_isPreprocessing = ffi.Uint32 Function(
+typedef Native_clang_isPreprocessing = ffi.Uint32 Function(
   ffi.Int32 arg0,
 );
 
@@ -8370,7 +9771,7 @@
   int arg0,
 );
 
-typedef _c_clang_isUnexposed = ffi.Uint32 Function(
+typedef Native_clang_isUnexposed = ffi.Uint32 Function(
   ffi.Int32 arg0,
 );
 
@@ -8378,7 +9779,7 @@
   int arg0,
 );
 
-typedef _c_clang_getCursorLinkage = ffi.Int32 Function(
+typedef Native_clang_getCursorLinkage = ffi.Int32 Function(
   CXCursor cursor,
 );
 
@@ -8386,7 +9787,7 @@
   CXCursor cursor,
 );
 
-typedef _c_clang_getCursorVisibility = ffi.Int32 Function(
+typedef Native_clang_getCursorVisibility = ffi.Int32 Function(
   CXCursor cursor,
 );
 
@@ -8394,7 +9795,7 @@
   CXCursor cursor,
 );
 
-typedef _c_clang_getCursorAvailability = ffi.Int32 Function(
+typedef Native_clang_getCursorAvailability = ffi.Int32 Function(
   CXCursor cursor,
 );
 
@@ -8402,7 +9803,7 @@
   CXCursor cursor,
 );
 
-typedef _c_clang_getCursorPlatformAvailability = ffi.Int32 Function(
+typedef Native_clang_getCursorPlatformAvailability = ffi.Int32 Function(
   CXCursor cursor,
   ffi.Pointer<ffi.Int32> always_deprecated,
   ffi.Pointer<CXString> deprecated_message,
@@ -8422,7 +9823,7 @@
   int availability_size,
 );
 
-typedef _c_clang_disposeCXPlatformAvailability = ffi.Void Function(
+typedef Native_clang_disposeCXPlatformAvailability = ffi.Void Function(
   ffi.Pointer<CXPlatformAvailability> availability,
 );
 
@@ -8430,7 +9831,7 @@
   ffi.Pointer<CXPlatformAvailability> availability,
 );
 
-typedef _c_clang_getCursorLanguage = ffi.Int32 Function(
+typedef Native_clang_getCursorLanguage = ffi.Int32 Function(
   CXCursor cursor,
 );
 
@@ -8438,7 +9839,7 @@
   CXCursor cursor,
 );
 
-typedef _c_clang_getCursorTLSKind = ffi.Int32 Function(
+typedef Native_clang_getCursorTLSKind = ffi.Int32 Function(
   CXCursor cursor,
 );
 
@@ -8446,8 +9847,8 @@
   CXCursor cursor,
 );
 
-typedef _c_clang_Cursor_getTranslationUnit = ffi.Pointer<CXTranslationUnitImpl>
-    Function(
+typedef Native_clang_Cursor_getTranslationUnit
+    = ffi.Pointer<CXTranslationUnitImpl> Function(
   CXCursor arg0,
 );
 
@@ -8456,11 +9857,12 @@
   CXCursor arg0,
 );
 
-typedef _c_clang_createCXCursorSet = ffi.Pointer<CXCursorSetImpl> Function();
+typedef Native_clang_createCXCursorSet = ffi.Pointer<CXCursorSetImpl>
+    Function();
 
 typedef _dart_clang_createCXCursorSet = ffi.Pointer<CXCursorSetImpl> Function();
 
-typedef _c_clang_disposeCXCursorSet = ffi.Void Function(
+typedef Native_clang_disposeCXCursorSet = ffi.Void Function(
   ffi.Pointer<CXCursorSetImpl> cset,
 );
 
@@ -8468,7 +9870,7 @@
   ffi.Pointer<CXCursorSetImpl> cset,
 );
 
-typedef _c_clang_CXCursorSet_contains = ffi.Uint32 Function(
+typedef Native_clang_CXCursorSet_contains = ffi.Uint32 Function(
   ffi.Pointer<CXCursorSetImpl> cset,
   CXCursor cursor,
 );
@@ -8478,7 +9880,7 @@
   CXCursor cursor,
 );
 
-typedef _c_clang_CXCursorSet_insert = ffi.Uint32 Function(
+typedef Native_clang_CXCursorSet_insert = ffi.Uint32 Function(
   ffi.Pointer<CXCursorSetImpl> cset,
   CXCursor cursor,
 );
@@ -8488,7 +9890,7 @@
   CXCursor cursor,
 );
 
-typedef _c_clang_getCursorSemanticParent = CXCursor Function(
+typedef Native_clang_getCursorSemanticParent = CXCursor Function(
   CXCursor cursor,
 );
 
@@ -8496,7 +9898,7 @@
   CXCursor cursor,
 );
 
-typedef _c_clang_getCursorLexicalParent = CXCursor Function(
+typedef Native_clang_getCursorLexicalParent = CXCursor Function(
   CXCursor cursor,
 );
 
@@ -8504,7 +9906,7 @@
   CXCursor cursor,
 );
 
-typedef _c_clang_getOverriddenCursors = ffi.Void Function(
+typedef Native_clang_getOverriddenCursors = ffi.Void Function(
   CXCursor cursor,
   ffi.Pointer<ffi.Pointer<CXCursor>> overridden,
   ffi.Pointer<ffi.Uint32> num_overridden,
@@ -8516,7 +9918,7 @@
   ffi.Pointer<ffi.Uint32> num_overridden,
 );
 
-typedef _c_clang_disposeOverriddenCursors = ffi.Void Function(
+typedef Native_clang_disposeOverriddenCursors = ffi.Void Function(
   ffi.Pointer<CXCursor> overridden,
 );
 
@@ -8524,7 +9926,7 @@
   ffi.Pointer<CXCursor> overridden,
 );
 
-typedef _c_clang_getIncludedFile = ffi.Pointer<ffi.Void> Function(
+typedef Native_clang_getIncludedFile = ffi.Pointer<ffi.Void> Function(
   CXCursor cursor,
 );
 
@@ -8532,7 +9934,7 @@
   CXCursor cursor,
 );
 
-typedef _c_clang_getCursor = CXCursor Function(
+typedef Native_clang_getCursor = CXCursor Function(
   ffi.Pointer<CXTranslationUnitImpl> arg0,
   CXSourceLocation arg1,
 );
@@ -8542,7 +9944,7 @@
   CXSourceLocation arg1,
 );
 
-typedef _c_clang_getCursorLocation = CXSourceLocation Function(
+typedef Native_clang_getCursorLocation = CXSourceLocation Function(
   CXCursor arg0,
 );
 
@@ -8550,7 +9952,7 @@
   CXCursor arg0,
 );
 
-typedef _c_clang_getCursorExtent = CXSourceRange Function(
+typedef Native_clang_getCursorExtent = CXSourceRange Function(
   CXCursor arg0,
 );
 
@@ -8558,7 +9960,7 @@
   CXCursor arg0,
 );
 
-typedef _c_clang_getCursorType = CXType Function(
+typedef Native_clang_getCursorType = CXType Function(
   CXCursor C,
 );
 
@@ -8566,7 +9968,7 @@
   CXCursor C,
 );
 
-typedef _c_clang_getTypeSpelling = CXString Function(
+typedef Native_clang_getTypeSpelling = CXString Function(
   CXType CT,
 );
 
@@ -8574,7 +9976,7 @@
   CXType CT,
 );
 
-typedef _c_clang_getTypedefDeclUnderlyingType = CXType Function(
+typedef Native_clang_getTypedefDeclUnderlyingType = CXType Function(
   CXCursor C,
 );
 
@@ -8582,7 +9984,7 @@
   CXCursor C,
 );
 
-typedef _c_clang_getEnumDeclIntegerType = CXType Function(
+typedef Native_clang_getEnumDeclIntegerType = CXType Function(
   CXCursor C,
 );
 
@@ -8590,7 +9992,7 @@
   CXCursor C,
 );
 
-typedef _c_clang_getEnumConstantDeclValue = ffi.Int64 Function(
+typedef Native_clang_getEnumConstantDeclValue = ffi.Int64 Function(
   CXCursor C,
 );
 
@@ -8598,7 +10000,7 @@
   CXCursor C,
 );
 
-typedef _c_clang_getEnumConstantDeclUnsignedValue = ffi.Uint64 Function(
+typedef Native_clang_getEnumConstantDeclUnsignedValue = ffi.Uint64 Function(
   CXCursor C,
 );
 
@@ -8606,7 +10008,7 @@
   CXCursor C,
 );
 
-typedef _c_clang_getFieldDeclBitWidth = ffi.Int32 Function(
+typedef Native_clang_getFieldDeclBitWidth = ffi.Int32 Function(
   CXCursor C,
 );
 
@@ -8614,7 +10016,7 @@
   CXCursor C,
 );
 
-typedef _c_clang_Cursor_getNumArguments = ffi.Int32 Function(
+typedef Native_clang_Cursor_getNumArguments = ffi.Int32 Function(
   CXCursor C,
 );
 
@@ -8622,7 +10024,7 @@
   CXCursor C,
 );
 
-typedef _c_clang_Cursor_getArgument = CXCursor Function(
+typedef Native_clang_Cursor_getArgument = CXCursor Function(
   CXCursor C,
   ffi.Uint32 i,
 );
@@ -8632,7 +10034,7 @@
   int i,
 );
 
-typedef _c_clang_Cursor_getNumTemplateArguments = ffi.Int32 Function(
+typedef Native_clang_Cursor_getNumTemplateArguments = ffi.Int32 Function(
   CXCursor C,
 );
 
@@ -8640,7 +10042,7 @@
   CXCursor C,
 );
 
-typedef _c_clang_Cursor_getTemplateArgumentKind = ffi.Int32 Function(
+typedef Native_clang_Cursor_getTemplateArgumentKind = ffi.Int32 Function(
   CXCursor C,
   ffi.Uint32 I,
 );
@@ -8650,7 +10052,7 @@
   int I,
 );
 
-typedef _c_clang_Cursor_getTemplateArgumentType = CXType Function(
+typedef Native_clang_Cursor_getTemplateArgumentType = CXType Function(
   CXCursor C,
   ffi.Uint32 I,
 );
@@ -8660,7 +10062,7 @@
   int I,
 );
 
-typedef _c_clang_Cursor_getTemplateArgumentValue = ffi.Int64 Function(
+typedef Native_clang_Cursor_getTemplateArgumentValue = ffi.Int64 Function(
   CXCursor C,
   ffi.Uint32 I,
 );
@@ -8670,7 +10072,8 @@
   int I,
 );
 
-typedef _c_clang_Cursor_getTemplateArgumentUnsignedValue = ffi.Uint64 Function(
+typedef Native_clang_Cursor_getTemplateArgumentUnsignedValue = ffi.Uint64
+    Function(
   CXCursor C,
   ffi.Uint32 I,
 );
@@ -8680,7 +10083,7 @@
   int I,
 );
 
-typedef _c_clang_equalTypes = ffi.Uint32 Function(
+typedef Native_clang_equalTypes = ffi.Uint32 Function(
   CXType A,
   CXType B,
 );
@@ -8690,7 +10093,7 @@
   CXType B,
 );
 
-typedef _c_clang_getCanonicalType = CXType Function(
+typedef Native_clang_getCanonicalType = CXType Function(
   CXType T,
 );
 
@@ -8698,7 +10101,7 @@
   CXType T,
 );
 
-typedef _c_clang_isConstQualifiedType = ffi.Uint32 Function(
+typedef Native_clang_isConstQualifiedType = ffi.Uint32 Function(
   CXType T,
 );
 
@@ -8706,7 +10109,7 @@
   CXType T,
 );
 
-typedef _c_clang_Cursor_isMacroFunctionLike = ffi.Uint32 Function(
+typedef Native_clang_Cursor_isMacroFunctionLike = ffi.Uint32 Function(
   CXCursor C,
 );
 
@@ -8714,7 +10117,7 @@
   CXCursor C,
 );
 
-typedef _c_clang_Cursor_isMacroBuiltin = ffi.Uint32 Function(
+typedef Native_clang_Cursor_isMacroBuiltin = ffi.Uint32 Function(
   CXCursor C,
 );
 
@@ -8722,7 +10125,7 @@
   CXCursor C,
 );
 
-typedef _c_clang_Cursor_isFunctionInlined = ffi.Uint32 Function(
+typedef Native_clang_Cursor_isFunctionInlined = ffi.Uint32 Function(
   CXCursor C,
 );
 
@@ -8730,7 +10133,7 @@
   CXCursor C,
 );
 
-typedef _c_clang_isVolatileQualifiedType = ffi.Uint32 Function(
+typedef Native_clang_isVolatileQualifiedType = ffi.Uint32 Function(
   CXType T,
 );
 
@@ -8738,7 +10141,7 @@
   CXType T,
 );
 
-typedef _c_clang_isRestrictQualifiedType = ffi.Uint32 Function(
+typedef Native_clang_isRestrictQualifiedType = ffi.Uint32 Function(
   CXType T,
 );
 
@@ -8746,7 +10149,7 @@
   CXType T,
 );
 
-typedef _c_clang_getAddressSpace = ffi.Uint32 Function(
+typedef Native_clang_getAddressSpace = ffi.Uint32 Function(
   CXType T,
 );
 
@@ -8754,7 +10157,7 @@
   CXType T,
 );
 
-typedef _c_clang_getTypedefName = CXString Function(
+typedef Native_clang_getTypedefName = CXString Function(
   CXType CT,
 );
 
@@ -8762,7 +10165,7 @@
   CXType CT,
 );
 
-typedef _c_clang_getPointeeType = CXType Function(
+typedef Native_clang_getPointeeType = CXType Function(
   CXType T,
 );
 
@@ -8770,7 +10173,7 @@
   CXType T,
 );
 
-typedef _c_clang_getTypeDeclaration = CXCursor Function(
+typedef Native_clang_getTypeDeclaration = CXCursor Function(
   CXType T,
 );
 
@@ -8778,7 +10181,7 @@
   CXType T,
 );
 
-typedef _c_clang_getDeclObjCTypeEncoding = CXString Function(
+typedef Native_clang_getDeclObjCTypeEncoding = CXString Function(
   CXCursor C,
 );
 
@@ -8786,7 +10189,7 @@
   CXCursor C,
 );
 
-typedef _c_clang_Type_getObjCEncoding = CXString Function(
+typedef Native_clang_Type_getObjCEncoding = CXString Function(
   CXType type,
 );
 
@@ -8794,7 +10197,7 @@
   CXType type,
 );
 
-typedef _c_clang_getTypeKindSpelling = CXString Function(
+typedef Native_clang_getTypeKindSpelling = CXString Function(
   ffi.Int32 K,
 );
 
@@ -8802,7 +10205,7 @@
   int K,
 );
 
-typedef _c_clang_getFunctionTypeCallingConv = ffi.Int32 Function(
+typedef Native_clang_getFunctionTypeCallingConv = ffi.Int32 Function(
   CXType T,
 );
 
@@ -8810,7 +10213,7 @@
   CXType T,
 );
 
-typedef _c_clang_getResultType = CXType Function(
+typedef Native_clang_getResultType = CXType Function(
   CXType T,
 );
 
@@ -8818,7 +10221,7 @@
   CXType T,
 );
 
-typedef _c_clang_getExceptionSpecificationType = ffi.Int32 Function(
+typedef Native_clang_getExceptionSpecificationType = ffi.Int32 Function(
   CXType T,
 );
 
@@ -8826,7 +10229,7 @@
   CXType T,
 );
 
-typedef _c_clang_getNumArgTypes = ffi.Int32 Function(
+typedef Native_clang_getNumArgTypes = ffi.Int32 Function(
   CXType T,
 );
 
@@ -8834,7 +10237,7 @@
   CXType T,
 );
 
-typedef _c_clang_getArgType = CXType Function(
+typedef Native_clang_getArgType = CXType Function(
   CXType T,
   ffi.Uint32 i,
 );
@@ -8844,7 +10247,7 @@
   int i,
 );
 
-typedef _c_clang_Type_getObjCObjectBaseType = CXType Function(
+typedef Native_clang_Type_getObjCObjectBaseType = CXType Function(
   CXType T,
 );
 
@@ -8852,7 +10255,7 @@
   CXType T,
 );
 
-typedef _c_clang_Type_getNumObjCProtocolRefs = ffi.Uint32 Function(
+typedef Native_clang_Type_getNumObjCProtocolRefs = ffi.Uint32 Function(
   CXType T,
 );
 
@@ -8860,7 +10263,7 @@
   CXType T,
 );
 
-typedef _c_clang_Type_getObjCProtocolDecl = CXCursor Function(
+typedef Native_clang_Type_getObjCProtocolDecl = CXCursor Function(
   CXType T,
   ffi.Uint32 i,
 );
@@ -8870,7 +10273,7 @@
   int i,
 );
 
-typedef _c_clang_Type_getNumObjCTypeArgs = ffi.Uint32 Function(
+typedef Native_clang_Type_getNumObjCTypeArgs = ffi.Uint32 Function(
   CXType T,
 );
 
@@ -8878,7 +10281,7 @@
   CXType T,
 );
 
-typedef _c_clang_Type_getObjCTypeArg = CXType Function(
+typedef Native_clang_Type_getObjCTypeArg = CXType Function(
   CXType T,
   ffi.Uint32 i,
 );
@@ -8888,7 +10291,7 @@
   int i,
 );
 
-typedef _c_clang_isFunctionTypeVariadic = ffi.Uint32 Function(
+typedef Native_clang_isFunctionTypeVariadic = ffi.Uint32 Function(
   CXType T,
 );
 
@@ -8896,7 +10299,7 @@
   CXType T,
 );
 
-typedef _c_clang_getCursorResultType = CXType Function(
+typedef Native_clang_getCursorResultType = CXType Function(
   CXCursor C,
 );
 
@@ -8904,7 +10307,7 @@
   CXCursor C,
 );
 
-typedef _c_clang_getCursorExceptionSpecificationType = ffi.Int32 Function(
+typedef Native_clang_getCursorExceptionSpecificationType = ffi.Int32 Function(
   CXCursor C,
 );
 
@@ -8912,7 +10315,7 @@
   CXCursor C,
 );
 
-typedef _c_clang_isPODType = ffi.Uint32 Function(
+typedef Native_clang_isPODType = ffi.Uint32 Function(
   CXType T,
 );
 
@@ -8920,7 +10323,7 @@
   CXType T,
 );
 
-typedef _c_clang_getElementType = CXType Function(
+typedef Native_clang_getElementType = CXType Function(
   CXType T,
 );
 
@@ -8928,7 +10331,7 @@
   CXType T,
 );
 
-typedef _c_clang_getNumElements = ffi.Int64 Function(
+typedef Native_clang_getNumElements = ffi.Int64 Function(
   CXType T,
 );
 
@@ -8936,7 +10339,7 @@
   CXType T,
 );
 
-typedef _c_clang_getArrayElementType = CXType Function(
+typedef Native_clang_getArrayElementType = CXType Function(
   CXType T,
 );
 
@@ -8944,7 +10347,7 @@
   CXType T,
 );
 
-typedef _c_clang_getArraySize = ffi.Int64 Function(
+typedef Native_clang_getArraySize = ffi.Int64 Function(
   CXType T,
 );
 
@@ -8952,7 +10355,7 @@
   CXType T,
 );
 
-typedef _c_clang_Type_getNamedType = CXType Function(
+typedef Native_clang_Type_getNamedType = CXType Function(
   CXType T,
 );
 
@@ -8960,7 +10363,7 @@
   CXType T,
 );
 
-typedef _c_clang_Type_isTransparentTagTypedef = ffi.Uint32 Function(
+typedef Native_clang_Type_isTransparentTagTypedef = ffi.Uint32 Function(
   CXType T,
 );
 
@@ -8968,7 +10371,7 @@
   CXType T,
 );
 
-typedef _c_clang_Type_getNullability = ffi.Int32 Function(
+typedef Native_clang_Type_getNullability = ffi.Int32 Function(
   CXType T,
 );
 
@@ -8976,7 +10379,7 @@
   CXType T,
 );
 
-typedef _c_clang_Type_getAlignOf = ffi.Int64 Function(
+typedef Native_clang_Type_getAlignOf = ffi.Int64 Function(
   CXType T,
 );
 
@@ -8984,7 +10387,7 @@
   CXType T,
 );
 
-typedef _c_clang_Type_getClassType = CXType Function(
+typedef Native_clang_Type_getClassType = CXType Function(
   CXType T,
 );
 
@@ -8992,7 +10395,7 @@
   CXType T,
 );
 
-typedef _c_clang_Type_getSizeOf = ffi.Int64 Function(
+typedef Native_clang_Type_getSizeOf = ffi.Int64 Function(
   CXType T,
 );
 
@@ -9000,7 +10403,7 @@
   CXType T,
 );
 
-typedef _c_clang_Type_getOffsetOf = ffi.Int64 Function(
+typedef Native_clang_Type_getOffsetOf = ffi.Int64 Function(
   CXType T,
   ffi.Pointer<ffi.Int8> S,
 );
@@ -9010,7 +10413,7 @@
   ffi.Pointer<ffi.Int8> S,
 );
 
-typedef _c_clang_Type_getModifiedType = CXType Function(
+typedef Native_clang_Type_getModifiedType = CXType Function(
   CXType T,
 );
 
@@ -9018,7 +10421,7 @@
   CXType T,
 );
 
-typedef _c_clang_Cursor_getOffsetOfField = ffi.Int64 Function(
+typedef Native_clang_Cursor_getOffsetOfField = ffi.Int64 Function(
   CXCursor C,
 );
 
@@ -9026,7 +10429,7 @@
   CXCursor C,
 );
 
-typedef _c_clang_Cursor_isAnonymous = ffi.Uint32 Function(
+typedef Native_clang_Cursor_isAnonymous = ffi.Uint32 Function(
   CXCursor C,
 );
 
@@ -9034,7 +10437,7 @@
   CXCursor C,
 );
 
-typedef _c_clang_Cursor_isAnonymousRecordDecl = ffi.Uint32 Function(
+typedef Native_clang_Cursor_isAnonymousRecordDecl = ffi.Uint32 Function(
   CXCursor C,
 );
 
@@ -9042,7 +10445,7 @@
   CXCursor C,
 );
 
-typedef _c_clang_Cursor_isInlineNamespace = ffi.Uint32 Function(
+typedef Native_clang_Cursor_isInlineNamespace = ffi.Uint32 Function(
   CXCursor C,
 );
 
@@ -9050,7 +10453,7 @@
   CXCursor C,
 );
 
-typedef _c_clang_Type_getNumTemplateArguments = ffi.Int32 Function(
+typedef Native_clang_Type_getNumTemplateArguments = ffi.Int32 Function(
   CXType T,
 );
 
@@ -9058,7 +10461,7 @@
   CXType T,
 );
 
-typedef _c_clang_Type_getTemplateArgumentAsType = CXType Function(
+typedef Native_clang_Type_getTemplateArgumentAsType = CXType Function(
   CXType T,
   ffi.Uint32 i,
 );
@@ -9068,7 +10471,7 @@
   int i,
 );
 
-typedef _c_clang_Type_getCXXRefQualifier = ffi.Int32 Function(
+typedef Native_clang_Type_getCXXRefQualifier = ffi.Int32 Function(
   CXType T,
 );
 
@@ -9076,7 +10479,7 @@
   CXType T,
 );
 
-typedef _c_clang_Cursor_isBitField = ffi.Uint32 Function(
+typedef Native_clang_Cursor_isBitField = ffi.Uint32 Function(
   CXCursor C,
 );
 
@@ -9084,7 +10487,7 @@
   CXCursor C,
 );
 
-typedef _c_clang_isVirtualBase = ffi.Uint32 Function(
+typedef Native_clang_isVirtualBase = ffi.Uint32 Function(
   CXCursor arg0,
 );
 
@@ -9092,7 +10495,7 @@
   CXCursor arg0,
 );
 
-typedef _c_clang_getCXXAccessSpecifier = ffi.Int32 Function(
+typedef Native_clang_getCXXAccessSpecifier = ffi.Int32 Function(
   CXCursor arg0,
 );
 
@@ -9100,7 +10503,7 @@
   CXCursor arg0,
 );
 
-typedef _c_clang_Cursor_getStorageClass = ffi.Int32 Function(
+typedef Native_clang_Cursor_getStorageClass = ffi.Int32 Function(
   CXCursor arg0,
 );
 
@@ -9108,7 +10511,7 @@
   CXCursor arg0,
 );
 
-typedef _c_clang_getNumOverloadedDecls = ffi.Uint32 Function(
+typedef Native_clang_getNumOverloadedDecls = ffi.Uint32 Function(
   CXCursor cursor,
 );
 
@@ -9116,7 +10519,7 @@
   CXCursor cursor,
 );
 
-typedef _c_clang_getOverloadedDecl = CXCursor Function(
+typedef Native_clang_getOverloadedDecl = CXCursor Function(
   CXCursor cursor,
   ffi.Uint32 index,
 );
@@ -9126,7 +10529,7 @@
   int index,
 );
 
-typedef _c_clang_getIBOutletCollectionType = CXType Function(
+typedef Native_clang_getIBOutletCollectionType = CXType Function(
   CXCursor arg0,
 );
 
@@ -9140,7 +10543,7 @@
   ffi.Pointer<ffi.Void>,
 );
 
-typedef _c_clang_visitChildren = ffi.Uint32 Function(
+typedef Native_clang_visitChildren = ffi.Uint32 Function(
   CXCursor parent,
   ffi.Pointer<ffi.NativeFunction<CXCursorVisitor>> visitor,
   ffi.Pointer<ffi.Void> client_data,
@@ -9152,7 +10555,7 @@
   ffi.Pointer<ffi.Void> client_data,
 );
 
-typedef _c_clang_getCursorUSR = CXString Function(
+typedef Native_clang_getCursorUSR = CXString Function(
   CXCursor arg0,
 );
 
@@ -9160,7 +10563,7 @@
   CXCursor arg0,
 );
 
-typedef _c_clang_constructUSR_ObjCClass = CXString Function(
+typedef Native_clang_constructUSR_ObjCClass = CXString Function(
   ffi.Pointer<ffi.Int8> class_name,
 );
 
@@ -9168,7 +10571,7 @@
   ffi.Pointer<ffi.Int8> class_name,
 );
 
-typedef _c_clang_constructUSR_ObjCCategory = CXString Function(
+typedef Native_clang_constructUSR_ObjCCategory = CXString Function(
   ffi.Pointer<ffi.Int8> class_name,
   ffi.Pointer<ffi.Int8> category_name,
 );
@@ -9178,7 +10581,7 @@
   ffi.Pointer<ffi.Int8> category_name,
 );
 
-typedef _c_clang_constructUSR_ObjCProtocol = CXString Function(
+typedef Native_clang_constructUSR_ObjCProtocol = CXString Function(
   ffi.Pointer<ffi.Int8> protocol_name,
 );
 
@@ -9186,7 +10589,7 @@
   ffi.Pointer<ffi.Int8> protocol_name,
 );
 
-typedef _c_clang_constructUSR_ObjCIvar = CXString Function(
+typedef Native_clang_constructUSR_ObjCIvar = CXString Function(
   ffi.Pointer<ffi.Int8> name,
   CXString classUSR,
 );
@@ -9196,7 +10599,7 @@
   CXString classUSR,
 );
 
-typedef _c_clang_constructUSR_ObjCMethod = CXString Function(
+typedef Native_clang_constructUSR_ObjCMethod = CXString Function(
   ffi.Pointer<ffi.Int8> name,
   ffi.Uint32 isInstanceMethod,
   CXString classUSR,
@@ -9208,7 +10611,7 @@
   CXString classUSR,
 );
 
-typedef _c_clang_constructUSR_ObjCProperty = CXString Function(
+typedef Native_clang_constructUSR_ObjCProperty = CXString Function(
   ffi.Pointer<ffi.Int8> property,
   CXString classUSR,
 );
@@ -9218,7 +10621,7 @@
   CXString classUSR,
 );
 
-typedef _c_clang_getCursorSpelling = CXString Function(
+typedef Native_clang_getCursorSpelling = CXString Function(
   CXCursor arg0,
 );
 
@@ -9226,7 +10629,7 @@
   CXCursor arg0,
 );
 
-typedef _c_clang_Cursor_getSpellingNameRange = CXSourceRange Function(
+typedef Native_clang_Cursor_getSpellingNameRange = CXSourceRange Function(
   CXCursor arg0,
   ffi.Uint32 pieceIndex,
   ffi.Uint32 options,
@@ -9238,7 +10641,7 @@
   int options,
 );
 
-typedef _c_clang_PrintingPolicy_getProperty = ffi.Uint32 Function(
+typedef Native_clang_PrintingPolicy_getProperty = ffi.Uint32 Function(
   ffi.Pointer<ffi.Void> Policy,
   ffi.Int32 Property,
 );
@@ -9248,7 +10651,7 @@
   int Property,
 );
 
-typedef _c_clang_PrintingPolicy_setProperty = ffi.Void Function(
+typedef Native_clang_PrintingPolicy_setProperty = ffi.Void Function(
   ffi.Pointer<ffi.Void> Policy,
   ffi.Int32 Property,
   ffi.Uint32 Value,
@@ -9260,7 +10663,7 @@
   int Value,
 );
 
-typedef _c_clang_getCursorPrintingPolicy = ffi.Pointer<ffi.Void> Function(
+typedef Native_clang_getCursorPrintingPolicy = ffi.Pointer<ffi.Void> Function(
   CXCursor arg0,
 );
 
@@ -9268,7 +10671,7 @@
   CXCursor arg0,
 );
 
-typedef _c_clang_PrintingPolicy_dispose = ffi.Void Function(
+typedef Native_clang_PrintingPolicy_dispose = ffi.Void Function(
   ffi.Pointer<ffi.Void> Policy,
 );
 
@@ -9276,7 +10679,7 @@
   ffi.Pointer<ffi.Void> Policy,
 );
 
-typedef _c_clang_getCursorPrettyPrinted = CXString Function(
+typedef Native_clang_getCursorPrettyPrinted = CXString Function(
   CXCursor Cursor,
   ffi.Pointer<ffi.Void> Policy,
 );
@@ -9286,7 +10689,7 @@
   ffi.Pointer<ffi.Void> Policy,
 );
 
-typedef _c_clang_getCursorDisplayName = CXString Function(
+typedef Native_clang_getCursorDisplayName = CXString Function(
   CXCursor arg0,
 );
 
@@ -9294,7 +10697,7 @@
   CXCursor arg0,
 );
 
-typedef _c_clang_getCursorReferenced = CXCursor Function(
+typedef Native_clang_getCursorReferenced = CXCursor Function(
   CXCursor arg0,
 );
 
@@ -9302,7 +10705,7 @@
   CXCursor arg0,
 );
 
-typedef _c_clang_getCursorDefinition = CXCursor Function(
+typedef Native_clang_getCursorDefinition = CXCursor Function(
   CXCursor arg0,
 );
 
@@ -9310,7 +10713,7 @@
   CXCursor arg0,
 );
 
-typedef _c_clang_isCursorDefinition = ffi.Uint32 Function(
+typedef Native_clang_isCursorDefinition = ffi.Uint32 Function(
   CXCursor arg0,
 );
 
@@ -9318,7 +10721,7 @@
   CXCursor arg0,
 );
 
-typedef _c_clang_getCanonicalCursor = CXCursor Function(
+typedef Native_clang_getCanonicalCursor = CXCursor Function(
   CXCursor arg0,
 );
 
@@ -9326,7 +10729,7 @@
   CXCursor arg0,
 );
 
-typedef _c_clang_Cursor_getObjCSelectorIndex = ffi.Int32 Function(
+typedef Native_clang_Cursor_getObjCSelectorIndex = ffi.Int32 Function(
   CXCursor arg0,
 );
 
@@ -9334,7 +10737,7 @@
   CXCursor arg0,
 );
 
-typedef _c_clang_Cursor_isDynamicCall = ffi.Int32 Function(
+typedef Native_clang_Cursor_isDynamicCall = ffi.Int32 Function(
   CXCursor C,
 );
 
@@ -9342,7 +10745,7 @@
   CXCursor C,
 );
 
-typedef _c_clang_Cursor_getReceiverType = CXType Function(
+typedef Native_clang_Cursor_getReceiverType = CXType Function(
   CXCursor C,
 );
 
@@ -9350,7 +10753,7 @@
   CXCursor C,
 );
 
-typedef _c_clang_Cursor_getObjCPropertyAttributes = ffi.Uint32 Function(
+typedef Native_clang_Cursor_getObjCPropertyAttributes = ffi.Uint32 Function(
   CXCursor C,
   ffi.Uint32 reserved,
 );
@@ -9360,7 +10763,7 @@
   int reserved,
 );
 
-typedef _c_clang_Cursor_getObjCPropertyGetterName = CXString Function(
+typedef Native_clang_Cursor_getObjCPropertyGetterName = CXString Function(
   CXCursor C,
 );
 
@@ -9368,7 +10771,7 @@
   CXCursor C,
 );
 
-typedef _c_clang_Cursor_getObjCPropertySetterName = CXString Function(
+typedef Native_clang_Cursor_getObjCPropertySetterName = CXString Function(
   CXCursor C,
 );
 
@@ -9376,7 +10779,7 @@
   CXCursor C,
 );
 
-typedef _c_clang_Cursor_getObjCDeclQualifiers = ffi.Uint32 Function(
+typedef Native_clang_Cursor_getObjCDeclQualifiers = ffi.Uint32 Function(
   CXCursor C,
 );
 
@@ -9384,7 +10787,7 @@
   CXCursor C,
 );
 
-typedef _c_clang_Cursor_isObjCOptional = ffi.Uint32 Function(
+typedef Native_clang_Cursor_isObjCOptional = ffi.Uint32 Function(
   CXCursor C,
 );
 
@@ -9392,7 +10795,7 @@
   CXCursor C,
 );
 
-typedef _c_clang_Cursor_isVariadic = ffi.Uint32 Function(
+typedef Native_clang_Cursor_isVariadic = ffi.Uint32 Function(
   CXCursor C,
 );
 
@@ -9400,7 +10803,7 @@
   CXCursor C,
 );
 
-typedef _c_clang_Cursor_isExternalSymbol = ffi.Uint32 Function(
+typedef Native_clang_Cursor_isExternalSymbol = ffi.Uint32 Function(
   CXCursor C,
   ffi.Pointer<CXString> language,
   ffi.Pointer<CXString> definedIn,
@@ -9414,7 +10817,7 @@
   ffi.Pointer<ffi.Uint32> isGenerated,
 );
 
-typedef _c_clang_Cursor_getCommentRange = CXSourceRange Function(
+typedef Native_clang_Cursor_getCommentRange = CXSourceRange Function(
   CXCursor C,
 );
 
@@ -9422,7 +10825,7 @@
   CXCursor C,
 );
 
-typedef _c_clang_Cursor_getRawCommentText = CXString Function(
+typedef Native_clang_Cursor_getRawCommentText = CXString Function(
   CXCursor C,
 );
 
@@ -9430,7 +10833,7 @@
   CXCursor C,
 );
 
-typedef _c_clang_Cursor_getBriefCommentText = CXString Function(
+typedef Native_clang_Cursor_getBriefCommentText = CXString Function(
   CXCursor C,
 );
 
@@ -9438,7 +10841,7 @@
   CXCursor C,
 );
 
-typedef _c_clang_Cursor_getMangling = CXString Function(
+typedef Native_clang_Cursor_getMangling = CXString Function(
   CXCursor arg0,
 );
 
@@ -9446,7 +10849,7 @@
   CXCursor arg0,
 );
 
-typedef _c_clang_Cursor_getCXXManglings = ffi.Pointer<CXStringSet> Function(
+typedef Native_clang_Cursor_getCXXManglings = ffi.Pointer<CXStringSet> Function(
   CXCursor arg0,
 );
 
@@ -9454,7 +10857,8 @@
   CXCursor arg0,
 );
 
-typedef _c_clang_Cursor_getObjCManglings = ffi.Pointer<CXStringSet> Function(
+typedef Native_clang_Cursor_getObjCManglings = ffi.Pointer<CXStringSet>
+    Function(
   CXCursor arg0,
 );
 
@@ -9462,7 +10866,7 @@
   CXCursor arg0,
 );
 
-typedef _c_clang_Cursor_getModule = ffi.Pointer<ffi.Void> Function(
+typedef Native_clang_Cursor_getModule = ffi.Pointer<ffi.Void> Function(
   CXCursor C,
 );
 
@@ -9470,7 +10874,7 @@
   CXCursor C,
 );
 
-typedef _c_clang_getModuleForFile = ffi.Pointer<ffi.Void> Function(
+typedef Native_clang_getModuleForFile = ffi.Pointer<ffi.Void> Function(
   ffi.Pointer<CXTranslationUnitImpl> arg0,
   ffi.Pointer<ffi.Void> arg1,
 );
@@ -9480,7 +10884,7 @@
   ffi.Pointer<ffi.Void> arg1,
 );
 
-typedef _c_clang_Module_getASTFile = ffi.Pointer<ffi.Void> Function(
+typedef Native_clang_Module_getASTFile = ffi.Pointer<ffi.Void> Function(
   ffi.Pointer<ffi.Void> Module,
 );
 
@@ -9488,7 +10892,7 @@
   ffi.Pointer<ffi.Void> Module,
 );
 
-typedef _c_clang_Module_getParent = ffi.Pointer<ffi.Void> Function(
+typedef Native_clang_Module_getParent = ffi.Pointer<ffi.Void> Function(
   ffi.Pointer<ffi.Void> Module,
 );
 
@@ -9496,7 +10900,7 @@
   ffi.Pointer<ffi.Void> Module,
 );
 
-typedef _c_clang_Module_getName = CXString Function(
+typedef Native_clang_Module_getName = CXString Function(
   ffi.Pointer<ffi.Void> Module,
 );
 
@@ -9504,7 +10908,7 @@
   ffi.Pointer<ffi.Void> Module,
 );
 
-typedef _c_clang_Module_getFullName = CXString Function(
+typedef Native_clang_Module_getFullName = CXString Function(
   ffi.Pointer<ffi.Void> Module,
 );
 
@@ -9512,7 +10916,7 @@
   ffi.Pointer<ffi.Void> Module,
 );
 
-typedef _c_clang_Module_isSystem = ffi.Int32 Function(
+typedef Native_clang_Module_isSystem = ffi.Int32 Function(
   ffi.Pointer<ffi.Void> Module,
 );
 
@@ -9520,7 +10924,7 @@
   ffi.Pointer<ffi.Void> Module,
 );
 
-typedef _c_clang_Module_getNumTopLevelHeaders = ffi.Uint32 Function(
+typedef Native_clang_Module_getNumTopLevelHeaders = ffi.Uint32 Function(
   ffi.Pointer<CXTranslationUnitImpl> arg0,
   ffi.Pointer<ffi.Void> Module,
 );
@@ -9530,7 +10934,7 @@
   ffi.Pointer<ffi.Void> Module,
 );
 
-typedef _c_clang_Module_getTopLevelHeader = ffi.Pointer<ffi.Void> Function(
+typedef Native_clang_Module_getTopLevelHeader = ffi.Pointer<ffi.Void> Function(
   ffi.Pointer<CXTranslationUnitImpl> arg0,
   ffi.Pointer<ffi.Void> Module,
   ffi.Uint32 Index,
@@ -9542,7 +10946,8 @@
   int Index,
 );
 
-typedef _c_clang_CXXConstructor_isConvertingConstructor = ffi.Uint32 Function(
+typedef Native_clang_CXXConstructor_isConvertingConstructor = ffi.Uint32
+    Function(
   CXCursor C,
 );
 
@@ -9550,7 +10955,7 @@
   CXCursor C,
 );
 
-typedef _c_clang_CXXConstructor_isCopyConstructor = ffi.Uint32 Function(
+typedef Native_clang_CXXConstructor_isCopyConstructor = ffi.Uint32 Function(
   CXCursor C,
 );
 
@@ -9558,7 +10963,7 @@
   CXCursor C,
 );
 
-typedef _c_clang_CXXConstructor_isDefaultConstructor = ffi.Uint32 Function(
+typedef Native_clang_CXXConstructor_isDefaultConstructor = ffi.Uint32 Function(
   CXCursor C,
 );
 
@@ -9566,7 +10971,7 @@
   CXCursor C,
 );
 
-typedef _c_clang_CXXConstructor_isMoveConstructor = ffi.Uint32 Function(
+typedef Native_clang_CXXConstructor_isMoveConstructor = ffi.Uint32 Function(
   CXCursor C,
 );
 
@@ -9574,7 +10979,7 @@
   CXCursor C,
 );
 
-typedef _c_clang_CXXField_isMutable = ffi.Uint32 Function(
+typedef Native_clang_CXXField_isMutable = ffi.Uint32 Function(
   CXCursor C,
 );
 
@@ -9582,7 +10987,7 @@
   CXCursor C,
 );
 
-typedef _c_clang_CXXMethod_isDefaulted = ffi.Uint32 Function(
+typedef Native_clang_CXXMethod_isDefaulted = ffi.Uint32 Function(
   CXCursor C,
 );
 
@@ -9590,7 +10995,7 @@
   CXCursor C,
 );
 
-typedef _c_clang_CXXMethod_isPureVirtual = ffi.Uint32 Function(
+typedef Native_clang_CXXMethod_isPureVirtual = ffi.Uint32 Function(
   CXCursor C,
 );
 
@@ -9598,7 +11003,7 @@
   CXCursor C,
 );
 
-typedef _c_clang_CXXMethod_isStatic = ffi.Uint32 Function(
+typedef Native_clang_CXXMethod_isStatic = ffi.Uint32 Function(
   CXCursor C,
 );
 
@@ -9606,7 +11011,7 @@
   CXCursor C,
 );
 
-typedef _c_clang_CXXMethod_isVirtual = ffi.Uint32 Function(
+typedef Native_clang_CXXMethod_isVirtual = ffi.Uint32 Function(
   CXCursor C,
 );
 
@@ -9614,7 +11019,7 @@
   CXCursor C,
 );
 
-typedef _c_clang_CXXRecord_isAbstract = ffi.Uint32 Function(
+typedef Native_clang_CXXRecord_isAbstract = ffi.Uint32 Function(
   CXCursor C,
 );
 
@@ -9622,7 +11027,7 @@
   CXCursor C,
 );
 
-typedef _c_clang_EnumDecl_isScoped = ffi.Uint32 Function(
+typedef Native_clang_EnumDecl_isScoped = ffi.Uint32 Function(
   CXCursor C,
 );
 
@@ -9630,7 +11035,7 @@
   CXCursor C,
 );
 
-typedef _c_clang_CXXMethod_isConst = ffi.Uint32 Function(
+typedef Native_clang_CXXMethod_isConst = ffi.Uint32 Function(
   CXCursor C,
 );
 
@@ -9638,7 +11043,7 @@
   CXCursor C,
 );
 
-typedef _c_clang_getTemplateCursorKind = ffi.Int32 Function(
+typedef Native_clang_getTemplateCursorKind = ffi.Int32 Function(
   CXCursor C,
 );
 
@@ -9646,7 +11051,7 @@
   CXCursor C,
 );
 
-typedef _c_clang_getSpecializedCursorTemplate = CXCursor Function(
+typedef Native_clang_getSpecializedCursorTemplate = CXCursor Function(
   CXCursor C,
 );
 
@@ -9654,7 +11059,7 @@
   CXCursor C,
 );
 
-typedef _c_clang_getCursorReferenceNameRange = CXSourceRange Function(
+typedef Native_clang_getCursorReferenceNameRange = CXSourceRange Function(
   CXCursor C,
   ffi.Uint32 NameFlags,
   ffi.Uint32 PieceIndex,
@@ -9666,7 +11071,7 @@
   int PieceIndex,
 );
 
-typedef _c_clang_getToken = ffi.Pointer<CXToken> Function(
+typedef Native_clang_getToken = ffi.Pointer<CXToken> Function(
   ffi.Pointer<CXTranslationUnitImpl> TU,
   CXSourceLocation Location,
 );
@@ -9676,7 +11081,7 @@
   CXSourceLocation Location,
 );
 
-typedef _c_clang_getTokenKind = ffi.Int32 Function(
+typedef Native_clang_getTokenKind = ffi.Int32 Function(
   CXToken arg0,
 );
 
@@ -9684,7 +11089,7 @@
   CXToken arg0,
 );
 
-typedef _c_clang_getTokenSpelling = CXString Function(
+typedef Native_clang_getTokenSpelling = CXString Function(
   ffi.Pointer<CXTranslationUnitImpl> arg0,
   CXToken arg1,
 );
@@ -9694,7 +11099,7 @@
   CXToken arg1,
 );
 
-typedef _c_clang_getTokenLocation = CXSourceLocation Function(
+typedef Native_clang_getTokenLocation = CXSourceLocation Function(
   ffi.Pointer<CXTranslationUnitImpl> arg0,
   CXToken arg1,
 );
@@ -9704,7 +11109,7 @@
   CXToken arg1,
 );
 
-typedef _c_clang_getTokenExtent = CXSourceRange Function(
+typedef Native_clang_getTokenExtent = CXSourceRange Function(
   ffi.Pointer<CXTranslationUnitImpl> arg0,
   CXToken arg1,
 );
@@ -9714,7 +11119,7 @@
   CXToken arg1,
 );
 
-typedef _c_clang_tokenize = ffi.Void Function(
+typedef Native_clang_tokenize = ffi.Void Function(
   ffi.Pointer<CXTranslationUnitImpl> TU,
   CXSourceRange Range,
   ffi.Pointer<ffi.Pointer<CXToken>> Tokens,
@@ -9728,7 +11133,7 @@
   ffi.Pointer<ffi.Uint32> NumTokens,
 );
 
-typedef _c_clang_annotateTokens = ffi.Void Function(
+typedef Native_clang_annotateTokens = ffi.Void Function(
   ffi.Pointer<CXTranslationUnitImpl> TU,
   ffi.Pointer<CXToken> Tokens,
   ffi.Uint32 NumTokens,
@@ -9742,7 +11147,7 @@
   ffi.Pointer<CXCursor> Cursors,
 );
 
-typedef _c_clang_disposeTokens = ffi.Void Function(
+typedef Native_clang_disposeTokens = ffi.Void Function(
   ffi.Pointer<CXTranslationUnitImpl> TU,
   ffi.Pointer<CXToken> Tokens,
   ffi.Uint32 NumTokens,
@@ -9754,7 +11159,7 @@
   int NumTokens,
 );
 
-typedef _c_clang_getCursorKindSpelling = CXString Function(
+typedef Native_clang_getCursorKindSpelling = CXString Function(
   ffi.Int32 Kind,
 );
 
@@ -9762,7 +11167,7 @@
   int Kind,
 );
 
-typedef _c_clang_getDefinitionSpellingAndExtent = ffi.Void Function(
+typedef Native_clang_getDefinitionSpellingAndExtent = ffi.Void Function(
   CXCursor arg0,
   ffi.Pointer<ffi.Pointer<ffi.Int8>> startBuf,
   ffi.Pointer<ffi.Pointer<ffi.Int8>> endBuf,
@@ -9782,7 +11187,7 @@
   ffi.Pointer<ffi.Uint32> endColumn,
 );
 
-typedef _c_clang_enableStackTraces = ffi.Void Function();
+typedef Native_clang_enableStackTraces = ffi.Void Function();
 
 typedef _dart_clang_enableStackTraces = void Function();
 
@@ -9790,7 +11195,7 @@
   ffi.Pointer<ffi.Void>,
 );
 
-typedef _c_clang_executeOnThread = ffi.Void Function(
+typedef Native_clang_executeOnThread = ffi.Void Function(
   ffi.Pointer<ffi.NativeFunction<_typedefC_1>> fn,
   ffi.Pointer<ffi.Void> user_data,
   ffi.Uint32 stack_size,
@@ -9802,7 +11207,7 @@
   int stack_size,
 );
 
-typedef _c_clang_getCompletionChunkKind = ffi.Int32 Function(
+typedef Native_clang_getCompletionChunkKind = ffi.Int32 Function(
   ffi.Pointer<ffi.Void> completion_string,
   ffi.Uint32 chunk_number,
 );
@@ -9812,7 +11217,7 @@
   int chunk_number,
 );
 
-typedef _c_clang_getCompletionChunkText = CXString Function(
+typedef Native_clang_getCompletionChunkText = CXString Function(
   ffi.Pointer<ffi.Void> completion_string,
   ffi.Uint32 chunk_number,
 );
@@ -9822,7 +11227,7 @@
   int chunk_number,
 );
 
-typedef _c_clang_getCompletionChunkCompletionString = ffi.Pointer<ffi.Void>
+typedef Native_clang_getCompletionChunkCompletionString = ffi.Pointer<ffi.Void>
     Function(
   ffi.Pointer<ffi.Void> completion_string,
   ffi.Uint32 chunk_number,
@@ -9834,7 +11239,7 @@
   int chunk_number,
 );
 
-typedef _c_clang_getNumCompletionChunks = ffi.Uint32 Function(
+typedef Native_clang_getNumCompletionChunks = ffi.Uint32 Function(
   ffi.Pointer<ffi.Void> completion_string,
 );
 
@@ -9842,7 +11247,7 @@
   ffi.Pointer<ffi.Void> completion_string,
 );
 
-typedef _c_clang_getCompletionPriority = ffi.Uint32 Function(
+typedef Native_clang_getCompletionPriority = ffi.Uint32 Function(
   ffi.Pointer<ffi.Void> completion_string,
 );
 
@@ -9850,7 +11255,7 @@
   ffi.Pointer<ffi.Void> completion_string,
 );
 
-typedef _c_clang_getCompletionAvailability = ffi.Int32 Function(
+typedef Native_clang_getCompletionAvailability = ffi.Int32 Function(
   ffi.Pointer<ffi.Void> completion_string,
 );
 
@@ -9858,7 +11263,7 @@
   ffi.Pointer<ffi.Void> completion_string,
 );
 
-typedef _c_clang_getCompletionNumAnnotations = ffi.Uint32 Function(
+typedef Native_clang_getCompletionNumAnnotations = ffi.Uint32 Function(
   ffi.Pointer<ffi.Void> completion_string,
 );
 
@@ -9866,7 +11271,7 @@
   ffi.Pointer<ffi.Void> completion_string,
 );
 
-typedef _c_clang_getCompletionAnnotation = CXString Function(
+typedef Native_clang_getCompletionAnnotation = CXString Function(
   ffi.Pointer<ffi.Void> completion_string,
   ffi.Uint32 annotation_number,
 );
@@ -9876,7 +11281,7 @@
   int annotation_number,
 );
 
-typedef _c_clang_getCompletionParent = CXString Function(
+typedef Native_clang_getCompletionParent = CXString Function(
   ffi.Pointer<ffi.Void> completion_string,
   ffi.Pointer<ffi.Int32> kind,
 );
@@ -9886,7 +11291,7 @@
   ffi.Pointer<ffi.Int32> kind,
 );
 
-typedef _c_clang_getCompletionBriefComment = CXString Function(
+typedef Native_clang_getCompletionBriefComment = CXString Function(
   ffi.Pointer<ffi.Void> completion_string,
 );
 
@@ -9894,7 +11299,7 @@
   ffi.Pointer<ffi.Void> completion_string,
 );
 
-typedef _c_clang_getCursorCompletionString = ffi.Pointer<ffi.Void> Function(
+typedef Native_clang_getCursorCompletionString = ffi.Pointer<ffi.Void> Function(
   CXCursor cursor,
 );
 
@@ -9902,7 +11307,7 @@
   CXCursor cursor,
 );
 
-typedef _c_clang_getCompletionNumFixIts = ffi.Uint32 Function(
+typedef Native_clang_getCompletionNumFixIts = ffi.Uint32 Function(
   ffi.Pointer<CXCodeCompleteResults> results,
   ffi.Uint32 completion_index,
 );
@@ -9912,7 +11317,7 @@
   int completion_index,
 );
 
-typedef _c_clang_getCompletionFixIt = CXString Function(
+typedef Native_clang_getCompletionFixIt = CXString Function(
   ffi.Pointer<CXCodeCompleteResults> results,
   ffi.Uint32 completion_index,
   ffi.Uint32 fixit_index,
@@ -9926,11 +11331,12 @@
   ffi.Pointer<CXSourceRange> replacement_range,
 );
 
-typedef _c_clang_defaultCodeCompleteOptions = ffi.Uint32 Function();
+typedef Native_clang_defaultCodeCompleteOptions = ffi.Uint32 Function();
 
 typedef _dart_clang_defaultCodeCompleteOptions = int Function();
 
-typedef _c_clang_codeCompleteAt = ffi.Pointer<CXCodeCompleteResults> Function(
+typedef Native_clang_codeCompleteAt = ffi.Pointer<CXCodeCompleteResults>
+    Function(
   ffi.Pointer<CXTranslationUnitImpl> TU,
   ffi.Pointer<ffi.Int8> complete_filename,
   ffi.Uint32 complete_line,
@@ -9951,7 +11357,7 @@
   int options,
 );
 
-typedef _c_clang_sortCodeCompletionResults = ffi.Void Function(
+typedef Native_clang_sortCodeCompletionResults = ffi.Void Function(
   ffi.Pointer<CXCompletionResult> Results,
   ffi.Uint32 NumResults,
 );
@@ -9961,7 +11367,7 @@
   int NumResults,
 );
 
-typedef _c_clang_disposeCodeCompleteResults = ffi.Void Function(
+typedef Native_clang_disposeCodeCompleteResults = ffi.Void Function(
   ffi.Pointer<CXCodeCompleteResults> Results,
 );
 
@@ -9969,7 +11375,7 @@
   ffi.Pointer<CXCodeCompleteResults> Results,
 );
 
-typedef _c_clang_codeCompleteGetNumDiagnostics = ffi.Uint32 Function(
+typedef Native_clang_codeCompleteGetNumDiagnostics = ffi.Uint32 Function(
   ffi.Pointer<CXCodeCompleteResults> Results,
 );
 
@@ -9977,7 +11383,7 @@
   ffi.Pointer<CXCodeCompleteResults> Results,
 );
 
-typedef _c_clang_codeCompleteGetDiagnostic = ffi.Pointer<ffi.Void> Function(
+typedef Native_clang_codeCompleteGetDiagnostic = ffi.Pointer<ffi.Void> Function(
   ffi.Pointer<CXCodeCompleteResults> Results,
   ffi.Uint32 Index,
 );
@@ -9987,7 +11393,7 @@
   int Index,
 );
 
-typedef _c_clang_codeCompleteGetContexts = ffi.Uint64 Function(
+typedef Native_clang_codeCompleteGetContexts = ffi.Uint64 Function(
   ffi.Pointer<CXCodeCompleteResults> Results,
 );
 
@@ -9995,7 +11401,7 @@
   ffi.Pointer<CXCodeCompleteResults> Results,
 );
 
-typedef _c_clang_codeCompleteGetContainerKind = ffi.Int32 Function(
+typedef Native_clang_codeCompleteGetContainerKind = ffi.Int32 Function(
   ffi.Pointer<CXCodeCompleteResults> Results,
   ffi.Pointer<ffi.Uint32> IsIncomplete,
 );
@@ -10005,7 +11411,7 @@
   ffi.Pointer<ffi.Uint32> IsIncomplete,
 );
 
-typedef _c_clang_codeCompleteGetContainerUSR = CXString Function(
+typedef Native_clang_codeCompleteGetContainerUSR = CXString Function(
   ffi.Pointer<CXCodeCompleteResults> Results,
 );
 
@@ -10013,7 +11419,7 @@
   ffi.Pointer<CXCodeCompleteResults> Results,
 );
 
-typedef _c_clang_codeCompleteGetObjCSelector = CXString Function(
+typedef Native_clang_codeCompleteGetObjCSelector = CXString Function(
   ffi.Pointer<CXCodeCompleteResults> Results,
 );
 
@@ -10021,11 +11427,11 @@
   ffi.Pointer<CXCodeCompleteResults> Results,
 );
 
-typedef _c_clang_getClangVersion = CXString Function();
+typedef Native_clang_getClangVersion = CXString Function();
 
 typedef _dart_clang_getClangVersion = CXString Function();
 
-typedef _c_clang_toggleCrashRecovery = ffi.Void Function(
+typedef Native_clang_toggleCrashRecovery = ffi.Void Function(
   ffi.Uint32 isEnabled,
 );
 
@@ -10040,7 +11446,7 @@
   ffi.Pointer<ffi.Void>,
 );
 
-typedef _c_clang_getInclusions = ffi.Void Function(
+typedef Native_clang_getInclusions = ffi.Void Function(
   ffi.Pointer<CXTranslationUnitImpl> tu,
   ffi.Pointer<ffi.NativeFunction<CXInclusionVisitor>> visitor,
   ffi.Pointer<ffi.Void> client_data,
@@ -10052,7 +11458,7 @@
   ffi.Pointer<ffi.Void> client_data,
 );
 
-typedef _c_clang_Cursor_Evaluate = ffi.Pointer<ffi.Void> Function(
+typedef Native_clang_Cursor_Evaluate = ffi.Pointer<ffi.Void> Function(
   CXCursor C,
 );
 
@@ -10060,7 +11466,7 @@
   CXCursor C,
 );
 
-typedef _c_clang_EvalResult_getKind = ffi.Int32 Function(
+typedef Native_clang_EvalResult_getKind = ffi.Int32 Function(
   ffi.Pointer<ffi.Void> E,
 );
 
@@ -10068,7 +11474,7 @@
   ffi.Pointer<ffi.Void> E,
 );
 
-typedef _c_clang_EvalResult_getAsInt = ffi.Int32 Function(
+typedef Native_clang_EvalResult_getAsInt = ffi.Int32 Function(
   ffi.Pointer<ffi.Void> E,
 );
 
@@ -10076,7 +11482,7 @@
   ffi.Pointer<ffi.Void> E,
 );
 
-typedef _c_clang_EvalResult_getAsLongLong = ffi.Int64 Function(
+typedef Native_clang_EvalResult_getAsLongLong = ffi.Int64 Function(
   ffi.Pointer<ffi.Void> E,
 );
 
@@ -10084,7 +11490,7 @@
   ffi.Pointer<ffi.Void> E,
 );
 
-typedef _c_clang_EvalResult_isUnsignedInt = ffi.Uint32 Function(
+typedef Native_clang_EvalResult_isUnsignedInt = ffi.Uint32 Function(
   ffi.Pointer<ffi.Void> E,
 );
 
@@ -10092,7 +11498,7 @@
   ffi.Pointer<ffi.Void> E,
 );
 
-typedef _c_clang_EvalResult_getAsUnsigned = ffi.Uint64 Function(
+typedef Native_clang_EvalResult_getAsUnsigned = ffi.Uint64 Function(
   ffi.Pointer<ffi.Void> E,
 );
 
@@ -10100,7 +11506,7 @@
   ffi.Pointer<ffi.Void> E,
 );
 
-typedef _c_clang_EvalResult_getAsDouble = ffi.Double Function(
+typedef Native_clang_EvalResult_getAsDouble = ffi.Double Function(
   ffi.Pointer<ffi.Void> E,
 );
 
@@ -10108,7 +11514,7 @@
   ffi.Pointer<ffi.Void> E,
 );
 
-typedef _c_clang_EvalResult_getAsStr = ffi.Pointer<ffi.Int8> Function(
+typedef Native_clang_EvalResult_getAsStr = ffi.Pointer<ffi.Int8> Function(
   ffi.Pointer<ffi.Void> E,
 );
 
@@ -10116,7 +11522,7 @@
   ffi.Pointer<ffi.Void> E,
 );
 
-typedef _c_clang_EvalResult_dispose = ffi.Void Function(
+typedef Native_clang_EvalResult_dispose = ffi.Void Function(
   ffi.Pointer<ffi.Void> E,
 );
 
@@ -10124,7 +11530,7 @@
   ffi.Pointer<ffi.Void> E,
 );
 
-typedef _c_clang_getRemappings = ffi.Pointer<ffi.Void> Function(
+typedef Native_clang_getRemappings = ffi.Pointer<ffi.Void> Function(
   ffi.Pointer<ffi.Int8> path,
 );
 
@@ -10132,7 +11538,7 @@
   ffi.Pointer<ffi.Int8> path,
 );
 
-typedef _c_clang_getRemappingsFromFileList = ffi.Pointer<ffi.Void> Function(
+typedef Native_clang_getRemappingsFromFileList = ffi.Pointer<ffi.Void> Function(
   ffi.Pointer<ffi.Pointer<ffi.Int8>> filePaths,
   ffi.Uint32 numFiles,
 );
@@ -10142,7 +11548,7 @@
   int numFiles,
 );
 
-typedef _c_clang_remap_getNumFiles = ffi.Uint32 Function(
+typedef Native_clang_remap_getNumFiles = ffi.Uint32 Function(
   ffi.Pointer<ffi.Void> arg0,
 );
 
@@ -10150,7 +11556,7 @@
   ffi.Pointer<ffi.Void> arg0,
 );
 
-typedef _c_clang_remap_getFilenames = ffi.Void Function(
+typedef Native_clang_remap_getFilenames = ffi.Void Function(
   ffi.Pointer<ffi.Void> arg0,
   ffi.Uint32 index,
   ffi.Pointer<CXString> original,
@@ -10164,7 +11570,7 @@
   ffi.Pointer<CXString> transformed,
 );
 
-typedef _c_clang_remap_dispose = ffi.Void Function(
+typedef Native_clang_remap_dispose = ffi.Void Function(
   ffi.Pointer<ffi.Void> arg0,
 );
 
@@ -10172,7 +11578,7 @@
   ffi.Pointer<ffi.Void> arg0,
 );
 
-typedef _c_clang_findReferencesInFile = ffi.Int32 Function(
+typedef Native_clang_findReferencesInFile = ffi.Int32 Function(
   CXCursor cursor,
   ffi.Pointer<ffi.Void> file,
   CXCursorAndRangeVisitor visitor,
@@ -10184,7 +11590,7 @@
   CXCursorAndRangeVisitor visitor,
 );
 
-typedef _c_clang_findIncludesInFile = ffi.Int32 Function(
+typedef Native_clang_findIncludesInFile = ffi.Int32 Function(
   ffi.Pointer<CXTranslationUnitImpl> TU,
   ffi.Pointer<ffi.Void> file,
   CXCursorAndRangeVisitor visitor,
@@ -10196,7 +11602,7 @@
   CXCursorAndRangeVisitor visitor,
 );
 
-typedef _c_clang_index_isEntityObjCContainerKind = ffi.Int32 Function(
+typedef Native_clang_index_isEntityObjCContainerKind = ffi.Int32 Function(
   ffi.Int32 arg0,
 );
 
@@ -10204,7 +11610,7 @@
   int arg0,
 );
 
-typedef _c_clang_index_getObjCContainerDeclInfo
+typedef Native_clang_index_getObjCContainerDeclInfo
     = ffi.Pointer<CXIdxObjCContainerDeclInfo> Function(
   ffi.Pointer<CXIdxDeclInfo> arg0,
 );
@@ -10214,7 +11620,7 @@
   ffi.Pointer<CXIdxDeclInfo> arg0,
 );
 
-typedef _c_clang_index_getObjCInterfaceDeclInfo
+typedef Native_clang_index_getObjCInterfaceDeclInfo
     = ffi.Pointer<CXIdxObjCInterfaceDeclInfo> Function(
   ffi.Pointer<CXIdxDeclInfo> arg0,
 );
@@ -10224,7 +11630,7 @@
   ffi.Pointer<CXIdxDeclInfo> arg0,
 );
 
-typedef _c_clang_index_getObjCCategoryDeclInfo
+typedef Native_clang_index_getObjCCategoryDeclInfo
     = ffi.Pointer<CXIdxObjCCategoryDeclInfo> Function(
   ffi.Pointer<CXIdxDeclInfo> arg0,
 );
@@ -10234,7 +11640,7 @@
   ffi.Pointer<CXIdxDeclInfo> arg0,
 );
 
-typedef _c_clang_index_getObjCProtocolRefListInfo
+typedef Native_clang_index_getObjCProtocolRefListInfo
     = ffi.Pointer<CXIdxObjCProtocolRefListInfo> Function(
   ffi.Pointer<CXIdxDeclInfo> arg0,
 );
@@ -10244,7 +11650,7 @@
   ffi.Pointer<CXIdxDeclInfo> arg0,
 );
 
-typedef _c_clang_index_getObjCPropertyDeclInfo
+typedef Native_clang_index_getObjCPropertyDeclInfo
     = ffi.Pointer<CXIdxObjCPropertyDeclInfo> Function(
   ffi.Pointer<CXIdxDeclInfo> arg0,
 );
@@ -10254,7 +11660,7 @@
   ffi.Pointer<CXIdxDeclInfo> arg0,
 );
 
-typedef _c_clang_index_getIBOutletCollectionAttrInfo
+typedef Native_clang_index_getIBOutletCollectionAttrInfo
     = ffi.Pointer<CXIdxIBOutletCollectionAttrInfo> Function(
   ffi.Pointer<CXIdxAttrInfo> arg0,
 );
@@ -10264,8 +11670,8 @@
   ffi.Pointer<CXIdxAttrInfo> arg0,
 );
 
-typedef _c_clang_index_getCXXClassDeclInfo = ffi.Pointer<CXIdxCXXClassDeclInfo>
-    Function(
+typedef Native_clang_index_getCXXClassDeclInfo
+    = ffi.Pointer<CXIdxCXXClassDeclInfo> Function(
   ffi.Pointer<CXIdxDeclInfo> arg0,
 );
 
@@ -10274,7 +11680,7 @@
   ffi.Pointer<CXIdxDeclInfo> arg0,
 );
 
-typedef _c_clang_index_getClientContainer = ffi.Pointer<ffi.Void> Function(
+typedef Native_clang_index_getClientContainer = ffi.Pointer<ffi.Void> Function(
   ffi.Pointer<CXIdxContainerInfo> arg0,
 );
 
@@ -10282,7 +11688,7 @@
   ffi.Pointer<CXIdxContainerInfo> arg0,
 );
 
-typedef _c_clang_index_setClientContainer = ffi.Void Function(
+typedef Native_clang_index_setClientContainer = ffi.Void Function(
   ffi.Pointer<CXIdxContainerInfo> arg0,
   ffi.Pointer<ffi.Void> arg1,
 );
@@ -10292,7 +11698,7 @@
   ffi.Pointer<ffi.Void> arg1,
 );
 
-typedef _c_clang_index_getClientEntity = ffi.Pointer<ffi.Void> Function(
+typedef Native_clang_index_getClientEntity = ffi.Pointer<ffi.Void> Function(
   ffi.Pointer<CXIdxEntityInfo> arg0,
 );
 
@@ -10300,7 +11706,7 @@
   ffi.Pointer<CXIdxEntityInfo> arg0,
 );
 
-typedef _c_clang_index_setClientEntity = ffi.Void Function(
+typedef Native_clang_index_setClientEntity = ffi.Void Function(
   ffi.Pointer<CXIdxEntityInfo> arg0,
   ffi.Pointer<ffi.Void> arg1,
 );
@@ -10310,7 +11716,7 @@
   ffi.Pointer<ffi.Void> arg1,
 );
 
-typedef _c_clang_IndexAction_create = ffi.Pointer<ffi.Void> Function(
+typedef Native_clang_IndexAction_create = ffi.Pointer<ffi.Void> Function(
   ffi.Pointer<ffi.Void> CIdx,
 );
 
@@ -10318,7 +11724,7 @@
   ffi.Pointer<ffi.Void> CIdx,
 );
 
-typedef _c_clang_IndexAction_dispose = ffi.Void Function(
+typedef Native_clang_IndexAction_dispose = ffi.Void Function(
   ffi.Pointer<ffi.Void> arg0,
 );
 
@@ -10326,7 +11732,7 @@
   ffi.Pointer<ffi.Void> arg0,
 );
 
-typedef _c_clang_indexSourceFile = ffi.Int32 Function(
+typedef Native_clang_indexSourceFile = ffi.Int32 Function(
   ffi.Pointer<ffi.Void> arg0,
   ffi.Pointer<ffi.Void> client_data,
   ffi.Pointer<IndexerCallbacks> index_callbacks,
@@ -10356,7 +11762,7 @@
   int TU_options,
 );
 
-typedef _c_clang_indexSourceFileFullArgv = ffi.Int32 Function(
+typedef Native_clang_indexSourceFileFullArgv = ffi.Int32 Function(
   ffi.Pointer<ffi.Void> arg0,
   ffi.Pointer<ffi.Void> client_data,
   ffi.Pointer<IndexerCallbacks> index_callbacks,
@@ -10386,7 +11792,7 @@
   int TU_options,
 );
 
-typedef _c_clang_indexTranslationUnit = ffi.Int32 Function(
+typedef Native_clang_indexTranslationUnit = ffi.Int32 Function(
   ffi.Pointer<ffi.Void> arg0,
   ffi.Pointer<ffi.Void> client_data,
   ffi.Pointer<IndexerCallbacks> index_callbacks,
@@ -10404,7 +11810,7 @@
   ffi.Pointer<CXTranslationUnitImpl> arg5,
 );
 
-typedef _c_clang_indexLoc_getFileLocation = ffi.Void Function(
+typedef Native_clang_indexLoc_getFileLocation = ffi.Void Function(
   CXIdxLoc loc,
   ffi.Pointer<ffi.Pointer<ffi.Void>> indexFile,
   ffi.Pointer<ffi.Pointer<ffi.Void>> file,
@@ -10422,7 +11828,7 @@
   ffi.Pointer<ffi.Uint32> offset,
 );
 
-typedef _c_clang_indexLoc_getCXSourceLocation = CXSourceLocation Function(
+typedef Native_clang_indexLoc_getCXSourceLocation = CXSourceLocation Function(
   CXIdxLoc loc,
 );
 
@@ -10435,7 +11841,7 @@
   ffi.Pointer<ffi.Void>,
 );
 
-typedef _c_clang_Type_visitFields = ffi.Uint32 Function(
+typedef Native_clang_Type_visitFields = ffi.Uint32 Function(
   CXType T,
   ffi.Pointer<ffi.NativeFunction<CXFieldVisitor>> visitor,
   ffi.Pointer<ffi.Void> client_data,
diff --git a/pkgs/ffigen/example/libclang-example/pubspec.yaml b/pkgs/ffigen/example/libclang-example/pubspec.yaml
index a8c2cd5..9c67f6b 100644
--- a/pkgs/ffigen/example/libclang-example/pubspec.yaml
+++ b/pkgs/ffigen/example/libclang-example/pubspec.yaml
@@ -31,6 +31,9 @@
   functions:
     include:
       - 'clang_.*' # Can be a regexp, '.' matches any character.
+    symbol-address:
+      include:
+        - 'clang_.*' # Symbol Address and Typedefs for these functions will be exposed via addresses.
   structs:
     include:
         - 'CX.*'
diff --git a/pkgs/ffigen/example/simple/generated_bindings.dart b/pkgs/ffigen/example/simple/generated_bindings.dart
index c0bb4d3..1674882 100644
--- a/pkgs/ffigen/example/simple/generated_bindings.dart
+++ b/pkgs/ffigen/example/simple/generated_bindings.dart
@@ -24,71 +24,76 @@
     int a,
     int b,
   ) {
-    return (_sum ??=
-        _lookup<ffi.NativeFunction<_c_sum>>('sum').asFunction<_dart_sum>())(
+    return _sum(
       a,
       b,
     );
   }
 
-  _dart_sum? _sum;
+  late final _sum_ptr = _lookup<ffi.NativeFunction<_c_sum>>('sum');
+  late final _dart_sum _sum = _sum_ptr.asFunction<_dart_sum>();
 
   /// Subtracts 2 integers.
   int subtract(
     ffi.Pointer<ffi.Int32> a,
     int b,
   ) {
-    return (_subtract ??= _lookup<ffi.NativeFunction<_c_subtract>>('subtract')
-        .asFunction<_dart_subtract>())(
+    return _subtract(
       a,
       b,
     );
   }
 
-  _dart_subtract? _subtract;
+  late final _subtract_ptr =
+      _lookup<ffi.NativeFunction<_c_subtract>>('subtract');
+  late final _dart_subtract _subtract =
+      _subtract_ptr.asFunction<_dart_subtract>();
 
   /// Multiplies 2 integers, returns pointer to an integer,.
   ffi.Pointer<ffi.Int32> multiply(
     int a,
     int b,
   ) {
-    return (_multiply ??= _lookup<ffi.NativeFunction<_c_multiply>>('multiply')
-        .asFunction<_dart_multiply>())(
+    return _multiply(
       a,
       b,
     );
   }
 
-  _dart_multiply? _multiply;
+  late final _multiply_ptr =
+      _lookup<ffi.NativeFunction<_c_multiply>>('multiply');
+  late final _dart_multiply _multiply =
+      _multiply_ptr.asFunction<_dart_multiply>();
 
   /// Divides 2 integers, returns pointer to a float.
   ffi.Pointer<ffi.Float> divide(
     int a,
     int b,
   ) {
-    return (_divide ??= _lookup<ffi.NativeFunction<_c_divide>>('divide')
-        .asFunction<_dart_divide>())(
+    return _divide(
       a,
       b,
     );
   }
 
-  _dart_divide? _divide;
+  late final _divide_ptr = _lookup<ffi.NativeFunction<_c_divide>>('divide');
+  late final _dart_divide _divide = _divide_ptr.asFunction<_dart_divide>();
 
   /// Divides 2 floats, returns a pointer to double.
   ffi.Pointer<ffi.Double> dividePercision(
     ffi.Pointer<ffi.Float> a,
     ffi.Pointer<ffi.Float> b,
   ) {
-    return (_dividePercision ??=
-        _lookup<ffi.NativeFunction<_c_dividePercision>>('dividePercision')
-            .asFunction<_dart_dividePercision>())(
+    return _dividePercision(
       a,
       b,
     );
   }
 
-  _dart_dividePercision? _dividePercision;
+  late final _dividePercision_ptr =
+      _lookup<ffi.NativeFunction<_c_dividePercision>>('dividePercision');
+  late final _dart_dividePercision _dividePercision =
+      _dividePercision_ptr.asFunction<_dart_dividePercision>();
 }
 
 typedef _c_sum = ffi.Int32 Function(
diff --git a/pkgs/ffigen/lib/src/code_generator/func.dart b/pkgs/ffigen/lib/src/code_generator/func.dart
index c227c4e..5236c50 100644
--- a/pkgs/ffigen/lib/src/code_generator/func.dart
+++ b/pkgs/ffigen/lib/src/code_generator/func.dart
@@ -31,6 +31,7 @@
 class Func extends LookUpBinding {
   final Type returnType;
   final List<Parameter> parameters;
+  final bool exposeSymbolAddress;
 
   /// [originalName] is looked up in dynamic library, if not
   /// provided, takes the value of [name].
@@ -41,6 +42,7 @@
     String? dartDoc,
     required this.returnType,
     List<Parameter>? parameters,
+    this.exposeSymbolAddress = false,
   })  : parameters = parameters ?? [],
         super(
           usr: usr,
@@ -85,7 +87,7 @@
 
   Typedef? _cType, _dartType;
   Typedef get cType => _cType ??= Typedef(
-        name: '_c_$name',
+        name: exposeSymbolAddress ? 'Native_$name' : '_c_$name',
         returnType: returnType,
         parameters: parameters,
         typedefType: TypedefType.C,
@@ -102,6 +104,8 @@
     final s = StringBuffer();
     final enclosingFuncName = name;
     final funcVarName = w.wrapperLevelUniqueNamer.makeUnique('_$name');
+    final funcPointerName =
+        w.wrapperLevelUniqueNamer.makeUnique('_${name}_ptr');
 
     if (dartDoc != null) {
       s.write(makeDartDoc(dartDoc!));
@@ -127,8 +131,7 @@
       }
     }
     s.write(') {\n');
-    s.write(
-        "return ($funcVarName ??= ${w.lookupFuncIdentifier}<${w.ffiLibraryPrefix}.NativeFunction<${cType.name}>>('$originalName').asFunction<${dartType.name}>())");
+    s.write('return $funcVarName');
 
     s.write('(\n');
     for (final p in parameters) {
@@ -147,9 +150,22 @@
     }
     s.write('}\n');
 
+    // Write function pointer.
+    s.write(
+        "late final $funcPointerName = ${w.lookupFuncIdentifier}<${w.ffiLibraryPrefix}.NativeFunction<${cType.name}>>('$originalName');\n");
     // Write function variable.
-    s.write('${dartType.name}? $funcVarName;\n\n');
+    s.write(
+        'late final ${dartType.name} $funcVarName = $funcPointerName.asFunction<${dartType.name}>();\n\n');
 
+    if (exposeSymbolAddress) {
+      // Add to SymbolAddress in writer.
+      w.symbolAddressWriter.addSymbol(
+        type:
+            '${w.ffiLibraryPrefix}.Pointer<${w.ffiLibraryPrefix}.NativeFunction<${cType.name}>>',
+        name: name,
+        ptrName: funcPointerName,
+      );
+    }
     return BindingString(type: BindingStringType.func, string: s.toString());
   }
 }
diff --git a/pkgs/ffigen/lib/src/code_generator/global.dart b/pkgs/ffigen/lib/src/code_generator/global.dart
index 3531eb5..1951371 100644
--- a/pkgs/ffigen/lib/src/code_generator/global.dart
+++ b/pkgs/ffigen/lib/src/code_generator/global.dart
@@ -22,6 +22,7 @@
 /// ```
 class Global extends LookUpBinding {
   final Type type;
+  final bool exposeSymbolAddress;
 
   Global({
     String? usr,
@@ -29,6 +30,7 @@
     required String name,
     required this.type,
     String? dartDoc,
+    this.exposeSymbolAddress = false,
   }) : super(
           usr: usr,
           originalName: originalName,
@@ -77,6 +79,15 @@
           'set $globalVarName($dartType value) => $pointerName.value = value;\n\n');
     }
 
+    if (exposeSymbolAddress) {
+      // Add to SymbolAddress in writer.
+      w.symbolAddressWriter.addSymbol(
+        type: '${w.ffiLibraryPrefix}.Pointer<$cType>',
+        name: name,
+        ptrName: pointerName,
+      );
+    }
+
     return BindingString(type: BindingStringType.global, string: s.toString());
   }
 }
diff --git a/pkgs/ffigen/lib/src/code_generator/writer.dart b/pkgs/ffigen/lib/src/code_generator/writer.dart
index d6ada16..03c3647 100644
--- a/pkgs/ffigen/lib/src/code_generator/writer.dart
+++ b/pkgs/ffigen/lib/src/code_generator/writer.dart
@@ -17,14 +17,21 @@
   /// Holds bindings which don't lookup symbols.
   final List<Binding> noLookUpBindings;
 
-  String? _className;
+  /// Manages the `_SymbolAddress` class.
+  final symbolAddressWriter = SymbolAddressWriter();
+
+  late String _className;
   final String? classDocComment;
 
-  String? _ffiLibraryPrefix;
-  String? get ffiLibraryPrefix => _ffiLibraryPrefix;
+  late String _ffiLibraryPrefix;
+  String get ffiLibraryPrefix => _ffiLibraryPrefix;
 
-  String? _lookupFuncIdentifier;
-  String? get lookupFuncIdentifier => _lookupFuncIdentifier;
+  late String _lookupFuncIdentifier;
+  String get lookupFuncIdentifier => _lookupFuncIdentifier;
+
+  late String _symbolAddressClassName;
+  late String _symbolAddressVariableName;
+  late String _symbolAddressLibraryVarName;
 
   final bool dartBool;
 
@@ -37,10 +44,10 @@
   UniqueNamer get topLevelUniqueNamer => _topLevelUniqueNamer;
   UniqueNamer get wrapperLevelUniqueNamer => _wrapperLevelUniqueNamer;
 
-  String? _arrayHelperClassPrefix;
+  late String _arrayHelperClassPrefix;
 
   /// Guaranteed to be a unique prefix.
-  String? get arrayHelperClassPrefix => _arrayHelperClassPrefix;
+  String get arrayHelperClassPrefix => _arrayHelperClassPrefix;
 
   /// [_usedUpNames] should contain names of all the declarations which are
   /// already used. This is used to avoid name collisions.
@@ -64,8 +71,8 @@
 
     /// Wrapper class name must be unique among all names.
     _className = allLevelsUniqueNamer.makeUnique(className);
-    _initialWrapperLevelUniqueNamer.markUsed(_className!);
-    _initialTopLevelUniqueNamer.markUsed(_className!);
+    _initialWrapperLevelUniqueNamer.markUsed(_className);
+    _initialTopLevelUniqueNamer.markUsed(_className);
 
     /// [_ffiLibraryPrefix] should be unique in top level.
     _ffiLibraryPrefix = _initialTopLevelUniqueNamer.makeUnique('ffi');
@@ -73,13 +80,21 @@
     /// [_lookupFuncIdentifier] should be unique in top level.
     _lookupFuncIdentifier = _initialTopLevelUniqueNamer.makeUnique('_lookup');
 
+    /// Resolve name conflicts of identifiers used for SymbolAddresses.
+    _symbolAddressClassName =
+        allLevelsUniqueNamer.makeUnique('_SymbolAddresses');
+    _symbolAddressVariableName =
+        _initialWrapperLevelUniqueNamer.makeUnique('addresses');
+    _symbolAddressLibraryVarName =
+        _initialWrapperLevelUniqueNamer.makeUnique('_library');
+
     /// Finding a unique prefix for Array Helper Classes and store into
     /// [_arrayHelperClassPrefix].
     final base = 'ArrayHelper';
     _arrayHelperClassPrefix = base;
     var suffixInt = 0;
     for (var i = 0; i < allNameSet.length; i++) {
-      if (allNameSet.elementAt(i).startsWith(_arrayHelperClassPrefix!)) {
+      if (allNameSet.elementAt(i).startsWith(_arrayHelperClassPrefix)) {
         // Not a unique prefix, start over with a new suffix.
         i = -1;
         suffixInt++;
@@ -157,9 +172,17 @@
       for (final b in lookUpBindings) {
         s.write(b.toBindingString(this).string);
       }
+      if (symbolAddressWriter.shouldGenerate) {
+        s.write(symbolAddressWriter.writeObject(this));
+      }
+
       s.write('}\n\n');
     }
 
+    if (symbolAddressWriter.shouldGenerate) {
+      s.write(symbolAddressWriter.writeClass(this));
+    }
+
     /// Write [noLookUpBindings].
     for (final b in noLookUpBindings) {
       s.write(b.toBindingString(this).string);
@@ -198,3 +221,46 @@
     return uniqueName;
   }
 }
+
+/// Manages the generated `_SymbolAddress` class.
+class SymbolAddressWriter {
+  final List<_SymbolAddressUnit> _addresses = [];
+
+  /// Used to check if we need to generate `_SymbolAddress` class.
+  bool get shouldGenerate => _addresses.isNotEmpty;
+
+  void addSymbol({
+    required String type,
+    required String name,
+    required String ptrName,
+  }) {
+    _addresses.add(_SymbolAddressUnit(type, name, ptrName));
+  }
+
+  String writeObject(Writer w) {
+    return 'late final ${w._symbolAddressVariableName} = ${w._symbolAddressClassName}(this);';
+  }
+
+  String writeClass(Writer w) {
+    final sb = StringBuffer();
+    sb.write('class ${w._symbolAddressClassName} {\n');
+    // Write Library object.
+    sb.write('final ${w._className} ${w._symbolAddressLibraryVarName};\n');
+    // Write Constructor.
+    sb.write(
+        '${w._symbolAddressClassName}(this.${w._symbolAddressLibraryVarName});\n');
+    for (final address in _addresses) {
+      sb.write(
+          '${address.type} get ${address.name} => ${w._symbolAddressLibraryVarName}.${address.ptrName};\n');
+    }
+    sb.write('}\n');
+    return sb.toString();
+  }
+}
+
+/// Holds the data for a single symbol address.
+class _SymbolAddressUnit {
+  final String type, name, ptrName;
+
+  _SymbolAddressUnit(this.type, this.name, this.ptrName);
+}
diff --git a/pkgs/ffigen/lib/src/config_provider/config_types.dart b/pkgs/ffigen/lib/src/config_provider/config_types.dart
index 9ce215c..e412d96 100644
--- a/pkgs/ffigen/lib/src/config_provider/config_types.dart
+++ b/pkgs/ffigen/lib/src/config_provider/config_types.dart
@@ -92,19 +92,24 @@
   }
 }
 
-/// A generic declaration config, used for Functions, Structs and Enums.
+/// A generic declaration config, used for Functions, Structs, Enums, Macros,
+/// unnamed Enums and Globals.
 class Declaration {
   final Includer _includer;
   final Renamer _renamer;
   final MemberRenamer _memberRenamer;
+  final Includer _symbolAddressIncluder;
 
   Declaration({
     Includer? includer,
     Renamer? renamer,
     MemberRenamer? memberRenamer,
+    Includer? symbolAddressIncluder,
   })  : _includer = includer ?? Includer(),
         _renamer = renamer ?? Renamer(),
-        _memberRenamer = memberRenamer ?? MemberRenamer();
+        _memberRenamer = memberRenamer ?? MemberRenamer(),
+        _symbolAddressIncluder =
+            symbolAddressIncluder ?? Includer.excludeByDefault();
 
   /// Applies renaming and returns the result.
   String renameUsingConfig(String name) => _renamer.rename(name);
@@ -115,6 +120,10 @@
 
   /// Checks if a name is allowed by a filter.
   bool shouldInclude(String name) => _includer.shouldInclude(name);
+
+  /// Checks if the symbol address should be included for this name.
+  bool shouldIncludeSymbolAddress(String name) =>
+      _symbolAddressIncluder.shouldInclude(name);
 }
 
 /// Matches `$<single_digit_int>`, value can be accessed in group 1 of match.
@@ -180,6 +189,12 @@
         _excludeMatchers = excludeMatchers ?? [],
         _excludeFull = excludeFull ?? {};
 
+  Includer.excludeByDefault()
+      : _includeMatchers = [],
+        _includeFull = {},
+        _excludeMatchers = [RegExp('.*', dotAll: true)],
+        _excludeFull = {};
+
   /// Returns true if [name] is allowed.
   ///
   /// Exclude overrides include.
diff --git a/pkgs/ffigen/lib/src/config_provider/spec_utils.dart b/pkgs/ffigen/lib/src/config_provider/spec_utils.dart
index 8533eef..eeab2ae 100644
--- a/pkgs/ffigen/lib/src/config_provider/spec_utils.dart
+++ b/pkgs/ffigen/lib/src/config_provider/spec_utils.dart
@@ -268,15 +268,11 @@
 bool isFullDeclarationName(String str) =>
     quiver.matchesFull(RegExp('[a-zA-Z_0-9]*'), str);
 
-Declaration declarationConfigExtractor(dynamic yamlMap) {
+Includer _extractIncluderFromYaml(dynamic yamlMap) {
   final includeMatchers = <RegExp>[],
       includeFull = <String>{},
       excludeMatchers = <RegExp>[],
       excludeFull = <String>{};
-  final renamePatterns = <RegExpRenamer>[];
-  final renameFull = <String, String>{};
-  final memberRenamePatterns = <RegExpMemberRenamer>[];
-  final memberRenamerFull = <String, Renamer>{};
 
   final include = (yamlMap[strings.include] as YamlList?)?.cast<String>();
   if (include != null) {
@@ -300,6 +296,27 @@
     }
   }
 
+  return Includer(
+    includeMatchers: includeMatchers,
+    includeFull: includeFull,
+    excludeMatchers: excludeMatchers,
+    excludeFull: excludeFull,
+  );
+}
+
+Declaration declarationConfigExtractor(dynamic yamlMap) {
+  final renamePatterns = <RegExpRenamer>[];
+  final renameFull = <String, String>{};
+  final memberRenamePatterns = <RegExpMemberRenamer>[];
+  final memberRenamerFull = <String, Renamer>{};
+
+  final includer = _extractIncluderFromYaml(yamlMap);
+
+  Includer? symbolIncluder;
+  if (yamlMap[strings.symbolAddress] != null) {
+    symbolIncluder = _extractIncluderFromYaml(yamlMap[strings.symbolAddress]);
+  }
+
   final rename = (yamlMap[strings.rename] as YamlMap?)?.cast<String, String>();
 
   if (rename != null) {
@@ -350,12 +367,7 @@
   }
 
   return Declaration(
-    includer: Includer(
-      includeMatchers: includeMatchers,
-      includeFull: includeFull,
-      excludeMatchers: excludeMatchers,
-      excludeFull: excludeFull,
-    ),
+    includer: includer,
     renamer: Renamer(
       renameFull: renameFull,
       renamePatterns: renamePatterns,
@@ -364,6 +376,7 @@
       memberRenameFull: memberRenamerFull,
       memberRenamePattern: memberRenamePatterns,
     ),
+    symbolAddressIncluder: symbolIncluder,
   );
 }
 
@@ -408,6 +421,22 @@
             }
           }
         }
+      } else if (key == strings.symbolAddress) {
+        if (!checkType<YamlMap>([name, key as String], value[key])) {
+          _result = false;
+        } else {
+          for (final subkey in value[key].keys) {
+            if (subkey == strings.include || subkey == strings.exclude) {
+              if (!checkType<YamlList>(
+                  [name, key, subkey as String], value[key][subkey])) {
+                _result = false;
+              }
+            } else {
+              _logger.severe("Unknown key '$subkey' in '$name -> $key'.");
+              _result = false;
+            }
+          }
+        }
       } else {
         _logger.severe("Unknown key '$key' in '$name'.");
         _result = false;
diff --git a/pkgs/ffigen/lib/src/header_parser/sub_parsers/functiondecl_parser.dart b/pkgs/ffigen/lib/src/header_parser/sub_parsers/functiondecl_parser.dart
index ccfcb21..ac1d11d 100644
--- a/pkgs/ffigen/lib/src/header_parser/sub_parsers/functiondecl_parser.dart
+++ b/pkgs/ffigen/lib/src/header_parser/sub_parsers/functiondecl_parser.dart
@@ -76,6 +76,8 @@
       originalName: funcName,
       returnType: rt,
       parameters: parameters,
+      exposeSymbolAddress:
+          config.functionDecl.shouldIncludeSymbolAddress(funcName),
     );
     bindingsIndex.addFuncToSeen(funcUsr, _stack.top.func!);
   } else if (bindingsIndex.isSeenFunc(funcUsr)) {
diff --git a/pkgs/ffigen/lib/src/header_parser/sub_parsers/var_parser.dart b/pkgs/ffigen/lib/src/header_parser/sub_parsers/var_parser.dart
index a19c4b2..9114f82 100644
--- a/pkgs/ffigen/lib/src/header_parser/sub_parsers/var_parser.dart
+++ b/pkgs/ffigen/lib/src/header_parser/sub_parsers/var_parser.dart
@@ -40,6 +40,7 @@
     usr: usr,
     type: type,
     dartDoc: getCursorDocComment(cursor),
+    exposeSymbolAddress: config.functionDecl.shouldIncludeSymbolAddress(name),
   );
   bindingsIndex.addGlobalVarToSeen(usr, global);
   return global;
diff --git a/pkgs/ffigen/lib/src/strings.dart b/pkgs/ffigen/lib/src/strings.dart
index d5041aa..1929051 100644
--- a/pkgs/ffigen/lib/src/strings.dart
+++ b/pkgs/ffigen/lib/src/strings.dart
@@ -47,6 +47,8 @@
 const exclude = 'exclude';
 const rename = 'rename';
 const memberRename = 'member-rename';
+const symbolAddress = 'symbol-address';
+
 const sizemap = 'size-map';
 const typedefmap = 'typedef-map';
 
diff --git a/pkgs/ffigen/pubspec.yaml b/pkgs/ffigen/pubspec.yaml
index 171a0d2..860f4e8 100644
--- a/pkgs/ffigen/pubspec.yaml
+++ b/pkgs/ffigen/pubspec.yaml
@@ -3,7 +3,7 @@
 # BSD-style license that can be found in the LICENSE file.
 
 name: ffigen
-version: 2.1.0
+version: 2.2.0
 homepage: https://github.com/dart-lang/ffigen
 description: Generator for FFI bindings, using LibClang to parse C header files.
 
diff --git a/pkgs/ffigen/test/code_generator_tests/expected_bindings/_expected_boolean_dartbool_bindings.dart b/pkgs/ffigen/test/code_generator_tests/expected_bindings/_expected_boolean_dartbool_bindings.dart
index ef21078..7764524 100644
--- a/pkgs/ffigen/test/code_generator_tests/expected_bindings/_expected_boolean_dartbool_bindings.dart
+++ b/pkgs/ffigen/test/code_generator_tests/expected_bindings/_expected_boolean_dartbool_bindings.dart
@@ -21,15 +21,15 @@
     bool a,
     ffi.Pointer<ffi.Uint8> b,
   ) {
-    return (_test1 ??= _lookup<ffi.NativeFunction<_c_test1>>('test1')
-            .asFunction<_dart_test1>())(
+    return _test1(
           a ? 1 : 0,
           b,
         ) !=
         0;
   }
 
-  _dart_test1? _test1;
+  late final _test1_ptr = _lookup<ffi.NativeFunction<_c_test1>>('test1');
+  late final _dart_test1 _test1 = _test1_ptr.asFunction<_dart_test1>();
 }
 
 class test2 extends ffi.Struct {
diff --git a/pkgs/ffigen/test/code_generator_tests/expected_bindings/_expected_boolean_no_dartbool_bindings.dart b/pkgs/ffigen/test/code_generator_tests/expected_bindings/_expected_boolean_no_dartbool_bindings.dart
index 94c815c..5757ff0 100644
--- a/pkgs/ffigen/test/code_generator_tests/expected_bindings/_expected_boolean_no_dartbool_bindings.dart
+++ b/pkgs/ffigen/test/code_generator_tests/expected_bindings/_expected_boolean_no_dartbool_bindings.dart
@@ -21,14 +21,14 @@
     int a,
     ffi.Pointer<ffi.Uint8> b,
   ) {
-    return (_test1 ??= _lookup<ffi.NativeFunction<_c_test1>>('test1')
-        .asFunction<_dart_test1>())(
+    return _test1(
       a,
       b,
     );
   }
 
-  _dart_test1? _test1;
+  late final _test1_ptr = _lookup<ffi.NativeFunction<_c_test1>>('test1');
+  late final _dart_test1 _test1 = _test1_ptr.asFunction<_dart_test1>();
 }
 
 class test2 extends ffi.Struct {
diff --git a/pkgs/ffigen/test/code_generator_tests/expected_bindings/_expected_function_bindings.dart b/pkgs/ffigen/test/code_generator_tests/expected_bindings/_expected_function_bindings.dart
index 4c144d8..30de175 100644
--- a/pkgs/ffigen/test/code_generator_tests/expected_bindings/_expected_function_bindings.dart
+++ b/pkgs/ffigen/test/code_generator_tests/expected_bindings/_expected_function_bindings.dart
@@ -20,39 +20,41 @@
   /// Just a test function
   /// heres another line
   int noParam() {
-    return (_noParam ??= _lookup<ffi.NativeFunction<_c_noParam>>('noParam')
-        .asFunction<_dart_noParam>())();
+    return _noParam();
   }
 
-  _dart_noParam? _noParam;
+  late final _noParam_ptr = _lookup<ffi.NativeFunction<_c_noParam>>('noParam');
+  late final _dart_noParam _noParam = _noParam_ptr.asFunction<_dart_noParam>();
 
   int withPrimitiveParam(
     int a,
     int b,
   ) {
-    return (_withPrimitiveParam ??=
-        _lookup<ffi.NativeFunction<_c_withPrimitiveParam>>('withPrimitiveParam')
-            .asFunction<_dart_withPrimitiveParam>())(
+    return _withPrimitiveParam(
       a,
       b,
     );
   }
 
-  _dart_withPrimitiveParam? _withPrimitiveParam;
+  late final _withPrimitiveParam_ptr =
+      _lookup<ffi.NativeFunction<_c_withPrimitiveParam>>('withPrimitiveParam');
+  late final _dart_withPrimitiveParam _withPrimitiveParam =
+      _withPrimitiveParam_ptr.asFunction<_dart_withPrimitiveParam>();
 
   ffi.Pointer<ffi.Double> withPointerParam(
     ffi.Pointer<ffi.Int32> a,
     ffi.Pointer<ffi.Pointer<ffi.Uint8>> b,
   ) {
-    return (_withPointerParam ??=
-        _lookup<ffi.NativeFunction<_c_withPointerParam>>('withPointerParam')
-            .asFunction<_dart_withPointerParam>())(
+    return _withPointerParam(
       a,
       b,
     );
   }
 
-  _dart_withPointerParam? _withPointerParam;
+  late final _withPointerParam_ptr =
+      _lookup<ffi.NativeFunction<_c_withPointerParam>>('withPointerParam');
+  late final _dart_withPointerParam _withPointerParam =
+      _withPointerParam_ptr.asFunction<_dart_withPointerParam>();
 }
 
 typedef _c_noParam = ffi.Int32 Function();
diff --git a/pkgs/ffigen/test/code_generator_tests/expected_bindings/_expected_function_n_struct_bindings.dart b/pkgs/ffigen/test/code_generator_tests/expected_bindings/_expected_function_n_struct_bindings.dart
index b9d654b..c4bfa27 100644
--- a/pkgs/ffigen/test/code_generator_tests/expected_bindings/_expected_function_n_struct_bindings.dart
+++ b/pkgs/ffigen/test/code_generator_tests/expected_bindings/_expected_function_n_struct_bindings.dart
@@ -20,13 +20,15 @@
   ffi.Pointer<SomeStruc> someFunc(
     ffi.Pointer<ffi.Pointer<SomeStruc>> some,
   ) {
-    return (_someFunc ??= _lookup<ffi.NativeFunction<_c_someFunc>>('someFunc')
-        .asFunction<_dart_someFunc>())(
+    return _someFunc(
       some,
     );
   }
 
-  _dart_someFunc? _someFunc;
+  late final _someFunc_ptr =
+      _lookup<ffi.NativeFunction<_c_someFunc>>('someFunc');
+  late final _dart_someFunc _someFunc =
+      _someFunc_ptr.asFunction<_dart_someFunc>();
 }
 
 class SomeStruc extends ffi.Struct {
diff --git a/pkgs/ffigen/test/code_generator_tests/expected_bindings/_expected_internal_conflict_resolution_bindings.dart b/pkgs/ffigen/test/code_generator_tests/expected_bindings/_expected_internal_conflict_resolution_bindings.dart
index 0c30a92..5e599fc 100644
--- a/pkgs/ffigen/test/code_generator_tests/expected_bindings/_expected_internal_conflict_resolution_bindings.dart
+++ b/pkgs/ffigen/test/code_generator_tests/expected_bindings/_expected_internal_conflict_resolution_bindings.dart
@@ -21,40 +21,41 @@
       : _lookup = lookup;
 
   void test() {
-    return (_test_1 ??= _lookup<ffi.NativeFunction<_c_test1>>('test')
-        .asFunction<_dart_test1>())();
+    return _test_1();
   }
 
-  _dart_test1? _test_1;
+  late final _test_ptr = _lookup<ffi.NativeFunction<_c_test1>>('test');
+  late final _dart_test1 _test_1 = _test_ptr.asFunction<_dart_test1>();
 
   void _test() {
-    return (__test ??= _lookup<ffi.NativeFunction<_c__test>>('_test')
-        .asFunction<_dart__test>())();
+    return __test();
   }
 
-  _dart__test? __test;
+  late final __test_ptr = _lookup<ffi.NativeFunction<_c__test>>('_test');
+  late final _dart__test __test = __test_ptr.asFunction<_dart__test>();
 
   void _c_test() {
-    return (__c_test ??= _lookup<ffi.NativeFunction<_c__c_test>>('_c_test')
-        .asFunction<_dart__c_test>())();
+    return __c_test();
   }
 
-  _dart__c_test? __c_test;
+  late final __c_test_ptr = _lookup<ffi.NativeFunction<_c__c_test>>('_c_test');
+  late final _dart__c_test __c_test = __c_test_ptr.asFunction<_dart__c_test>();
 
   void _dart_test() {
-    return (__dart_test ??=
-        _lookup<ffi.NativeFunction<_c__dart_test>>('_dart_test')
-            .asFunction<_dart__dart_test>())();
+    return __dart_test();
   }
 
-  _dart__dart_test? __dart_test;
+  late final __dart_test_ptr =
+      _lookup<ffi.NativeFunction<_c__dart_test>>('_dart_test');
+  late final _dart__dart_test __dart_test =
+      __dart_test_ptr.asFunction<_dart__dart_test>();
 
   void Test() {
-    return (_Test ??= _lookup<ffi.NativeFunction<_c_Test1>>('Test')
-        .asFunction<_dart_Test>())();
+    return _Test();
   }
 
-  _dart_Test? _Test;
+  late final _Test_ptr = _lookup<ffi.NativeFunction<_c_Test1>>('Test');
+  late final _dart_Test _Test = _Test_ptr.asFunction<_dart_Test>();
 }
 
 class _Test extends ffi.Struct {
diff --git a/pkgs/ffigen/test/collision_tests/decl_symbol_address_collision_test.dart b/pkgs/ffigen/test/collision_tests/decl_symbol_address_collision_test.dart
new file mode 100644
index 0000000..cc534e8
--- /dev/null
+++ b/pkgs/ffigen/test/collision_tests/decl_symbol_address_collision_test.dart
@@ -0,0 +1,48 @@
+// Copyright (c) 2021, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+import 'package:ffigen/src/code_generator.dart';
+import 'package:logging/logging.dart';
+import 'package:test/test.dart';
+import '../test_utils.dart';
+
+late Library actual;
+void main() {
+  group('decl_symbol_address_collision_test', () {
+    setUpAll(() {
+      logWarnings(Level.SEVERE);
+      actual = Library(
+        name: 'Bindings',
+        header: '// ignore_for_file: unused_element',
+        bindings: [
+          Struc(name: 'addresses'),
+          Struc(name: '_SymbolAddresses'),
+          EnumClass(name: 'Bindings'),
+          Func(
+            name: '_library',
+            returnType: Type.nativeType(SupportedNativeType.Void),
+            exposeSymbolAddress: true,
+          ),
+          Func(
+            name: '_SymbolAddresses_1',
+            returnType: Type.nativeType(SupportedNativeType.Void),
+            exposeSymbolAddress: true,
+          ),
+        ],
+      );
+    });
+    test('declaration and symbol address conflict', () {
+      matchLibraryWithExpected(actual, [
+        'test',
+        'debug_generated',
+        'decl_symbol_address_collision_output.dart'
+      ], [
+        'test',
+        'collision_tests',
+        'expected_bindings',
+        '_expected_decl_symbol_address_collision_bindings.dart'
+      ]);
+    });
+  });
+}
diff --git a/pkgs/ffigen/test/collision_tests/expected_bindings/_expected_decl_symbol_address_collision_bindings.dart b/pkgs/ffigen/test/collision_tests/expected_bindings/_expected_decl_symbol_address_collision_bindings.dart
new file mode 100644
index 0000000..b983034
--- /dev/null
+++ b/pkgs/ffigen/test/collision_tests/expected_bindings/_expected_decl_symbol_address_collision_bindings.dart
@@ -0,0 +1,65 @@
+// ignore_for_file: unused_element
+// AUTO GENERATED FILE, DO NOT EDIT.
+//
+// Generated by `package:ffigen`.
+import 'dart:ffi' as ffi;
+
+class Bindings_1 {
+  /// Holds the symbol lookup function.
+  final ffi.Pointer<T> Function<T extends ffi.NativeType>(String symbolName)
+      _lookup;
+
+  /// The symbols are looked up in [dynamicLibrary].
+  Bindings_1(ffi.DynamicLibrary dynamicLibrary)
+      : _lookup = dynamicLibrary.lookup;
+
+  /// The symbols are looked up with [lookup].
+  Bindings_1.fromLookup(
+      ffi.Pointer<T> Function<T extends ffi.NativeType>(String symbolName)
+          lookup)
+      : _lookup = lookup;
+
+  void _library() {
+    return __library();
+  }
+
+  late final __library_ptr =
+      _lookup<ffi.NativeFunction<Native__library>>('_library');
+  late final _dart__library __library =
+      __library_ptr.asFunction<_dart__library>();
+
+  void _SymbolAddresses_1() {
+    return __SymbolAddresses_1();
+  }
+
+  late final __SymbolAddresses_1_ptr =
+      _lookup<ffi.NativeFunction<Native__SymbolAddresses_1>>(
+          '_SymbolAddresses_1');
+  late final _dart__SymbolAddresses_1 __SymbolAddresses_1 =
+      __SymbolAddresses_1_ptr.asFunction<_dart__SymbolAddresses_1>();
+
+  late final addresses = _SymbolAddresses_2(this);
+}
+
+class _SymbolAddresses_2 {
+  final Bindings_1 _library_1;
+  _SymbolAddresses_2(this._library_1);
+  ffi.Pointer<ffi.NativeFunction<Native__library>> get _library =>
+      _library_1.__library_ptr;
+  ffi.Pointer<ffi.NativeFunction<Native__SymbolAddresses_1>>
+      get _SymbolAddresses_1 => _library_1.__SymbolAddresses_1_ptr;
+}
+
+class addresses extends ffi.Opaque {}
+
+class _SymbolAddresses extends ffi.Opaque {}
+
+abstract class Bindings {}
+
+typedef Native__library = ffi.Void Function();
+
+typedef _dart__library = void Function();
+
+typedef Native__SymbolAddresses_1 = ffi.Void Function();
+
+typedef _dart__SymbolAddresses_1 = void Function();
diff --git a/pkgs/ffigen/test/example_tests/libclang_example_test.dart b/pkgs/ffigen/test/example_tests/libclang_example_test.dart
index f047376..e7cbc56 100644
--- a/pkgs/ffigen/test/example_tests/libclang_example_test.dart
+++ b/pkgs/ffigen/test/example_tests/libclang_example_test.dart
@@ -31,6 +31,9 @@
 ${strings.functions}:
   ${strings.include}:
     - 'clang_.*'
+  ${strings.symbolAddress}:
+      ${strings.include}:
+        - 'clang_.*'
 ${strings.structs}:
   ${strings.include}:
       - 'CX.*'
diff --git a/pkgs/ffigen/test/header_parser_tests/expected_bindings/_expected_native_func_typedef_bindings.dart b/pkgs/ffigen/test/header_parser_tests/expected_bindings/_expected_native_func_typedef_bindings.dart
index f488f34..bc97540 100644
--- a/pkgs/ffigen/test/header_parser_tests/expected_bindings/_expected_native_func_typedef_bindings.dart
+++ b/pkgs/ffigen/test/header_parser_tests/expected_bindings/_expected_native_func_typedef_bindings.dart
@@ -22,25 +22,26 @@
   void func(
     ffi.Pointer<ffi.NativeFunction<_typedefC_4>> unnamed1,
   ) {
-    return (_func ??=
-        _lookup<ffi.NativeFunction<_c_func>>('func').asFunction<_dart_func>())(
+    return _func(
       unnamed1,
     );
   }
 
-  _dart_func? _func;
+  late final _func_ptr = _lookup<ffi.NativeFunction<_c_func>>('func');
+  late final _dart_func _func = _func_ptr.asFunction<_dart_func>();
 
   void funcWithNativeFunc(
     ffi.Pointer<ffi.NativeFunction<withTypedefReturnType>> named,
   ) {
-    return (_funcWithNativeFunc ??=
-        _lookup<ffi.NativeFunction<_c_funcWithNativeFunc>>('funcWithNativeFunc')
-            .asFunction<_dart_funcWithNativeFunc>())(
+    return _funcWithNativeFunc(
       named,
     );
   }
 
-  _dart_funcWithNativeFunc? _funcWithNativeFunc;
+  late final _funcWithNativeFunc_ptr =
+      _lookup<ffi.NativeFunction<_c_funcWithNativeFunc>>('funcWithNativeFunc');
+  late final _dart_funcWithNativeFunc _funcWithNativeFunc =
+      _funcWithNativeFunc_ptr.asFunction<_dart_funcWithNativeFunc>();
 }
 
 class struc extends ffi.Struct {
diff --git a/pkgs/ffigen/test/header_parser_tests/functions_test.dart b/pkgs/ffigen/test/header_parser_tests/functions_test.dart
index c02905d..ec5c2f6 100644
--- a/pkgs/ffigen/test/header_parser_tests/functions_test.dart
+++ b/pkgs/ffigen/test/header_parser_tests/functions_test.dart
@@ -29,6 +29,12 @@
     - 'test/header_parser_tests/functions.h'
   ${strings.includeDirectives}:
     - '**functions.h'
+
+${strings.functions}:
+  ${strings.symbolAddress}:
+    ${strings.include}:
+      - func3
+      - func4
         ''') as yaml.YamlMap),
       );
     });
@@ -92,6 +98,7 @@
       ),
       Func(
         name: 'func3',
+        exposeSymbolAddress: true,
         returnType: Type.nativeType(
           SupportedNativeType.Double,
         ),
@@ -123,6 +130,7 @@
       ),
       Func(
           name: 'func4',
+          exposeSymbolAddress: true,
           returnType: Type.pointer(Type.nativeType(SupportedNativeType.Void)),
           parameters: [
             Parameter(
diff --git a/pkgs/ffigen/test/header_parser_tests/globals_test.dart b/pkgs/ffigen/test/header_parser_tests/globals_test.dart
index 832b89d..db7bf8e 100644
--- a/pkgs/ffigen/test/header_parser_tests/globals_test.dart
+++ b/pkgs/ffigen/test/header_parser_tests/globals_test.dart
@@ -31,6 +31,11 @@
 ${strings.globals}:
   ${strings.exclude}:
     - GlobalIgnore
+  ${strings.symbolAddress}:
+    ${strings.include}:
+      - myInt
+      - pointerToLongDouble
+      - globalStruct
 # Needed for stdbool.h in MacOS
 ${strings.compilerOpts}: '-I/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/Frameworks/Kernel.framework/Headers/ -Wno-nullability-completeness'
         ''') as yaml.YamlMap),
@@ -67,12 +72,22 @@
     name: 'Bindings',
     bindings: [
       Global(type: Type.boolean(), name: 'coolGlobal'),
-      Global(type: Type.nativeType(SupportedNativeType.Int32), name: 'myInt'),
       Global(
-          type: Type.pointer(Type.nativeType(SupportedNativeType.Int32)),
-          name: 'aGlobalPointer'),
+        type: Type.nativeType(SupportedNativeType.Int32),
+        name: 'myInt',
+        exposeSymbolAddress: true,
+      ),
+      Global(
+        type: Type.pointer(Type.nativeType(SupportedNativeType.Int32)),
+        name: 'aGlobalPointer',
+        exposeSymbolAddress: true,
+      ),
       globalStruc,
-      Global(name: 'globalStruct', type: Type.struct(globalStruc)),
+      Global(
+        name: 'globalStruct',
+        type: Type.struct(globalStruc),
+        exposeSymbolAddress: true,
+      ),
     ],
   );
 }
diff --git a/pkgs/ffigen/test/large_integration_tests/_expected_cjson_bindings.dart b/pkgs/ffigen/test/large_integration_tests/_expected_cjson_bindings.dart
index 751780a..818416a 100644
--- a/pkgs/ffigen/test/large_integration_tests/_expected_cjson_bindings.dart
+++ b/pkgs/ffigen/test/large_integration_tests/_expected_cjson_bindings.dart
@@ -19,95 +19,102 @@
       : _lookup = lookup;
 
   ffi.Pointer<ffi.Int8> cJSON_Version() {
-    return (_cJSON_Version ??=
-        _lookup<ffi.NativeFunction<_c_cJSON_Version>>('cJSON_Version')
-            .asFunction<_dart_cJSON_Version>())();
+    return _cJSON_Version();
   }
 
-  _dart_cJSON_Version? _cJSON_Version;
+  late final _cJSON_Version_ptr =
+      _lookup<ffi.NativeFunction<_c_cJSON_Version>>('cJSON_Version');
+  late final _dart_cJSON_Version _cJSON_Version =
+      _cJSON_Version_ptr.asFunction<_dart_cJSON_Version>();
 
   void cJSON_InitHooks(
     ffi.Pointer<cJSON_Hooks> hooks,
   ) {
-    return (_cJSON_InitHooks ??=
-        _lookup<ffi.NativeFunction<_c_cJSON_InitHooks>>('cJSON_InitHooks')
-            .asFunction<_dart_cJSON_InitHooks>())(
+    return _cJSON_InitHooks(
       hooks,
     );
   }
 
-  _dart_cJSON_InitHooks? _cJSON_InitHooks;
+  late final _cJSON_InitHooks_ptr =
+      _lookup<ffi.NativeFunction<_c_cJSON_InitHooks>>('cJSON_InitHooks');
+  late final _dart_cJSON_InitHooks _cJSON_InitHooks =
+      _cJSON_InitHooks_ptr.asFunction<_dart_cJSON_InitHooks>();
 
   ffi.Pointer<cJSON> cJSON_Parse(
     ffi.Pointer<ffi.Int8> value,
   ) {
-    return (_cJSON_Parse ??=
-        _lookup<ffi.NativeFunction<_c_cJSON_Parse>>('cJSON_Parse')
-            .asFunction<_dart_cJSON_Parse>())(
+    return _cJSON_Parse(
       value,
     );
   }
 
-  _dart_cJSON_Parse? _cJSON_Parse;
+  late final _cJSON_Parse_ptr =
+      _lookup<ffi.NativeFunction<_c_cJSON_Parse>>('cJSON_Parse');
+  late final _dart_cJSON_Parse _cJSON_Parse =
+      _cJSON_Parse_ptr.asFunction<_dart_cJSON_Parse>();
 
   ffi.Pointer<cJSON> cJSON_ParseWithOpts(
     ffi.Pointer<ffi.Int8> value,
     ffi.Pointer<ffi.Pointer<ffi.Int8>> return_parse_end,
     int require_null_terminated,
   ) {
-    return (_cJSON_ParseWithOpts ??=
-        _lookup<ffi.NativeFunction<_c_cJSON_ParseWithOpts>>(
-                'cJSON_ParseWithOpts')
-            .asFunction<_dart_cJSON_ParseWithOpts>())(
+    return _cJSON_ParseWithOpts(
       value,
       return_parse_end,
       require_null_terminated,
     );
   }
 
-  _dart_cJSON_ParseWithOpts? _cJSON_ParseWithOpts;
+  late final _cJSON_ParseWithOpts_ptr =
+      _lookup<ffi.NativeFunction<_c_cJSON_ParseWithOpts>>(
+          'cJSON_ParseWithOpts');
+  late final _dart_cJSON_ParseWithOpts _cJSON_ParseWithOpts =
+      _cJSON_ParseWithOpts_ptr.asFunction<_dart_cJSON_ParseWithOpts>();
 
   ffi.Pointer<ffi.Int8> cJSON_Print(
     ffi.Pointer<cJSON> item,
   ) {
-    return (_cJSON_Print ??=
-        _lookup<ffi.NativeFunction<_c_cJSON_Print>>('cJSON_Print')
-            .asFunction<_dart_cJSON_Print>())(
+    return _cJSON_Print(
       item,
     );
   }
 
-  _dart_cJSON_Print? _cJSON_Print;
+  late final _cJSON_Print_ptr =
+      _lookup<ffi.NativeFunction<_c_cJSON_Print>>('cJSON_Print');
+  late final _dart_cJSON_Print _cJSON_Print =
+      _cJSON_Print_ptr.asFunction<_dart_cJSON_Print>();
 
   ffi.Pointer<ffi.Int8> cJSON_PrintUnformatted(
     ffi.Pointer<cJSON> item,
   ) {
-    return (_cJSON_PrintUnformatted ??=
-        _lookup<ffi.NativeFunction<_c_cJSON_PrintUnformatted>>(
-                'cJSON_PrintUnformatted')
-            .asFunction<_dart_cJSON_PrintUnformatted>())(
+    return _cJSON_PrintUnformatted(
       item,
     );
   }
 
-  _dart_cJSON_PrintUnformatted? _cJSON_PrintUnformatted;
+  late final _cJSON_PrintUnformatted_ptr =
+      _lookup<ffi.NativeFunction<_c_cJSON_PrintUnformatted>>(
+          'cJSON_PrintUnformatted');
+  late final _dart_cJSON_PrintUnformatted _cJSON_PrintUnformatted =
+      _cJSON_PrintUnformatted_ptr.asFunction<_dart_cJSON_PrintUnformatted>();
 
   ffi.Pointer<ffi.Int8> cJSON_PrintBuffered(
     ffi.Pointer<cJSON> item,
     int prebuffer,
     int fmt,
   ) {
-    return (_cJSON_PrintBuffered ??=
-        _lookup<ffi.NativeFunction<_c_cJSON_PrintBuffered>>(
-                'cJSON_PrintBuffered')
-            .asFunction<_dart_cJSON_PrintBuffered>())(
+    return _cJSON_PrintBuffered(
       item,
       prebuffer,
       fmt,
     );
   }
 
-  _dart_cJSON_PrintBuffered? _cJSON_PrintBuffered;
+  late final _cJSON_PrintBuffered_ptr =
+      _lookup<ffi.NativeFunction<_c_cJSON_PrintBuffered>>(
+          'cJSON_PrintBuffered');
+  late final _dart_cJSON_PrintBuffered _cJSON_PrintBuffered =
+      _cJSON_PrintBuffered_ptr.asFunction<_dart_cJSON_PrintBuffered>();
 
   int cJSON_PrintPreallocated(
     ffi.Pointer<cJSON> item,
@@ -115,10 +122,7 @@
     int length,
     int format,
   ) {
-    return (_cJSON_PrintPreallocated ??=
-        _lookup<ffi.NativeFunction<_c_cJSON_PrintPreallocated>>(
-                'cJSON_PrintPreallocated')
-            .asFunction<_dart_cJSON_PrintPreallocated>())(
+    return _cJSON_PrintPreallocated(
       item,
       buffer,
       length,
@@ -126,916 +130,1003 @@
     );
   }
 
-  _dart_cJSON_PrintPreallocated? _cJSON_PrintPreallocated;
+  late final _cJSON_PrintPreallocated_ptr =
+      _lookup<ffi.NativeFunction<_c_cJSON_PrintPreallocated>>(
+          'cJSON_PrintPreallocated');
+  late final _dart_cJSON_PrintPreallocated _cJSON_PrintPreallocated =
+      _cJSON_PrintPreallocated_ptr.asFunction<_dart_cJSON_PrintPreallocated>();
 
   void cJSON_Delete(
     ffi.Pointer<cJSON> item,
   ) {
-    return (_cJSON_Delete ??=
-        _lookup<ffi.NativeFunction<_c_cJSON_Delete>>('cJSON_Delete')
-            .asFunction<_dart_cJSON_Delete>())(
+    return _cJSON_Delete(
       item,
     );
   }
 
-  _dart_cJSON_Delete? _cJSON_Delete;
+  late final _cJSON_Delete_ptr =
+      _lookup<ffi.NativeFunction<_c_cJSON_Delete>>('cJSON_Delete');
+  late final _dart_cJSON_Delete _cJSON_Delete =
+      _cJSON_Delete_ptr.asFunction<_dart_cJSON_Delete>();
 
   int cJSON_GetArraySize(
     ffi.Pointer<cJSON> array,
   ) {
-    return (_cJSON_GetArraySize ??=
-        _lookup<ffi.NativeFunction<_c_cJSON_GetArraySize>>('cJSON_GetArraySize')
-            .asFunction<_dart_cJSON_GetArraySize>())(
+    return _cJSON_GetArraySize(
       array,
     );
   }
 
-  _dart_cJSON_GetArraySize? _cJSON_GetArraySize;
+  late final _cJSON_GetArraySize_ptr =
+      _lookup<ffi.NativeFunction<_c_cJSON_GetArraySize>>('cJSON_GetArraySize');
+  late final _dart_cJSON_GetArraySize _cJSON_GetArraySize =
+      _cJSON_GetArraySize_ptr.asFunction<_dart_cJSON_GetArraySize>();
 
   ffi.Pointer<cJSON> cJSON_GetArrayItem(
     ffi.Pointer<cJSON> array,
     int index,
   ) {
-    return (_cJSON_GetArrayItem ??=
-        _lookup<ffi.NativeFunction<_c_cJSON_GetArrayItem>>('cJSON_GetArrayItem')
-            .asFunction<_dart_cJSON_GetArrayItem>())(
+    return _cJSON_GetArrayItem(
       array,
       index,
     );
   }
 
-  _dart_cJSON_GetArrayItem? _cJSON_GetArrayItem;
+  late final _cJSON_GetArrayItem_ptr =
+      _lookup<ffi.NativeFunction<_c_cJSON_GetArrayItem>>('cJSON_GetArrayItem');
+  late final _dart_cJSON_GetArrayItem _cJSON_GetArrayItem =
+      _cJSON_GetArrayItem_ptr.asFunction<_dart_cJSON_GetArrayItem>();
 
   ffi.Pointer<cJSON> cJSON_GetObjectItem(
     ffi.Pointer<cJSON> object,
     ffi.Pointer<ffi.Int8> string,
   ) {
-    return (_cJSON_GetObjectItem ??=
-        _lookup<ffi.NativeFunction<_c_cJSON_GetObjectItem>>(
-                'cJSON_GetObjectItem')
-            .asFunction<_dart_cJSON_GetObjectItem>())(
+    return _cJSON_GetObjectItem(
       object,
       string,
     );
   }
 
-  _dart_cJSON_GetObjectItem? _cJSON_GetObjectItem;
+  late final _cJSON_GetObjectItem_ptr =
+      _lookup<ffi.NativeFunction<_c_cJSON_GetObjectItem>>(
+          'cJSON_GetObjectItem');
+  late final _dart_cJSON_GetObjectItem _cJSON_GetObjectItem =
+      _cJSON_GetObjectItem_ptr.asFunction<_dart_cJSON_GetObjectItem>();
 
   ffi.Pointer<cJSON> cJSON_GetObjectItemCaseSensitive(
     ffi.Pointer<cJSON> object,
     ffi.Pointer<ffi.Int8> string,
   ) {
-    return (_cJSON_GetObjectItemCaseSensitive ??=
-        _lookup<ffi.NativeFunction<_c_cJSON_GetObjectItemCaseSensitive>>(
-                'cJSON_GetObjectItemCaseSensitive')
-            .asFunction<_dart_cJSON_GetObjectItemCaseSensitive>())(
+    return _cJSON_GetObjectItemCaseSensitive(
       object,
       string,
     );
   }
 
-  _dart_cJSON_GetObjectItemCaseSensitive? _cJSON_GetObjectItemCaseSensitive;
+  late final _cJSON_GetObjectItemCaseSensitive_ptr =
+      _lookup<ffi.NativeFunction<_c_cJSON_GetObjectItemCaseSensitive>>(
+          'cJSON_GetObjectItemCaseSensitive');
+  late final _dart_cJSON_GetObjectItemCaseSensitive
+      _cJSON_GetObjectItemCaseSensitive = _cJSON_GetObjectItemCaseSensitive_ptr
+          .asFunction<_dart_cJSON_GetObjectItemCaseSensitive>();
 
   int cJSON_HasObjectItem(
     ffi.Pointer<cJSON> object,
     ffi.Pointer<ffi.Int8> string,
   ) {
-    return (_cJSON_HasObjectItem ??=
-        _lookup<ffi.NativeFunction<_c_cJSON_HasObjectItem>>(
-                'cJSON_HasObjectItem')
-            .asFunction<_dart_cJSON_HasObjectItem>())(
+    return _cJSON_HasObjectItem(
       object,
       string,
     );
   }
 
-  _dart_cJSON_HasObjectItem? _cJSON_HasObjectItem;
+  late final _cJSON_HasObjectItem_ptr =
+      _lookup<ffi.NativeFunction<_c_cJSON_HasObjectItem>>(
+          'cJSON_HasObjectItem');
+  late final _dart_cJSON_HasObjectItem _cJSON_HasObjectItem =
+      _cJSON_HasObjectItem_ptr.asFunction<_dart_cJSON_HasObjectItem>();
 
   ffi.Pointer<ffi.Int8> cJSON_GetErrorPtr() {
-    return (_cJSON_GetErrorPtr ??=
-        _lookup<ffi.NativeFunction<_c_cJSON_GetErrorPtr>>('cJSON_GetErrorPtr')
-            .asFunction<_dart_cJSON_GetErrorPtr>())();
+    return _cJSON_GetErrorPtr();
   }
 
-  _dart_cJSON_GetErrorPtr? _cJSON_GetErrorPtr;
+  late final _cJSON_GetErrorPtr_ptr =
+      _lookup<ffi.NativeFunction<_c_cJSON_GetErrorPtr>>('cJSON_GetErrorPtr');
+  late final _dart_cJSON_GetErrorPtr _cJSON_GetErrorPtr =
+      _cJSON_GetErrorPtr_ptr.asFunction<_dart_cJSON_GetErrorPtr>();
 
   ffi.Pointer<ffi.Int8> cJSON_GetStringValue(
     ffi.Pointer<cJSON> item,
   ) {
-    return (_cJSON_GetStringValue ??=
-        _lookup<ffi.NativeFunction<_c_cJSON_GetStringValue>>(
-                'cJSON_GetStringValue')
-            .asFunction<_dart_cJSON_GetStringValue>())(
+    return _cJSON_GetStringValue(
       item,
     );
   }
 
-  _dart_cJSON_GetStringValue? _cJSON_GetStringValue;
+  late final _cJSON_GetStringValue_ptr =
+      _lookup<ffi.NativeFunction<_c_cJSON_GetStringValue>>(
+          'cJSON_GetStringValue');
+  late final _dart_cJSON_GetStringValue _cJSON_GetStringValue =
+      _cJSON_GetStringValue_ptr.asFunction<_dart_cJSON_GetStringValue>();
 
   int cJSON_IsInvalid(
     ffi.Pointer<cJSON> item,
   ) {
-    return (_cJSON_IsInvalid ??=
-        _lookup<ffi.NativeFunction<_c_cJSON_IsInvalid>>('cJSON_IsInvalid')
-            .asFunction<_dart_cJSON_IsInvalid>())(
+    return _cJSON_IsInvalid(
       item,
     );
   }
 
-  _dart_cJSON_IsInvalid? _cJSON_IsInvalid;
+  late final _cJSON_IsInvalid_ptr =
+      _lookup<ffi.NativeFunction<_c_cJSON_IsInvalid>>('cJSON_IsInvalid');
+  late final _dart_cJSON_IsInvalid _cJSON_IsInvalid =
+      _cJSON_IsInvalid_ptr.asFunction<_dart_cJSON_IsInvalid>();
 
   int cJSON_IsFalse(
     ffi.Pointer<cJSON> item,
   ) {
-    return (_cJSON_IsFalse ??=
-        _lookup<ffi.NativeFunction<_c_cJSON_IsFalse>>('cJSON_IsFalse')
-            .asFunction<_dart_cJSON_IsFalse>())(
+    return _cJSON_IsFalse(
       item,
     );
   }
 
-  _dart_cJSON_IsFalse? _cJSON_IsFalse;
+  late final _cJSON_IsFalse_ptr =
+      _lookup<ffi.NativeFunction<_c_cJSON_IsFalse>>('cJSON_IsFalse');
+  late final _dart_cJSON_IsFalse _cJSON_IsFalse =
+      _cJSON_IsFalse_ptr.asFunction<_dart_cJSON_IsFalse>();
 
   int cJSON_IsTrue(
     ffi.Pointer<cJSON> item,
   ) {
-    return (_cJSON_IsTrue ??=
-        _lookup<ffi.NativeFunction<_c_cJSON_IsTrue>>('cJSON_IsTrue')
-            .asFunction<_dart_cJSON_IsTrue>())(
+    return _cJSON_IsTrue(
       item,
     );
   }
 
-  _dart_cJSON_IsTrue? _cJSON_IsTrue;
+  late final _cJSON_IsTrue_ptr =
+      _lookup<ffi.NativeFunction<_c_cJSON_IsTrue>>('cJSON_IsTrue');
+  late final _dart_cJSON_IsTrue _cJSON_IsTrue =
+      _cJSON_IsTrue_ptr.asFunction<_dart_cJSON_IsTrue>();
 
   int cJSON_IsBool(
     ffi.Pointer<cJSON> item,
   ) {
-    return (_cJSON_IsBool ??=
-        _lookup<ffi.NativeFunction<_c_cJSON_IsBool>>('cJSON_IsBool')
-            .asFunction<_dart_cJSON_IsBool>())(
+    return _cJSON_IsBool(
       item,
     );
   }
 
-  _dart_cJSON_IsBool? _cJSON_IsBool;
+  late final _cJSON_IsBool_ptr =
+      _lookup<ffi.NativeFunction<_c_cJSON_IsBool>>('cJSON_IsBool');
+  late final _dart_cJSON_IsBool _cJSON_IsBool =
+      _cJSON_IsBool_ptr.asFunction<_dart_cJSON_IsBool>();
 
   int cJSON_IsNull(
     ffi.Pointer<cJSON> item,
   ) {
-    return (_cJSON_IsNull ??=
-        _lookup<ffi.NativeFunction<_c_cJSON_IsNull>>('cJSON_IsNull')
-            .asFunction<_dart_cJSON_IsNull>())(
+    return _cJSON_IsNull(
       item,
     );
   }
 
-  _dart_cJSON_IsNull? _cJSON_IsNull;
+  late final _cJSON_IsNull_ptr =
+      _lookup<ffi.NativeFunction<_c_cJSON_IsNull>>('cJSON_IsNull');
+  late final _dart_cJSON_IsNull _cJSON_IsNull =
+      _cJSON_IsNull_ptr.asFunction<_dart_cJSON_IsNull>();
 
   int cJSON_IsNumber(
     ffi.Pointer<cJSON> item,
   ) {
-    return (_cJSON_IsNumber ??=
-        _lookup<ffi.NativeFunction<_c_cJSON_IsNumber>>('cJSON_IsNumber')
-            .asFunction<_dart_cJSON_IsNumber>())(
+    return _cJSON_IsNumber(
       item,
     );
   }
 
-  _dart_cJSON_IsNumber? _cJSON_IsNumber;
+  late final _cJSON_IsNumber_ptr =
+      _lookup<ffi.NativeFunction<_c_cJSON_IsNumber>>('cJSON_IsNumber');
+  late final _dart_cJSON_IsNumber _cJSON_IsNumber =
+      _cJSON_IsNumber_ptr.asFunction<_dart_cJSON_IsNumber>();
 
   int cJSON_IsString(
     ffi.Pointer<cJSON> item,
   ) {
-    return (_cJSON_IsString ??=
-        _lookup<ffi.NativeFunction<_c_cJSON_IsString>>('cJSON_IsString')
-            .asFunction<_dart_cJSON_IsString>())(
+    return _cJSON_IsString(
       item,
     );
   }
 
-  _dart_cJSON_IsString? _cJSON_IsString;
+  late final _cJSON_IsString_ptr =
+      _lookup<ffi.NativeFunction<_c_cJSON_IsString>>('cJSON_IsString');
+  late final _dart_cJSON_IsString _cJSON_IsString =
+      _cJSON_IsString_ptr.asFunction<_dart_cJSON_IsString>();
 
   int cJSON_IsArray(
     ffi.Pointer<cJSON> item,
   ) {
-    return (_cJSON_IsArray ??=
-        _lookup<ffi.NativeFunction<_c_cJSON_IsArray>>('cJSON_IsArray')
-            .asFunction<_dart_cJSON_IsArray>())(
+    return _cJSON_IsArray(
       item,
     );
   }
 
-  _dart_cJSON_IsArray? _cJSON_IsArray;
+  late final _cJSON_IsArray_ptr =
+      _lookup<ffi.NativeFunction<_c_cJSON_IsArray>>('cJSON_IsArray');
+  late final _dart_cJSON_IsArray _cJSON_IsArray =
+      _cJSON_IsArray_ptr.asFunction<_dart_cJSON_IsArray>();
 
   int cJSON_IsObject(
     ffi.Pointer<cJSON> item,
   ) {
-    return (_cJSON_IsObject ??=
-        _lookup<ffi.NativeFunction<_c_cJSON_IsObject>>('cJSON_IsObject')
-            .asFunction<_dart_cJSON_IsObject>())(
+    return _cJSON_IsObject(
       item,
     );
   }
 
-  _dart_cJSON_IsObject? _cJSON_IsObject;
+  late final _cJSON_IsObject_ptr =
+      _lookup<ffi.NativeFunction<_c_cJSON_IsObject>>('cJSON_IsObject');
+  late final _dart_cJSON_IsObject _cJSON_IsObject =
+      _cJSON_IsObject_ptr.asFunction<_dart_cJSON_IsObject>();
 
   int cJSON_IsRaw(
     ffi.Pointer<cJSON> item,
   ) {
-    return (_cJSON_IsRaw ??=
-        _lookup<ffi.NativeFunction<_c_cJSON_IsRaw>>('cJSON_IsRaw')
-            .asFunction<_dart_cJSON_IsRaw>())(
+    return _cJSON_IsRaw(
       item,
     );
   }
 
-  _dart_cJSON_IsRaw? _cJSON_IsRaw;
+  late final _cJSON_IsRaw_ptr =
+      _lookup<ffi.NativeFunction<_c_cJSON_IsRaw>>('cJSON_IsRaw');
+  late final _dart_cJSON_IsRaw _cJSON_IsRaw =
+      _cJSON_IsRaw_ptr.asFunction<_dart_cJSON_IsRaw>();
 
   ffi.Pointer<cJSON> cJSON_CreateNull() {
-    return (_cJSON_CreateNull ??=
-        _lookup<ffi.NativeFunction<_c_cJSON_CreateNull>>('cJSON_CreateNull')
-            .asFunction<_dart_cJSON_CreateNull>())();
+    return _cJSON_CreateNull();
   }
 
-  _dart_cJSON_CreateNull? _cJSON_CreateNull;
+  late final _cJSON_CreateNull_ptr =
+      _lookup<ffi.NativeFunction<_c_cJSON_CreateNull>>('cJSON_CreateNull');
+  late final _dart_cJSON_CreateNull _cJSON_CreateNull =
+      _cJSON_CreateNull_ptr.asFunction<_dart_cJSON_CreateNull>();
 
   ffi.Pointer<cJSON> cJSON_CreateTrue() {
-    return (_cJSON_CreateTrue ??=
-        _lookup<ffi.NativeFunction<_c_cJSON_CreateTrue>>('cJSON_CreateTrue')
-            .asFunction<_dart_cJSON_CreateTrue>())();
+    return _cJSON_CreateTrue();
   }
 
-  _dart_cJSON_CreateTrue? _cJSON_CreateTrue;
+  late final _cJSON_CreateTrue_ptr =
+      _lookup<ffi.NativeFunction<_c_cJSON_CreateTrue>>('cJSON_CreateTrue');
+  late final _dart_cJSON_CreateTrue _cJSON_CreateTrue =
+      _cJSON_CreateTrue_ptr.asFunction<_dart_cJSON_CreateTrue>();
 
   ffi.Pointer<cJSON> cJSON_CreateFalse() {
-    return (_cJSON_CreateFalse ??=
-        _lookup<ffi.NativeFunction<_c_cJSON_CreateFalse>>('cJSON_CreateFalse')
-            .asFunction<_dart_cJSON_CreateFalse>())();
+    return _cJSON_CreateFalse();
   }
 
-  _dart_cJSON_CreateFalse? _cJSON_CreateFalse;
+  late final _cJSON_CreateFalse_ptr =
+      _lookup<ffi.NativeFunction<_c_cJSON_CreateFalse>>('cJSON_CreateFalse');
+  late final _dart_cJSON_CreateFalse _cJSON_CreateFalse =
+      _cJSON_CreateFalse_ptr.asFunction<_dart_cJSON_CreateFalse>();
 
   ffi.Pointer<cJSON> cJSON_CreateBool(
     int boolean,
   ) {
-    return (_cJSON_CreateBool ??=
-        _lookup<ffi.NativeFunction<_c_cJSON_CreateBool>>('cJSON_CreateBool')
-            .asFunction<_dart_cJSON_CreateBool>())(
+    return _cJSON_CreateBool(
       boolean,
     );
   }
 
-  _dart_cJSON_CreateBool? _cJSON_CreateBool;
+  late final _cJSON_CreateBool_ptr =
+      _lookup<ffi.NativeFunction<_c_cJSON_CreateBool>>('cJSON_CreateBool');
+  late final _dart_cJSON_CreateBool _cJSON_CreateBool =
+      _cJSON_CreateBool_ptr.asFunction<_dart_cJSON_CreateBool>();
 
   ffi.Pointer<cJSON> cJSON_CreateNumber(
     double num,
   ) {
-    return (_cJSON_CreateNumber ??=
-        _lookup<ffi.NativeFunction<_c_cJSON_CreateNumber>>('cJSON_CreateNumber')
-            .asFunction<_dart_cJSON_CreateNumber>())(
+    return _cJSON_CreateNumber(
       num,
     );
   }
 
-  _dart_cJSON_CreateNumber? _cJSON_CreateNumber;
+  late final _cJSON_CreateNumber_ptr =
+      _lookup<ffi.NativeFunction<_c_cJSON_CreateNumber>>('cJSON_CreateNumber');
+  late final _dart_cJSON_CreateNumber _cJSON_CreateNumber =
+      _cJSON_CreateNumber_ptr.asFunction<_dart_cJSON_CreateNumber>();
 
   ffi.Pointer<cJSON> cJSON_CreateString(
     ffi.Pointer<ffi.Int8> string,
   ) {
-    return (_cJSON_CreateString ??=
-        _lookup<ffi.NativeFunction<_c_cJSON_CreateString>>('cJSON_CreateString')
-            .asFunction<_dart_cJSON_CreateString>())(
+    return _cJSON_CreateString(
       string,
     );
   }
 
-  _dart_cJSON_CreateString? _cJSON_CreateString;
+  late final _cJSON_CreateString_ptr =
+      _lookup<ffi.NativeFunction<_c_cJSON_CreateString>>('cJSON_CreateString');
+  late final _dart_cJSON_CreateString _cJSON_CreateString =
+      _cJSON_CreateString_ptr.asFunction<_dart_cJSON_CreateString>();
 
   ffi.Pointer<cJSON> cJSON_CreateRaw(
     ffi.Pointer<ffi.Int8> raw,
   ) {
-    return (_cJSON_CreateRaw ??=
-        _lookup<ffi.NativeFunction<_c_cJSON_CreateRaw>>('cJSON_CreateRaw')
-            .asFunction<_dart_cJSON_CreateRaw>())(
+    return _cJSON_CreateRaw(
       raw,
     );
   }
 
-  _dart_cJSON_CreateRaw? _cJSON_CreateRaw;
+  late final _cJSON_CreateRaw_ptr =
+      _lookup<ffi.NativeFunction<_c_cJSON_CreateRaw>>('cJSON_CreateRaw');
+  late final _dart_cJSON_CreateRaw _cJSON_CreateRaw =
+      _cJSON_CreateRaw_ptr.asFunction<_dart_cJSON_CreateRaw>();
 
   ffi.Pointer<cJSON> cJSON_CreateArray() {
-    return (_cJSON_CreateArray ??=
-        _lookup<ffi.NativeFunction<_c_cJSON_CreateArray>>('cJSON_CreateArray')
-            .asFunction<_dart_cJSON_CreateArray>())();
+    return _cJSON_CreateArray();
   }
 
-  _dart_cJSON_CreateArray? _cJSON_CreateArray;
+  late final _cJSON_CreateArray_ptr =
+      _lookup<ffi.NativeFunction<_c_cJSON_CreateArray>>('cJSON_CreateArray');
+  late final _dart_cJSON_CreateArray _cJSON_CreateArray =
+      _cJSON_CreateArray_ptr.asFunction<_dart_cJSON_CreateArray>();
 
   ffi.Pointer<cJSON> cJSON_CreateObject() {
-    return (_cJSON_CreateObject ??=
-        _lookup<ffi.NativeFunction<_c_cJSON_CreateObject>>('cJSON_CreateObject')
-            .asFunction<_dart_cJSON_CreateObject>())();
+    return _cJSON_CreateObject();
   }
 
-  _dart_cJSON_CreateObject? _cJSON_CreateObject;
+  late final _cJSON_CreateObject_ptr =
+      _lookup<ffi.NativeFunction<_c_cJSON_CreateObject>>('cJSON_CreateObject');
+  late final _dart_cJSON_CreateObject _cJSON_CreateObject =
+      _cJSON_CreateObject_ptr.asFunction<_dart_cJSON_CreateObject>();
 
   ffi.Pointer<cJSON> cJSON_CreateStringReference(
     ffi.Pointer<ffi.Int8> string,
   ) {
-    return (_cJSON_CreateStringReference ??=
-        _lookup<ffi.NativeFunction<_c_cJSON_CreateStringReference>>(
-                'cJSON_CreateStringReference')
-            .asFunction<_dart_cJSON_CreateStringReference>())(
+    return _cJSON_CreateStringReference(
       string,
     );
   }
 
-  _dart_cJSON_CreateStringReference? _cJSON_CreateStringReference;
+  late final _cJSON_CreateStringReference_ptr =
+      _lookup<ffi.NativeFunction<_c_cJSON_CreateStringReference>>(
+          'cJSON_CreateStringReference');
+  late final _dart_cJSON_CreateStringReference _cJSON_CreateStringReference =
+      _cJSON_CreateStringReference_ptr
+          .asFunction<_dart_cJSON_CreateStringReference>();
 
   ffi.Pointer<cJSON> cJSON_CreateObjectReference(
     ffi.Pointer<cJSON> child,
   ) {
-    return (_cJSON_CreateObjectReference ??=
-        _lookup<ffi.NativeFunction<_c_cJSON_CreateObjectReference>>(
-                'cJSON_CreateObjectReference')
-            .asFunction<_dart_cJSON_CreateObjectReference>())(
+    return _cJSON_CreateObjectReference(
       child,
     );
   }
 
-  _dart_cJSON_CreateObjectReference? _cJSON_CreateObjectReference;
+  late final _cJSON_CreateObjectReference_ptr =
+      _lookup<ffi.NativeFunction<_c_cJSON_CreateObjectReference>>(
+          'cJSON_CreateObjectReference');
+  late final _dart_cJSON_CreateObjectReference _cJSON_CreateObjectReference =
+      _cJSON_CreateObjectReference_ptr
+          .asFunction<_dart_cJSON_CreateObjectReference>();
 
   ffi.Pointer<cJSON> cJSON_CreateArrayReference(
     ffi.Pointer<cJSON> child,
   ) {
-    return (_cJSON_CreateArrayReference ??=
-        _lookup<ffi.NativeFunction<_c_cJSON_CreateArrayReference>>(
-                'cJSON_CreateArrayReference')
-            .asFunction<_dart_cJSON_CreateArrayReference>())(
+    return _cJSON_CreateArrayReference(
       child,
     );
   }
 
-  _dart_cJSON_CreateArrayReference? _cJSON_CreateArrayReference;
+  late final _cJSON_CreateArrayReference_ptr =
+      _lookup<ffi.NativeFunction<_c_cJSON_CreateArrayReference>>(
+          'cJSON_CreateArrayReference');
+  late final _dart_cJSON_CreateArrayReference _cJSON_CreateArrayReference =
+      _cJSON_CreateArrayReference_ptr
+          .asFunction<_dart_cJSON_CreateArrayReference>();
 
   ffi.Pointer<cJSON> cJSON_CreateIntArray(
     ffi.Pointer<ffi.Int32> numbers,
     int count,
   ) {
-    return (_cJSON_CreateIntArray ??=
-        _lookup<ffi.NativeFunction<_c_cJSON_CreateIntArray>>(
-                'cJSON_CreateIntArray')
-            .asFunction<_dart_cJSON_CreateIntArray>())(
+    return _cJSON_CreateIntArray(
       numbers,
       count,
     );
   }
 
-  _dart_cJSON_CreateIntArray? _cJSON_CreateIntArray;
+  late final _cJSON_CreateIntArray_ptr =
+      _lookup<ffi.NativeFunction<_c_cJSON_CreateIntArray>>(
+          'cJSON_CreateIntArray');
+  late final _dart_cJSON_CreateIntArray _cJSON_CreateIntArray =
+      _cJSON_CreateIntArray_ptr.asFunction<_dart_cJSON_CreateIntArray>();
 
   ffi.Pointer<cJSON> cJSON_CreateFloatArray(
     ffi.Pointer<ffi.Float> numbers,
     int count,
   ) {
-    return (_cJSON_CreateFloatArray ??=
-        _lookup<ffi.NativeFunction<_c_cJSON_CreateFloatArray>>(
-                'cJSON_CreateFloatArray')
-            .asFunction<_dart_cJSON_CreateFloatArray>())(
+    return _cJSON_CreateFloatArray(
       numbers,
       count,
     );
   }
 
-  _dart_cJSON_CreateFloatArray? _cJSON_CreateFloatArray;
+  late final _cJSON_CreateFloatArray_ptr =
+      _lookup<ffi.NativeFunction<_c_cJSON_CreateFloatArray>>(
+          'cJSON_CreateFloatArray');
+  late final _dart_cJSON_CreateFloatArray _cJSON_CreateFloatArray =
+      _cJSON_CreateFloatArray_ptr.asFunction<_dart_cJSON_CreateFloatArray>();
 
   ffi.Pointer<cJSON> cJSON_CreateDoubleArray(
     ffi.Pointer<ffi.Double> numbers,
     int count,
   ) {
-    return (_cJSON_CreateDoubleArray ??=
-        _lookup<ffi.NativeFunction<_c_cJSON_CreateDoubleArray>>(
-                'cJSON_CreateDoubleArray')
-            .asFunction<_dart_cJSON_CreateDoubleArray>())(
+    return _cJSON_CreateDoubleArray(
       numbers,
       count,
     );
   }
 
-  _dart_cJSON_CreateDoubleArray? _cJSON_CreateDoubleArray;
+  late final _cJSON_CreateDoubleArray_ptr =
+      _lookup<ffi.NativeFunction<_c_cJSON_CreateDoubleArray>>(
+          'cJSON_CreateDoubleArray');
+  late final _dart_cJSON_CreateDoubleArray _cJSON_CreateDoubleArray =
+      _cJSON_CreateDoubleArray_ptr.asFunction<_dart_cJSON_CreateDoubleArray>();
 
   ffi.Pointer<cJSON> cJSON_CreateStringArray(
     ffi.Pointer<ffi.Pointer<ffi.Int8>> strings,
     int count,
   ) {
-    return (_cJSON_CreateStringArray ??=
-        _lookup<ffi.NativeFunction<_c_cJSON_CreateStringArray>>(
-                'cJSON_CreateStringArray')
-            .asFunction<_dart_cJSON_CreateStringArray>())(
+    return _cJSON_CreateStringArray(
       strings,
       count,
     );
   }
 
-  _dart_cJSON_CreateStringArray? _cJSON_CreateStringArray;
+  late final _cJSON_CreateStringArray_ptr =
+      _lookup<ffi.NativeFunction<_c_cJSON_CreateStringArray>>(
+          'cJSON_CreateStringArray');
+  late final _dart_cJSON_CreateStringArray _cJSON_CreateStringArray =
+      _cJSON_CreateStringArray_ptr.asFunction<_dart_cJSON_CreateStringArray>();
 
   void cJSON_AddItemToArray(
     ffi.Pointer<cJSON> array,
     ffi.Pointer<cJSON> item,
   ) {
-    return (_cJSON_AddItemToArray ??=
-        _lookup<ffi.NativeFunction<_c_cJSON_AddItemToArray>>(
-                'cJSON_AddItemToArray')
-            .asFunction<_dart_cJSON_AddItemToArray>())(
+    return _cJSON_AddItemToArray(
       array,
       item,
     );
   }
 
-  _dart_cJSON_AddItemToArray? _cJSON_AddItemToArray;
+  late final _cJSON_AddItemToArray_ptr =
+      _lookup<ffi.NativeFunction<_c_cJSON_AddItemToArray>>(
+          'cJSON_AddItemToArray');
+  late final _dart_cJSON_AddItemToArray _cJSON_AddItemToArray =
+      _cJSON_AddItemToArray_ptr.asFunction<_dart_cJSON_AddItemToArray>();
 
   void cJSON_AddItemToObject(
     ffi.Pointer<cJSON> object,
     ffi.Pointer<ffi.Int8> string,
     ffi.Pointer<cJSON> item,
   ) {
-    return (_cJSON_AddItemToObject ??=
-        _lookup<ffi.NativeFunction<_c_cJSON_AddItemToObject>>(
-                'cJSON_AddItemToObject')
-            .asFunction<_dart_cJSON_AddItemToObject>())(
+    return _cJSON_AddItemToObject(
       object,
       string,
       item,
     );
   }
 
-  _dart_cJSON_AddItemToObject? _cJSON_AddItemToObject;
+  late final _cJSON_AddItemToObject_ptr =
+      _lookup<ffi.NativeFunction<_c_cJSON_AddItemToObject>>(
+          'cJSON_AddItemToObject');
+  late final _dart_cJSON_AddItemToObject _cJSON_AddItemToObject =
+      _cJSON_AddItemToObject_ptr.asFunction<_dart_cJSON_AddItemToObject>();
 
   void cJSON_AddItemToObjectCS(
     ffi.Pointer<cJSON> object,
     ffi.Pointer<ffi.Int8> string,
     ffi.Pointer<cJSON> item,
   ) {
-    return (_cJSON_AddItemToObjectCS ??=
-        _lookup<ffi.NativeFunction<_c_cJSON_AddItemToObjectCS>>(
-                'cJSON_AddItemToObjectCS')
-            .asFunction<_dart_cJSON_AddItemToObjectCS>())(
+    return _cJSON_AddItemToObjectCS(
       object,
       string,
       item,
     );
   }
 
-  _dart_cJSON_AddItemToObjectCS? _cJSON_AddItemToObjectCS;
+  late final _cJSON_AddItemToObjectCS_ptr =
+      _lookup<ffi.NativeFunction<_c_cJSON_AddItemToObjectCS>>(
+          'cJSON_AddItemToObjectCS');
+  late final _dart_cJSON_AddItemToObjectCS _cJSON_AddItemToObjectCS =
+      _cJSON_AddItemToObjectCS_ptr.asFunction<_dart_cJSON_AddItemToObjectCS>();
 
   void cJSON_AddItemReferenceToArray(
     ffi.Pointer<cJSON> array,
     ffi.Pointer<cJSON> item,
   ) {
-    return (_cJSON_AddItemReferenceToArray ??=
-        _lookup<ffi.NativeFunction<_c_cJSON_AddItemReferenceToArray>>(
-                'cJSON_AddItemReferenceToArray')
-            .asFunction<_dart_cJSON_AddItemReferenceToArray>())(
+    return _cJSON_AddItemReferenceToArray(
       array,
       item,
     );
   }
 
-  _dart_cJSON_AddItemReferenceToArray? _cJSON_AddItemReferenceToArray;
+  late final _cJSON_AddItemReferenceToArray_ptr =
+      _lookup<ffi.NativeFunction<_c_cJSON_AddItemReferenceToArray>>(
+          'cJSON_AddItemReferenceToArray');
+  late final _dart_cJSON_AddItemReferenceToArray
+      _cJSON_AddItemReferenceToArray = _cJSON_AddItemReferenceToArray_ptr
+          .asFunction<_dart_cJSON_AddItemReferenceToArray>();
 
   void cJSON_AddItemReferenceToObject(
     ffi.Pointer<cJSON> object,
     ffi.Pointer<ffi.Int8> string,
     ffi.Pointer<cJSON> item,
   ) {
-    return (_cJSON_AddItemReferenceToObject ??=
-        _lookup<ffi.NativeFunction<_c_cJSON_AddItemReferenceToObject>>(
-                'cJSON_AddItemReferenceToObject')
-            .asFunction<_dart_cJSON_AddItemReferenceToObject>())(
+    return _cJSON_AddItemReferenceToObject(
       object,
       string,
       item,
     );
   }
 
-  _dart_cJSON_AddItemReferenceToObject? _cJSON_AddItemReferenceToObject;
+  late final _cJSON_AddItemReferenceToObject_ptr =
+      _lookup<ffi.NativeFunction<_c_cJSON_AddItemReferenceToObject>>(
+          'cJSON_AddItemReferenceToObject');
+  late final _dart_cJSON_AddItemReferenceToObject
+      _cJSON_AddItemReferenceToObject = _cJSON_AddItemReferenceToObject_ptr
+          .asFunction<_dart_cJSON_AddItemReferenceToObject>();
 
   ffi.Pointer<cJSON> cJSON_DetachItemViaPointer(
     ffi.Pointer<cJSON> parent,
     ffi.Pointer<cJSON> item,
   ) {
-    return (_cJSON_DetachItemViaPointer ??=
-        _lookup<ffi.NativeFunction<_c_cJSON_DetachItemViaPointer>>(
-                'cJSON_DetachItemViaPointer')
-            .asFunction<_dart_cJSON_DetachItemViaPointer>())(
+    return _cJSON_DetachItemViaPointer(
       parent,
       item,
     );
   }
 
-  _dart_cJSON_DetachItemViaPointer? _cJSON_DetachItemViaPointer;
+  late final _cJSON_DetachItemViaPointer_ptr =
+      _lookup<ffi.NativeFunction<_c_cJSON_DetachItemViaPointer>>(
+          'cJSON_DetachItemViaPointer');
+  late final _dart_cJSON_DetachItemViaPointer _cJSON_DetachItemViaPointer =
+      _cJSON_DetachItemViaPointer_ptr
+          .asFunction<_dart_cJSON_DetachItemViaPointer>();
 
   ffi.Pointer<cJSON> cJSON_DetachItemFromArray(
     ffi.Pointer<cJSON> array,
     int which,
   ) {
-    return (_cJSON_DetachItemFromArray ??=
-        _lookup<ffi.NativeFunction<_c_cJSON_DetachItemFromArray>>(
-                'cJSON_DetachItemFromArray')
-            .asFunction<_dart_cJSON_DetachItemFromArray>())(
+    return _cJSON_DetachItemFromArray(
       array,
       which,
     );
   }
 
-  _dart_cJSON_DetachItemFromArray? _cJSON_DetachItemFromArray;
+  late final _cJSON_DetachItemFromArray_ptr =
+      _lookup<ffi.NativeFunction<_c_cJSON_DetachItemFromArray>>(
+          'cJSON_DetachItemFromArray');
+  late final _dart_cJSON_DetachItemFromArray _cJSON_DetachItemFromArray =
+      _cJSON_DetachItemFromArray_ptr
+          .asFunction<_dart_cJSON_DetachItemFromArray>();
 
   void cJSON_DeleteItemFromArray(
     ffi.Pointer<cJSON> array,
     int which,
   ) {
-    return (_cJSON_DeleteItemFromArray ??=
-        _lookup<ffi.NativeFunction<_c_cJSON_DeleteItemFromArray>>(
-                'cJSON_DeleteItemFromArray')
-            .asFunction<_dart_cJSON_DeleteItemFromArray>())(
+    return _cJSON_DeleteItemFromArray(
       array,
       which,
     );
   }
 
-  _dart_cJSON_DeleteItemFromArray? _cJSON_DeleteItemFromArray;
+  late final _cJSON_DeleteItemFromArray_ptr =
+      _lookup<ffi.NativeFunction<_c_cJSON_DeleteItemFromArray>>(
+          'cJSON_DeleteItemFromArray');
+  late final _dart_cJSON_DeleteItemFromArray _cJSON_DeleteItemFromArray =
+      _cJSON_DeleteItemFromArray_ptr
+          .asFunction<_dart_cJSON_DeleteItemFromArray>();
 
   ffi.Pointer<cJSON> cJSON_DetachItemFromObject(
     ffi.Pointer<cJSON> object,
     ffi.Pointer<ffi.Int8> string,
   ) {
-    return (_cJSON_DetachItemFromObject ??=
-        _lookup<ffi.NativeFunction<_c_cJSON_DetachItemFromObject>>(
-                'cJSON_DetachItemFromObject')
-            .asFunction<_dart_cJSON_DetachItemFromObject>())(
+    return _cJSON_DetachItemFromObject(
       object,
       string,
     );
   }
 
-  _dart_cJSON_DetachItemFromObject? _cJSON_DetachItemFromObject;
+  late final _cJSON_DetachItemFromObject_ptr =
+      _lookup<ffi.NativeFunction<_c_cJSON_DetachItemFromObject>>(
+          'cJSON_DetachItemFromObject');
+  late final _dart_cJSON_DetachItemFromObject _cJSON_DetachItemFromObject =
+      _cJSON_DetachItemFromObject_ptr
+          .asFunction<_dart_cJSON_DetachItemFromObject>();
 
   ffi.Pointer<cJSON> cJSON_DetachItemFromObjectCaseSensitive(
     ffi.Pointer<cJSON> object,
     ffi.Pointer<ffi.Int8> string,
   ) {
-    return (_cJSON_DetachItemFromObjectCaseSensitive ??=
-        _lookup<ffi.NativeFunction<_c_cJSON_DetachItemFromObjectCaseSensitive>>(
-                'cJSON_DetachItemFromObjectCaseSensitive')
-            .asFunction<_dart_cJSON_DetachItemFromObjectCaseSensitive>())(
+    return _cJSON_DetachItemFromObjectCaseSensitive(
       object,
       string,
     );
   }
 
-  _dart_cJSON_DetachItemFromObjectCaseSensitive?
-      _cJSON_DetachItemFromObjectCaseSensitive;
+  late final _cJSON_DetachItemFromObjectCaseSensitive_ptr =
+      _lookup<ffi.NativeFunction<_c_cJSON_DetachItemFromObjectCaseSensitive>>(
+          'cJSON_DetachItemFromObjectCaseSensitive');
+  late final _dart_cJSON_DetachItemFromObjectCaseSensitive
+      _cJSON_DetachItemFromObjectCaseSensitive =
+      _cJSON_DetachItemFromObjectCaseSensitive_ptr
+          .asFunction<_dart_cJSON_DetachItemFromObjectCaseSensitive>();
 
   void cJSON_DeleteItemFromObject(
     ffi.Pointer<cJSON> object,
     ffi.Pointer<ffi.Int8> string,
   ) {
-    return (_cJSON_DeleteItemFromObject ??=
-        _lookup<ffi.NativeFunction<_c_cJSON_DeleteItemFromObject>>(
-                'cJSON_DeleteItemFromObject')
-            .asFunction<_dart_cJSON_DeleteItemFromObject>())(
+    return _cJSON_DeleteItemFromObject(
       object,
       string,
     );
   }
 
-  _dart_cJSON_DeleteItemFromObject? _cJSON_DeleteItemFromObject;
+  late final _cJSON_DeleteItemFromObject_ptr =
+      _lookup<ffi.NativeFunction<_c_cJSON_DeleteItemFromObject>>(
+          'cJSON_DeleteItemFromObject');
+  late final _dart_cJSON_DeleteItemFromObject _cJSON_DeleteItemFromObject =
+      _cJSON_DeleteItemFromObject_ptr
+          .asFunction<_dart_cJSON_DeleteItemFromObject>();
 
   void cJSON_DeleteItemFromObjectCaseSensitive(
     ffi.Pointer<cJSON> object,
     ffi.Pointer<ffi.Int8> string,
   ) {
-    return (_cJSON_DeleteItemFromObjectCaseSensitive ??=
-        _lookup<ffi.NativeFunction<_c_cJSON_DeleteItemFromObjectCaseSensitive>>(
-                'cJSON_DeleteItemFromObjectCaseSensitive')
-            .asFunction<_dart_cJSON_DeleteItemFromObjectCaseSensitive>())(
+    return _cJSON_DeleteItemFromObjectCaseSensitive(
       object,
       string,
     );
   }
 
-  _dart_cJSON_DeleteItemFromObjectCaseSensitive?
-      _cJSON_DeleteItemFromObjectCaseSensitive;
+  late final _cJSON_DeleteItemFromObjectCaseSensitive_ptr =
+      _lookup<ffi.NativeFunction<_c_cJSON_DeleteItemFromObjectCaseSensitive>>(
+          'cJSON_DeleteItemFromObjectCaseSensitive');
+  late final _dart_cJSON_DeleteItemFromObjectCaseSensitive
+      _cJSON_DeleteItemFromObjectCaseSensitive =
+      _cJSON_DeleteItemFromObjectCaseSensitive_ptr
+          .asFunction<_dart_cJSON_DeleteItemFromObjectCaseSensitive>();
 
   void cJSON_InsertItemInArray(
     ffi.Pointer<cJSON> array,
     int which,
     ffi.Pointer<cJSON> newitem,
   ) {
-    return (_cJSON_InsertItemInArray ??=
-        _lookup<ffi.NativeFunction<_c_cJSON_InsertItemInArray>>(
-                'cJSON_InsertItemInArray')
-            .asFunction<_dart_cJSON_InsertItemInArray>())(
+    return _cJSON_InsertItemInArray(
       array,
       which,
       newitem,
     );
   }
 
-  _dart_cJSON_InsertItemInArray? _cJSON_InsertItemInArray;
+  late final _cJSON_InsertItemInArray_ptr =
+      _lookup<ffi.NativeFunction<_c_cJSON_InsertItemInArray>>(
+          'cJSON_InsertItemInArray');
+  late final _dart_cJSON_InsertItemInArray _cJSON_InsertItemInArray =
+      _cJSON_InsertItemInArray_ptr.asFunction<_dart_cJSON_InsertItemInArray>();
 
   int cJSON_ReplaceItemViaPointer(
     ffi.Pointer<cJSON> parent,
     ffi.Pointer<cJSON> item,
     ffi.Pointer<cJSON> replacement,
   ) {
-    return (_cJSON_ReplaceItemViaPointer ??=
-        _lookup<ffi.NativeFunction<_c_cJSON_ReplaceItemViaPointer>>(
-                'cJSON_ReplaceItemViaPointer')
-            .asFunction<_dart_cJSON_ReplaceItemViaPointer>())(
+    return _cJSON_ReplaceItemViaPointer(
       parent,
       item,
       replacement,
     );
   }
 
-  _dart_cJSON_ReplaceItemViaPointer? _cJSON_ReplaceItemViaPointer;
+  late final _cJSON_ReplaceItemViaPointer_ptr =
+      _lookup<ffi.NativeFunction<_c_cJSON_ReplaceItemViaPointer>>(
+          'cJSON_ReplaceItemViaPointer');
+  late final _dart_cJSON_ReplaceItemViaPointer _cJSON_ReplaceItemViaPointer =
+      _cJSON_ReplaceItemViaPointer_ptr
+          .asFunction<_dart_cJSON_ReplaceItemViaPointer>();
 
   void cJSON_ReplaceItemInArray(
     ffi.Pointer<cJSON> array,
     int which,
     ffi.Pointer<cJSON> newitem,
   ) {
-    return (_cJSON_ReplaceItemInArray ??=
-        _lookup<ffi.NativeFunction<_c_cJSON_ReplaceItemInArray>>(
-                'cJSON_ReplaceItemInArray')
-            .asFunction<_dart_cJSON_ReplaceItemInArray>())(
+    return _cJSON_ReplaceItemInArray(
       array,
       which,
       newitem,
     );
   }
 
-  _dart_cJSON_ReplaceItemInArray? _cJSON_ReplaceItemInArray;
+  late final _cJSON_ReplaceItemInArray_ptr =
+      _lookup<ffi.NativeFunction<_c_cJSON_ReplaceItemInArray>>(
+          'cJSON_ReplaceItemInArray');
+  late final _dart_cJSON_ReplaceItemInArray _cJSON_ReplaceItemInArray =
+      _cJSON_ReplaceItemInArray_ptr
+          .asFunction<_dart_cJSON_ReplaceItemInArray>();
 
   void cJSON_ReplaceItemInObject(
     ffi.Pointer<cJSON> object,
     ffi.Pointer<ffi.Int8> string,
     ffi.Pointer<cJSON> newitem,
   ) {
-    return (_cJSON_ReplaceItemInObject ??=
-        _lookup<ffi.NativeFunction<_c_cJSON_ReplaceItemInObject>>(
-                'cJSON_ReplaceItemInObject')
-            .asFunction<_dart_cJSON_ReplaceItemInObject>())(
+    return _cJSON_ReplaceItemInObject(
       object,
       string,
       newitem,
     );
   }
 
-  _dart_cJSON_ReplaceItemInObject? _cJSON_ReplaceItemInObject;
+  late final _cJSON_ReplaceItemInObject_ptr =
+      _lookup<ffi.NativeFunction<_c_cJSON_ReplaceItemInObject>>(
+          'cJSON_ReplaceItemInObject');
+  late final _dart_cJSON_ReplaceItemInObject _cJSON_ReplaceItemInObject =
+      _cJSON_ReplaceItemInObject_ptr
+          .asFunction<_dart_cJSON_ReplaceItemInObject>();
 
   void cJSON_ReplaceItemInObjectCaseSensitive(
     ffi.Pointer<cJSON> object,
     ffi.Pointer<ffi.Int8> string,
     ffi.Pointer<cJSON> newitem,
   ) {
-    return (_cJSON_ReplaceItemInObjectCaseSensitive ??=
-        _lookup<ffi.NativeFunction<_c_cJSON_ReplaceItemInObjectCaseSensitive>>(
-                'cJSON_ReplaceItemInObjectCaseSensitive')
-            .asFunction<_dart_cJSON_ReplaceItemInObjectCaseSensitive>())(
+    return _cJSON_ReplaceItemInObjectCaseSensitive(
       object,
       string,
       newitem,
     );
   }
 
-  _dart_cJSON_ReplaceItemInObjectCaseSensitive?
-      _cJSON_ReplaceItemInObjectCaseSensitive;
+  late final _cJSON_ReplaceItemInObjectCaseSensitive_ptr =
+      _lookup<ffi.NativeFunction<_c_cJSON_ReplaceItemInObjectCaseSensitive>>(
+          'cJSON_ReplaceItemInObjectCaseSensitive');
+  late final _dart_cJSON_ReplaceItemInObjectCaseSensitive
+      _cJSON_ReplaceItemInObjectCaseSensitive =
+      _cJSON_ReplaceItemInObjectCaseSensitive_ptr
+          .asFunction<_dart_cJSON_ReplaceItemInObjectCaseSensitive>();
 
   ffi.Pointer<cJSON> cJSON_Duplicate(
     ffi.Pointer<cJSON> item,
     int recurse,
   ) {
-    return (_cJSON_Duplicate ??=
-        _lookup<ffi.NativeFunction<_c_cJSON_Duplicate>>('cJSON_Duplicate')
-            .asFunction<_dart_cJSON_Duplicate>())(
+    return _cJSON_Duplicate(
       item,
       recurse,
     );
   }
 
-  _dart_cJSON_Duplicate? _cJSON_Duplicate;
+  late final _cJSON_Duplicate_ptr =
+      _lookup<ffi.NativeFunction<_c_cJSON_Duplicate>>('cJSON_Duplicate');
+  late final _dart_cJSON_Duplicate _cJSON_Duplicate =
+      _cJSON_Duplicate_ptr.asFunction<_dart_cJSON_Duplicate>();
 
   int cJSON_Compare(
     ffi.Pointer<cJSON> a,
     ffi.Pointer<cJSON> b,
     int case_sensitive,
   ) {
-    return (_cJSON_Compare ??=
-        _lookup<ffi.NativeFunction<_c_cJSON_Compare>>('cJSON_Compare')
-            .asFunction<_dart_cJSON_Compare>())(
+    return _cJSON_Compare(
       a,
       b,
       case_sensitive,
     );
   }
 
-  _dart_cJSON_Compare? _cJSON_Compare;
+  late final _cJSON_Compare_ptr =
+      _lookup<ffi.NativeFunction<_c_cJSON_Compare>>('cJSON_Compare');
+  late final _dart_cJSON_Compare _cJSON_Compare =
+      _cJSON_Compare_ptr.asFunction<_dart_cJSON_Compare>();
 
   void cJSON_Minify(
     ffi.Pointer<ffi.Int8> json,
   ) {
-    return (_cJSON_Minify ??=
-        _lookup<ffi.NativeFunction<_c_cJSON_Minify>>('cJSON_Minify')
-            .asFunction<_dart_cJSON_Minify>())(
+    return _cJSON_Minify(
       json,
     );
   }
 
-  _dart_cJSON_Minify? _cJSON_Minify;
+  late final _cJSON_Minify_ptr =
+      _lookup<ffi.NativeFunction<_c_cJSON_Minify>>('cJSON_Minify');
+  late final _dart_cJSON_Minify _cJSON_Minify =
+      _cJSON_Minify_ptr.asFunction<_dart_cJSON_Minify>();
 
   ffi.Pointer<cJSON> cJSON_AddNullToObject(
     ffi.Pointer<cJSON> object,
     ffi.Pointer<ffi.Int8> name,
   ) {
-    return (_cJSON_AddNullToObject ??=
-        _lookup<ffi.NativeFunction<_c_cJSON_AddNullToObject>>(
-                'cJSON_AddNullToObject')
-            .asFunction<_dart_cJSON_AddNullToObject>())(
+    return _cJSON_AddNullToObject(
       object,
       name,
     );
   }
 
-  _dart_cJSON_AddNullToObject? _cJSON_AddNullToObject;
+  late final _cJSON_AddNullToObject_ptr =
+      _lookup<ffi.NativeFunction<_c_cJSON_AddNullToObject>>(
+          'cJSON_AddNullToObject');
+  late final _dart_cJSON_AddNullToObject _cJSON_AddNullToObject =
+      _cJSON_AddNullToObject_ptr.asFunction<_dart_cJSON_AddNullToObject>();
 
   ffi.Pointer<cJSON> cJSON_AddTrueToObject(
     ffi.Pointer<cJSON> object,
     ffi.Pointer<ffi.Int8> name,
   ) {
-    return (_cJSON_AddTrueToObject ??=
-        _lookup<ffi.NativeFunction<_c_cJSON_AddTrueToObject>>(
-                'cJSON_AddTrueToObject')
-            .asFunction<_dart_cJSON_AddTrueToObject>())(
+    return _cJSON_AddTrueToObject(
       object,
       name,
     );
   }
 
-  _dart_cJSON_AddTrueToObject? _cJSON_AddTrueToObject;
+  late final _cJSON_AddTrueToObject_ptr =
+      _lookup<ffi.NativeFunction<_c_cJSON_AddTrueToObject>>(
+          'cJSON_AddTrueToObject');
+  late final _dart_cJSON_AddTrueToObject _cJSON_AddTrueToObject =
+      _cJSON_AddTrueToObject_ptr.asFunction<_dart_cJSON_AddTrueToObject>();
 
   ffi.Pointer<cJSON> cJSON_AddFalseToObject(
     ffi.Pointer<cJSON> object,
     ffi.Pointer<ffi.Int8> name,
   ) {
-    return (_cJSON_AddFalseToObject ??=
-        _lookup<ffi.NativeFunction<_c_cJSON_AddFalseToObject>>(
-                'cJSON_AddFalseToObject')
-            .asFunction<_dart_cJSON_AddFalseToObject>())(
+    return _cJSON_AddFalseToObject(
       object,
       name,
     );
   }
 
-  _dart_cJSON_AddFalseToObject? _cJSON_AddFalseToObject;
+  late final _cJSON_AddFalseToObject_ptr =
+      _lookup<ffi.NativeFunction<_c_cJSON_AddFalseToObject>>(
+          'cJSON_AddFalseToObject');
+  late final _dart_cJSON_AddFalseToObject _cJSON_AddFalseToObject =
+      _cJSON_AddFalseToObject_ptr.asFunction<_dart_cJSON_AddFalseToObject>();
 
   ffi.Pointer<cJSON> cJSON_AddBoolToObject(
     ffi.Pointer<cJSON> object,
     ffi.Pointer<ffi.Int8> name,
     int boolean,
   ) {
-    return (_cJSON_AddBoolToObject ??=
-        _lookup<ffi.NativeFunction<_c_cJSON_AddBoolToObject>>(
-                'cJSON_AddBoolToObject')
-            .asFunction<_dart_cJSON_AddBoolToObject>())(
+    return _cJSON_AddBoolToObject(
       object,
       name,
       boolean,
     );
   }
 
-  _dart_cJSON_AddBoolToObject? _cJSON_AddBoolToObject;
+  late final _cJSON_AddBoolToObject_ptr =
+      _lookup<ffi.NativeFunction<_c_cJSON_AddBoolToObject>>(
+          'cJSON_AddBoolToObject');
+  late final _dart_cJSON_AddBoolToObject _cJSON_AddBoolToObject =
+      _cJSON_AddBoolToObject_ptr.asFunction<_dart_cJSON_AddBoolToObject>();
 
   ffi.Pointer<cJSON> cJSON_AddNumberToObject(
     ffi.Pointer<cJSON> object,
     ffi.Pointer<ffi.Int8> name,
     double number,
   ) {
-    return (_cJSON_AddNumberToObject ??=
-        _lookup<ffi.NativeFunction<_c_cJSON_AddNumberToObject>>(
-                'cJSON_AddNumberToObject')
-            .asFunction<_dart_cJSON_AddNumberToObject>())(
+    return _cJSON_AddNumberToObject(
       object,
       name,
       number,
     );
   }
 
-  _dart_cJSON_AddNumberToObject? _cJSON_AddNumberToObject;
+  late final _cJSON_AddNumberToObject_ptr =
+      _lookup<ffi.NativeFunction<_c_cJSON_AddNumberToObject>>(
+          'cJSON_AddNumberToObject');
+  late final _dart_cJSON_AddNumberToObject _cJSON_AddNumberToObject =
+      _cJSON_AddNumberToObject_ptr.asFunction<_dart_cJSON_AddNumberToObject>();
 
   ffi.Pointer<cJSON> cJSON_AddStringToObject(
     ffi.Pointer<cJSON> object,
     ffi.Pointer<ffi.Int8> name,
     ffi.Pointer<ffi.Int8> string,
   ) {
-    return (_cJSON_AddStringToObject ??=
-        _lookup<ffi.NativeFunction<_c_cJSON_AddStringToObject>>(
-                'cJSON_AddStringToObject')
-            .asFunction<_dart_cJSON_AddStringToObject>())(
+    return _cJSON_AddStringToObject(
       object,
       name,
       string,
     );
   }
 
-  _dart_cJSON_AddStringToObject? _cJSON_AddStringToObject;
+  late final _cJSON_AddStringToObject_ptr =
+      _lookup<ffi.NativeFunction<_c_cJSON_AddStringToObject>>(
+          'cJSON_AddStringToObject');
+  late final _dart_cJSON_AddStringToObject _cJSON_AddStringToObject =
+      _cJSON_AddStringToObject_ptr.asFunction<_dart_cJSON_AddStringToObject>();
 
   ffi.Pointer<cJSON> cJSON_AddRawToObject(
     ffi.Pointer<cJSON> object,
     ffi.Pointer<ffi.Int8> name,
     ffi.Pointer<ffi.Int8> raw,
   ) {
-    return (_cJSON_AddRawToObject ??=
-        _lookup<ffi.NativeFunction<_c_cJSON_AddRawToObject>>(
-                'cJSON_AddRawToObject')
-            .asFunction<_dart_cJSON_AddRawToObject>())(
+    return _cJSON_AddRawToObject(
       object,
       name,
       raw,
     );
   }
 
-  _dart_cJSON_AddRawToObject? _cJSON_AddRawToObject;
+  late final _cJSON_AddRawToObject_ptr =
+      _lookup<ffi.NativeFunction<_c_cJSON_AddRawToObject>>(
+          'cJSON_AddRawToObject');
+  late final _dart_cJSON_AddRawToObject _cJSON_AddRawToObject =
+      _cJSON_AddRawToObject_ptr.asFunction<_dart_cJSON_AddRawToObject>();
 
   ffi.Pointer<cJSON> cJSON_AddObjectToObject(
     ffi.Pointer<cJSON> object,
     ffi.Pointer<ffi.Int8> name,
   ) {
-    return (_cJSON_AddObjectToObject ??=
-        _lookup<ffi.NativeFunction<_c_cJSON_AddObjectToObject>>(
-                'cJSON_AddObjectToObject')
-            .asFunction<_dart_cJSON_AddObjectToObject>())(
+    return _cJSON_AddObjectToObject(
       object,
       name,
     );
   }
 
-  _dart_cJSON_AddObjectToObject? _cJSON_AddObjectToObject;
+  late final _cJSON_AddObjectToObject_ptr =
+      _lookup<ffi.NativeFunction<_c_cJSON_AddObjectToObject>>(
+          'cJSON_AddObjectToObject');
+  late final _dart_cJSON_AddObjectToObject _cJSON_AddObjectToObject =
+      _cJSON_AddObjectToObject_ptr.asFunction<_dart_cJSON_AddObjectToObject>();
 
   ffi.Pointer<cJSON> cJSON_AddArrayToObject(
     ffi.Pointer<cJSON> object,
     ffi.Pointer<ffi.Int8> name,
   ) {
-    return (_cJSON_AddArrayToObject ??=
-        _lookup<ffi.NativeFunction<_c_cJSON_AddArrayToObject>>(
-                'cJSON_AddArrayToObject')
-            .asFunction<_dart_cJSON_AddArrayToObject>())(
+    return _cJSON_AddArrayToObject(
       object,
       name,
     );
   }
 
-  _dart_cJSON_AddArrayToObject? _cJSON_AddArrayToObject;
+  late final _cJSON_AddArrayToObject_ptr =
+      _lookup<ffi.NativeFunction<_c_cJSON_AddArrayToObject>>(
+          'cJSON_AddArrayToObject');
+  late final _dart_cJSON_AddArrayToObject _cJSON_AddArrayToObject =
+      _cJSON_AddArrayToObject_ptr.asFunction<_dart_cJSON_AddArrayToObject>();
 
   double cJSON_SetNumberHelper(
     ffi.Pointer<cJSON> object,
     double number,
   ) {
-    return (_cJSON_SetNumberHelper ??=
-        _lookup<ffi.NativeFunction<_c_cJSON_SetNumberHelper>>(
-                'cJSON_SetNumberHelper')
-            .asFunction<_dart_cJSON_SetNumberHelper>())(
+    return _cJSON_SetNumberHelper(
       object,
       number,
     );
   }
 
-  _dart_cJSON_SetNumberHelper? _cJSON_SetNumberHelper;
+  late final _cJSON_SetNumberHelper_ptr =
+      _lookup<ffi.NativeFunction<_c_cJSON_SetNumberHelper>>(
+          'cJSON_SetNumberHelper');
+  late final _dart_cJSON_SetNumberHelper _cJSON_SetNumberHelper =
+      _cJSON_SetNumberHelper_ptr.asFunction<_dart_cJSON_SetNumberHelper>();
 
   ffi.Pointer<ffi.Void> cJSON_malloc(
     int size,
   ) {
-    return (_cJSON_malloc ??=
-        _lookup<ffi.NativeFunction<_c_cJSON_malloc>>('cJSON_malloc')
-            .asFunction<_dart_cJSON_malloc>())(
+    return _cJSON_malloc(
       size,
     );
   }
 
-  _dart_cJSON_malloc? _cJSON_malloc;
+  late final _cJSON_malloc_ptr =
+      _lookup<ffi.NativeFunction<_c_cJSON_malloc>>('cJSON_malloc');
+  late final _dart_cJSON_malloc _cJSON_malloc =
+      _cJSON_malloc_ptr.asFunction<_dart_cJSON_malloc>();
 
   void cJSON_free(
     ffi.Pointer<ffi.Void> object,
   ) {
-    return (_cJSON_free ??=
-        _lookup<ffi.NativeFunction<_c_cJSON_free>>('cJSON_free')
-            .asFunction<_dart_cJSON_free>())(
+    return _cJSON_free(
       object,
     );
   }
 
-  _dart_cJSON_free? _cJSON_free;
+  late final _cJSON_free_ptr =
+      _lookup<ffi.NativeFunction<_c_cJSON_free>>('cJSON_free');
+  late final _dart_cJSON_free _cJSON_free =
+      _cJSON_free_ptr.asFunction<_dart_cJSON_free>();
 }
 
 class cJSON extends ffi.Struct {
diff --git a/pkgs/ffigen/test/large_integration_tests/_expected_libclang_bindings.dart b/pkgs/ffigen/test/large_integration_tests/_expected_libclang_bindings.dart
index 20cc595..34c6633 100644
--- a/pkgs/ffigen/test/large_integration_tests/_expected_libclang_bindings.dart
+++ b/pkgs/ffigen/test/large_integration_tests/_expected_libclang_bindings.dart
@@ -22,68 +22,75 @@
   ffi.Pointer<ffi.Int8> clang_getCString(
     CXString string,
   ) {
-    return (_clang_getCString ??=
-        _lookup<ffi.NativeFunction<_c_clang_getCString>>('clang_getCString')
-            .asFunction<_dart_clang_getCString>())(
+    return _clang_getCString(
       string,
     );
   }
 
-  _dart_clang_getCString? _clang_getCString;
+  late final _clang_getCString_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_getCString>>('clang_getCString');
+  late final _dart_clang_getCString _clang_getCString =
+      _clang_getCString_ptr.asFunction<_dart_clang_getCString>();
 
   /// Free the given string.
   void clang_disposeString(
     CXString string,
   ) {
-    return (_clang_disposeString ??=
-        _lookup<ffi.NativeFunction<_c_clang_disposeString>>(
-                'clang_disposeString')
-            .asFunction<_dart_clang_disposeString>())(
+    return _clang_disposeString(
       string,
     );
   }
 
-  _dart_clang_disposeString? _clang_disposeString;
+  late final _clang_disposeString_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_disposeString>>(
+          'clang_disposeString');
+  late final _dart_clang_disposeString _clang_disposeString =
+      _clang_disposeString_ptr.asFunction<_dart_clang_disposeString>();
 
   /// Free the given string set.
   void clang_disposeStringSet(
     ffi.Pointer<CXStringSet> set_1,
   ) {
-    return (_clang_disposeStringSet ??=
-        _lookup<ffi.NativeFunction<_c_clang_disposeStringSet>>(
-                'clang_disposeStringSet')
-            .asFunction<_dart_clang_disposeStringSet>())(
+    return _clang_disposeStringSet(
       set_1,
     );
   }
 
-  _dart_clang_disposeStringSet? _clang_disposeStringSet;
+  late final _clang_disposeStringSet_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_disposeStringSet>>(
+          'clang_disposeStringSet');
+  late final _dart_clang_disposeStringSet _clang_disposeStringSet =
+      _clang_disposeStringSet_ptr.asFunction<_dart_clang_disposeStringSet>();
 
   /// Return the timestamp for use with Clang's -fbuild-session-timestamp=
   /// option.
   int clang_getBuildSessionTimestamp() {
-    return (_clang_getBuildSessionTimestamp ??=
-        _lookup<ffi.NativeFunction<_c_clang_getBuildSessionTimestamp>>(
-                'clang_getBuildSessionTimestamp')
-            .asFunction<_dart_clang_getBuildSessionTimestamp>())();
+    return _clang_getBuildSessionTimestamp();
   }
 
-  _dart_clang_getBuildSessionTimestamp? _clang_getBuildSessionTimestamp;
+  late final _clang_getBuildSessionTimestamp_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_getBuildSessionTimestamp>>(
+          'clang_getBuildSessionTimestamp');
+  late final _dart_clang_getBuildSessionTimestamp
+      _clang_getBuildSessionTimestamp = _clang_getBuildSessionTimestamp_ptr
+          .asFunction<_dart_clang_getBuildSessionTimestamp>();
 
   /// Create a CXVirtualFileOverlay object. Must be disposed with
   /// clang_VirtualFileOverlay_dispose().
   ffi.Pointer<CXVirtualFileOverlayImpl> clang_VirtualFileOverlay_create(
     int options,
   ) {
-    return (_clang_VirtualFileOverlay_create ??=
-        _lookup<ffi.NativeFunction<_c_clang_VirtualFileOverlay_create>>(
-                'clang_VirtualFileOverlay_create')
-            .asFunction<_dart_clang_VirtualFileOverlay_create>())(
+    return _clang_VirtualFileOverlay_create(
       options,
     );
   }
 
-  _dart_clang_VirtualFileOverlay_create? _clang_VirtualFileOverlay_create;
+  late final _clang_VirtualFileOverlay_create_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_VirtualFileOverlay_create>>(
+          'clang_VirtualFileOverlay_create');
+  late final _dart_clang_VirtualFileOverlay_create
+      _clang_VirtualFileOverlay_create = _clang_VirtualFileOverlay_create_ptr
+          .asFunction<_dart_clang_VirtualFileOverlay_create>();
 
   /// Map an absolute virtual file path to an absolute real one. The virtual
   /// path must be canonicalized (not contain "."/"..").
@@ -92,18 +99,20 @@
     ffi.Pointer<ffi.Int8> virtualPath,
     ffi.Pointer<ffi.Int8> realPath,
   ) {
-    return (_clang_VirtualFileOverlay_addFileMapping ??=
-        _lookup<ffi.NativeFunction<_c_clang_VirtualFileOverlay_addFileMapping>>(
-                'clang_VirtualFileOverlay_addFileMapping')
-            .asFunction<_dart_clang_VirtualFileOverlay_addFileMapping>())(
+    return _clang_VirtualFileOverlay_addFileMapping(
       arg0,
       virtualPath,
       realPath,
     );
   }
 
-  _dart_clang_VirtualFileOverlay_addFileMapping?
-      _clang_VirtualFileOverlay_addFileMapping;
+  late final _clang_VirtualFileOverlay_addFileMapping_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_VirtualFileOverlay_addFileMapping>>(
+          'clang_VirtualFileOverlay_addFileMapping');
+  late final _dart_clang_VirtualFileOverlay_addFileMapping
+      _clang_VirtualFileOverlay_addFileMapping =
+      _clang_VirtualFileOverlay_addFileMapping_ptr
+          .asFunction<_dart_clang_VirtualFileOverlay_addFileMapping>();
 
   /// Set the case sensitivity for the CXVirtualFileOverlay object. The
   /// CXVirtualFileOverlay object is case-sensitive by default, this option can
@@ -112,18 +121,19 @@
     ffi.Pointer<CXVirtualFileOverlayImpl> arg0,
     int caseSensitive,
   ) {
-    return (_clang_VirtualFileOverlay_setCaseSensitivity ??= _lookup<
-                ffi.NativeFunction<
-                    _c_clang_VirtualFileOverlay_setCaseSensitivity>>(
-            'clang_VirtualFileOverlay_setCaseSensitivity')
-        .asFunction<_dart_clang_VirtualFileOverlay_setCaseSensitivity>())(
+    return _clang_VirtualFileOverlay_setCaseSensitivity(
       arg0,
       caseSensitive,
     );
   }
 
-  _dart_clang_VirtualFileOverlay_setCaseSensitivity?
-      _clang_VirtualFileOverlay_setCaseSensitivity;
+  late final _clang_VirtualFileOverlay_setCaseSensitivity_ptr = _lookup<
+          ffi.NativeFunction<_c_clang_VirtualFileOverlay_setCaseSensitivity>>(
+      'clang_VirtualFileOverlay_setCaseSensitivity');
+  late final _dart_clang_VirtualFileOverlay_setCaseSensitivity
+      _clang_VirtualFileOverlay_setCaseSensitivity =
+      _clang_VirtualFileOverlay_setCaseSensitivity_ptr
+          .asFunction<_dart_clang_VirtualFileOverlay_setCaseSensitivity>();
 
   /// Write out the CXVirtualFileOverlay object to a char buffer.
   int clang_VirtualFileOverlay_writeToBuffer(
@@ -132,10 +142,7 @@
     ffi.Pointer<ffi.Pointer<ffi.Int8>> out_buffer_ptr,
     ffi.Pointer<ffi.Uint32> out_buffer_size,
   ) {
-    return (_clang_VirtualFileOverlay_writeToBuffer ??=
-        _lookup<ffi.NativeFunction<_c_clang_VirtualFileOverlay_writeToBuffer>>(
-                'clang_VirtualFileOverlay_writeToBuffer')
-            .asFunction<_dart_clang_VirtualFileOverlay_writeToBuffer>())(
+    return _clang_VirtualFileOverlay_writeToBuffer(
       arg0,
       options,
       out_buffer_ptr,
@@ -143,87 +150,100 @@
     );
   }
 
-  _dart_clang_VirtualFileOverlay_writeToBuffer?
-      _clang_VirtualFileOverlay_writeToBuffer;
+  late final _clang_VirtualFileOverlay_writeToBuffer_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_VirtualFileOverlay_writeToBuffer>>(
+          'clang_VirtualFileOverlay_writeToBuffer');
+  late final _dart_clang_VirtualFileOverlay_writeToBuffer
+      _clang_VirtualFileOverlay_writeToBuffer =
+      _clang_VirtualFileOverlay_writeToBuffer_ptr
+          .asFunction<_dart_clang_VirtualFileOverlay_writeToBuffer>();
 
   /// free memory allocated by libclang, such as the buffer returned by
   /// CXVirtualFileOverlay() or clang_ModuleMapDescriptor_writeToBuffer().
   void clang_free(
     ffi.Pointer<ffi.Void> buffer,
   ) {
-    return (_clang_free ??=
-        _lookup<ffi.NativeFunction<_c_clang_free>>('clang_free')
-            .asFunction<_dart_clang_free>())(
+    return _clang_free(
       buffer,
     );
   }
 
-  _dart_clang_free? _clang_free;
+  late final _clang_free_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_free>>('clang_free');
+  late final _dart_clang_free _clang_free =
+      _clang_free_ptr.asFunction<_dart_clang_free>();
 
   /// Dispose a CXVirtualFileOverlay object.
   void clang_VirtualFileOverlay_dispose(
     ffi.Pointer<CXVirtualFileOverlayImpl> arg0,
   ) {
-    return (_clang_VirtualFileOverlay_dispose ??=
-        _lookup<ffi.NativeFunction<_c_clang_VirtualFileOverlay_dispose>>(
-                'clang_VirtualFileOverlay_dispose')
-            .asFunction<_dart_clang_VirtualFileOverlay_dispose>())(
+    return _clang_VirtualFileOverlay_dispose(
       arg0,
     );
   }
 
-  _dart_clang_VirtualFileOverlay_dispose? _clang_VirtualFileOverlay_dispose;
+  late final _clang_VirtualFileOverlay_dispose_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_VirtualFileOverlay_dispose>>(
+          'clang_VirtualFileOverlay_dispose');
+  late final _dart_clang_VirtualFileOverlay_dispose
+      _clang_VirtualFileOverlay_dispose = _clang_VirtualFileOverlay_dispose_ptr
+          .asFunction<_dart_clang_VirtualFileOverlay_dispose>();
 
   /// Create a CXModuleMapDescriptor object. Must be disposed with
   /// clang_ModuleMapDescriptor_dispose().
   ffi.Pointer<CXModuleMapDescriptorImpl> clang_ModuleMapDescriptor_create(
     int options,
   ) {
-    return (_clang_ModuleMapDescriptor_create ??=
-        _lookup<ffi.NativeFunction<_c_clang_ModuleMapDescriptor_create>>(
-                'clang_ModuleMapDescriptor_create')
-            .asFunction<_dart_clang_ModuleMapDescriptor_create>())(
+    return _clang_ModuleMapDescriptor_create(
       options,
     );
   }
 
-  _dart_clang_ModuleMapDescriptor_create? _clang_ModuleMapDescriptor_create;
+  late final _clang_ModuleMapDescriptor_create_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_ModuleMapDescriptor_create>>(
+          'clang_ModuleMapDescriptor_create');
+  late final _dart_clang_ModuleMapDescriptor_create
+      _clang_ModuleMapDescriptor_create = _clang_ModuleMapDescriptor_create_ptr
+          .asFunction<_dart_clang_ModuleMapDescriptor_create>();
 
   /// Sets the framework module name that the module.map describes.
   int clang_ModuleMapDescriptor_setFrameworkModuleName(
     ffi.Pointer<CXModuleMapDescriptorImpl> arg0,
     ffi.Pointer<ffi.Int8> name,
   ) {
-    return (_clang_ModuleMapDescriptor_setFrameworkModuleName ??= _lookup<
-                ffi.NativeFunction<
-                    _c_clang_ModuleMapDescriptor_setFrameworkModuleName>>(
-            'clang_ModuleMapDescriptor_setFrameworkModuleName')
-        .asFunction<_dart_clang_ModuleMapDescriptor_setFrameworkModuleName>())(
+    return _clang_ModuleMapDescriptor_setFrameworkModuleName(
       arg0,
       name,
     );
   }
 
-  _dart_clang_ModuleMapDescriptor_setFrameworkModuleName?
-      _clang_ModuleMapDescriptor_setFrameworkModuleName;
+  late final _clang_ModuleMapDescriptor_setFrameworkModuleName_ptr = _lookup<
+          ffi.NativeFunction<
+              _c_clang_ModuleMapDescriptor_setFrameworkModuleName>>(
+      'clang_ModuleMapDescriptor_setFrameworkModuleName');
+  late final _dart_clang_ModuleMapDescriptor_setFrameworkModuleName
+      _clang_ModuleMapDescriptor_setFrameworkModuleName =
+      _clang_ModuleMapDescriptor_setFrameworkModuleName_ptr
+          .asFunction<_dart_clang_ModuleMapDescriptor_setFrameworkModuleName>();
 
   /// Sets the umbrealla header name that the module.map describes.
   int clang_ModuleMapDescriptor_setUmbrellaHeader(
     ffi.Pointer<CXModuleMapDescriptorImpl> arg0,
     ffi.Pointer<ffi.Int8> name,
   ) {
-    return (_clang_ModuleMapDescriptor_setUmbrellaHeader ??= _lookup<
-                ffi.NativeFunction<
-                    _c_clang_ModuleMapDescriptor_setUmbrellaHeader>>(
-            'clang_ModuleMapDescriptor_setUmbrellaHeader')
-        .asFunction<_dart_clang_ModuleMapDescriptor_setUmbrellaHeader>())(
+    return _clang_ModuleMapDescriptor_setUmbrellaHeader(
       arg0,
       name,
     );
   }
 
-  _dart_clang_ModuleMapDescriptor_setUmbrellaHeader?
-      _clang_ModuleMapDescriptor_setUmbrellaHeader;
+  late final _clang_ModuleMapDescriptor_setUmbrellaHeader_ptr = _lookup<
+          ffi.NativeFunction<_c_clang_ModuleMapDescriptor_setUmbrellaHeader>>(
+      'clang_ModuleMapDescriptor_setUmbrellaHeader');
+  late final _dart_clang_ModuleMapDescriptor_setUmbrellaHeader
+      _clang_ModuleMapDescriptor_setUmbrellaHeader =
+      _clang_ModuleMapDescriptor_setUmbrellaHeader_ptr
+          .asFunction<_dart_clang_ModuleMapDescriptor_setUmbrellaHeader>();
 
   /// Write out the CXModuleMapDescriptor object to a char buffer.
   int clang_ModuleMapDescriptor_writeToBuffer(
@@ -232,10 +252,7 @@
     ffi.Pointer<ffi.Pointer<ffi.Int8>> out_buffer_ptr,
     ffi.Pointer<ffi.Uint32> out_buffer_size,
   ) {
-    return (_clang_ModuleMapDescriptor_writeToBuffer ??=
-        _lookup<ffi.NativeFunction<_c_clang_ModuleMapDescriptor_writeToBuffer>>(
-                'clang_ModuleMapDescriptor_writeToBuffer')
-            .asFunction<_dart_clang_ModuleMapDescriptor_writeToBuffer>())(
+    return _clang_ModuleMapDescriptor_writeToBuffer(
       arg0,
       options,
       out_buffer_ptr,
@@ -243,140 +260,158 @@
     );
   }
 
-  _dart_clang_ModuleMapDescriptor_writeToBuffer?
-      _clang_ModuleMapDescriptor_writeToBuffer;
+  late final _clang_ModuleMapDescriptor_writeToBuffer_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_ModuleMapDescriptor_writeToBuffer>>(
+          'clang_ModuleMapDescriptor_writeToBuffer');
+  late final _dart_clang_ModuleMapDescriptor_writeToBuffer
+      _clang_ModuleMapDescriptor_writeToBuffer =
+      _clang_ModuleMapDescriptor_writeToBuffer_ptr
+          .asFunction<_dart_clang_ModuleMapDescriptor_writeToBuffer>();
 
   /// Dispose a CXModuleMapDescriptor object.
   void clang_ModuleMapDescriptor_dispose(
     ffi.Pointer<CXModuleMapDescriptorImpl> arg0,
   ) {
-    return (_clang_ModuleMapDescriptor_dispose ??=
-        _lookup<ffi.NativeFunction<_c_clang_ModuleMapDescriptor_dispose>>(
-                'clang_ModuleMapDescriptor_dispose')
-            .asFunction<_dart_clang_ModuleMapDescriptor_dispose>())(
+    return _clang_ModuleMapDescriptor_dispose(
       arg0,
     );
   }
 
-  _dart_clang_ModuleMapDescriptor_dispose? _clang_ModuleMapDescriptor_dispose;
+  late final _clang_ModuleMapDescriptor_dispose_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_ModuleMapDescriptor_dispose>>(
+          'clang_ModuleMapDescriptor_dispose');
+  late final _dart_clang_ModuleMapDescriptor_dispose
+      _clang_ModuleMapDescriptor_dispose =
+      _clang_ModuleMapDescriptor_dispose_ptr
+          .asFunction<_dart_clang_ModuleMapDescriptor_dispose>();
 
   /// Provides a shared context for creating translation units.
   ffi.Pointer<ffi.Void> clang_createIndex(
     int excludeDeclarationsFromPCH,
     int displayDiagnostics,
   ) {
-    return (_clang_createIndex ??=
-        _lookup<ffi.NativeFunction<_c_clang_createIndex>>('clang_createIndex')
-            .asFunction<_dart_clang_createIndex>())(
+    return _clang_createIndex(
       excludeDeclarationsFromPCH,
       displayDiagnostics,
     );
   }
 
-  _dart_clang_createIndex? _clang_createIndex;
+  late final _clang_createIndex_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_createIndex>>('clang_createIndex');
+  late final _dart_clang_createIndex _clang_createIndex =
+      _clang_createIndex_ptr.asFunction<_dart_clang_createIndex>();
 
   /// Destroy the given index.
   void clang_disposeIndex(
     ffi.Pointer<ffi.Void> index,
   ) {
-    return (_clang_disposeIndex ??=
-        _lookup<ffi.NativeFunction<_c_clang_disposeIndex>>('clang_disposeIndex')
-            .asFunction<_dart_clang_disposeIndex>())(
+    return _clang_disposeIndex(
       index,
     );
   }
 
-  _dart_clang_disposeIndex? _clang_disposeIndex;
+  late final _clang_disposeIndex_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_disposeIndex>>('clang_disposeIndex');
+  late final _dart_clang_disposeIndex _clang_disposeIndex =
+      _clang_disposeIndex_ptr.asFunction<_dart_clang_disposeIndex>();
 
   /// Sets general options associated with a CXIndex.
   void clang_CXIndex_setGlobalOptions(
     ffi.Pointer<ffi.Void> arg0,
     int options,
   ) {
-    return (_clang_CXIndex_setGlobalOptions ??=
-        _lookup<ffi.NativeFunction<_c_clang_CXIndex_setGlobalOptions>>(
-                'clang_CXIndex_setGlobalOptions')
-            .asFunction<_dart_clang_CXIndex_setGlobalOptions>())(
+    return _clang_CXIndex_setGlobalOptions(
       arg0,
       options,
     );
   }
 
-  _dart_clang_CXIndex_setGlobalOptions? _clang_CXIndex_setGlobalOptions;
+  late final _clang_CXIndex_setGlobalOptions_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_CXIndex_setGlobalOptions>>(
+          'clang_CXIndex_setGlobalOptions');
+  late final _dart_clang_CXIndex_setGlobalOptions
+      _clang_CXIndex_setGlobalOptions = _clang_CXIndex_setGlobalOptions_ptr
+          .asFunction<_dart_clang_CXIndex_setGlobalOptions>();
 
   /// Gets the general options associated with a CXIndex.
   int clang_CXIndex_getGlobalOptions(
     ffi.Pointer<ffi.Void> arg0,
   ) {
-    return (_clang_CXIndex_getGlobalOptions ??=
-        _lookup<ffi.NativeFunction<_c_clang_CXIndex_getGlobalOptions>>(
-                'clang_CXIndex_getGlobalOptions')
-            .asFunction<_dart_clang_CXIndex_getGlobalOptions>())(
+    return _clang_CXIndex_getGlobalOptions(
       arg0,
     );
   }
 
-  _dart_clang_CXIndex_getGlobalOptions? _clang_CXIndex_getGlobalOptions;
+  late final _clang_CXIndex_getGlobalOptions_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_CXIndex_getGlobalOptions>>(
+          'clang_CXIndex_getGlobalOptions');
+  late final _dart_clang_CXIndex_getGlobalOptions
+      _clang_CXIndex_getGlobalOptions = _clang_CXIndex_getGlobalOptions_ptr
+          .asFunction<_dart_clang_CXIndex_getGlobalOptions>();
 
   /// Sets the invocation emission path option in a CXIndex.
   void clang_CXIndex_setInvocationEmissionPathOption(
     ffi.Pointer<ffi.Void> arg0,
     ffi.Pointer<ffi.Int8> Path,
   ) {
-    return (_clang_CXIndex_setInvocationEmissionPathOption ??= _lookup<
-                ffi.NativeFunction<
-                    _c_clang_CXIndex_setInvocationEmissionPathOption>>(
-            'clang_CXIndex_setInvocationEmissionPathOption')
-        .asFunction<_dart_clang_CXIndex_setInvocationEmissionPathOption>())(
+    return _clang_CXIndex_setInvocationEmissionPathOption(
       arg0,
       Path,
     );
   }
 
-  _dart_clang_CXIndex_setInvocationEmissionPathOption?
-      _clang_CXIndex_setInvocationEmissionPathOption;
+  late final _clang_CXIndex_setInvocationEmissionPathOption_ptr = _lookup<
+          ffi.NativeFunction<_c_clang_CXIndex_setInvocationEmissionPathOption>>(
+      'clang_CXIndex_setInvocationEmissionPathOption');
+  late final _dart_clang_CXIndex_setInvocationEmissionPathOption
+      _clang_CXIndex_setInvocationEmissionPathOption =
+      _clang_CXIndex_setInvocationEmissionPathOption_ptr
+          .asFunction<_dart_clang_CXIndex_setInvocationEmissionPathOption>();
 
   /// Retrieve the complete file and path name of the given file.
   CXString clang_getFileName(
     ffi.Pointer<ffi.Void> SFile,
   ) {
-    return (_clang_getFileName ??=
-        _lookup<ffi.NativeFunction<_c_clang_getFileName>>('clang_getFileName')
-            .asFunction<_dart_clang_getFileName>())(
+    return _clang_getFileName(
       SFile,
     );
   }
 
-  _dart_clang_getFileName? _clang_getFileName;
+  late final _clang_getFileName_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_getFileName>>('clang_getFileName');
+  late final _dart_clang_getFileName _clang_getFileName =
+      _clang_getFileName_ptr.asFunction<_dart_clang_getFileName>();
 
   /// Retrieve the last modification time of the given file.
   int clang_getFileTime(
     ffi.Pointer<ffi.Void> SFile,
   ) {
-    return (_clang_getFileTime ??=
-        _lookup<ffi.NativeFunction<_c_clang_getFileTime>>('clang_getFileTime')
-            .asFunction<_dart_clang_getFileTime>())(
+    return _clang_getFileTime(
       SFile,
     );
   }
 
-  _dart_clang_getFileTime? _clang_getFileTime;
+  late final _clang_getFileTime_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_getFileTime>>('clang_getFileTime');
+  late final _dart_clang_getFileTime _clang_getFileTime =
+      _clang_getFileTime_ptr.asFunction<_dart_clang_getFileTime>();
 
   /// Retrieve the unique ID for the given file.
   int clang_getFileUniqueID(
     ffi.Pointer<ffi.Void> file,
     ffi.Pointer<CXFileUniqueID> outID,
   ) {
-    return (_clang_getFileUniqueID ??=
-        _lookup<ffi.NativeFunction<_c_clang_getFileUniqueID>>(
-                'clang_getFileUniqueID')
-            .asFunction<_dart_clang_getFileUniqueID>())(
+    return _clang_getFileUniqueID(
       file,
       outID,
     );
   }
 
-  _dart_clang_getFileUniqueID? _clang_getFileUniqueID;
+  late final _clang_getFileUniqueID_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_getFileUniqueID>>(
+          'clang_getFileUniqueID');
+  late final _dart_clang_getFileUniqueID _clang_getFileUniqueID =
+      _clang_getFileUniqueID_ptr.asFunction<_dart_clang_getFileUniqueID>();
 
   /// Determine whether the given header is guarded against multiple inclusions,
   /// either with the conventional #ifndef/#define/#endif macro guards or with
@@ -385,31 +420,35 @@
     ffi.Pointer<CXTranslationUnitImpl> tu,
     ffi.Pointer<ffi.Void> file,
   ) {
-    return (_clang_isFileMultipleIncludeGuarded ??=
-        _lookup<ffi.NativeFunction<_c_clang_isFileMultipleIncludeGuarded>>(
-                'clang_isFileMultipleIncludeGuarded')
-            .asFunction<_dart_clang_isFileMultipleIncludeGuarded>())(
+    return _clang_isFileMultipleIncludeGuarded(
       tu,
       file,
     );
   }
 
-  _dart_clang_isFileMultipleIncludeGuarded? _clang_isFileMultipleIncludeGuarded;
+  late final _clang_isFileMultipleIncludeGuarded_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_isFileMultipleIncludeGuarded>>(
+          'clang_isFileMultipleIncludeGuarded');
+  late final _dart_clang_isFileMultipleIncludeGuarded
+      _clang_isFileMultipleIncludeGuarded =
+      _clang_isFileMultipleIncludeGuarded_ptr
+          .asFunction<_dart_clang_isFileMultipleIncludeGuarded>();
 
   /// Retrieve a file handle within the given translation unit.
   ffi.Pointer<ffi.Void> clang_getFile(
     ffi.Pointer<CXTranslationUnitImpl> tu,
     ffi.Pointer<ffi.Int8> file_name,
   ) {
-    return (_clang_getFile ??=
-        _lookup<ffi.NativeFunction<_c_clang_getFile>>('clang_getFile')
-            .asFunction<_dart_clang_getFile>())(
+    return _clang_getFile(
       tu,
       file_name,
     );
   }
 
-  _dart_clang_getFile? _clang_getFile;
+  late final _clang_getFile_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_getFile>>('clang_getFile');
+  late final _dart_clang_getFile _clang_getFile =
+      _clang_getFile_ptr.asFunction<_dart_clang_getFile>();
 
   /// Retrieve the buffer associated with the given file.
   ffi.Pointer<ffi.Int8> clang_getFileContents(
@@ -417,17 +456,18 @@
     ffi.Pointer<ffi.Void> file,
     ffi.Pointer<ffi.Uint64> size,
   ) {
-    return (_clang_getFileContents ??=
-        _lookup<ffi.NativeFunction<_c_clang_getFileContents>>(
-                'clang_getFileContents')
-            .asFunction<_dart_clang_getFileContents>())(
+    return _clang_getFileContents(
       tu,
       file,
       size,
     );
   }
 
-  _dart_clang_getFileContents? _clang_getFileContents;
+  late final _clang_getFileContents_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_getFileContents>>(
+          'clang_getFileContents');
+  late final _dart_clang_getFileContents _clang_getFileContents =
+      _clang_getFileContents_ptr.asFunction<_dart_clang_getFileContents>();
 
   /// Returns non-zero if the file1 and file2 point to the same file, or they
   /// are both NULL.
@@ -435,39 +475,43 @@
     ffi.Pointer<ffi.Void> file1,
     ffi.Pointer<ffi.Void> file2,
   ) {
-    return (_clang_File_isEqual ??=
-        _lookup<ffi.NativeFunction<_c_clang_File_isEqual>>('clang_File_isEqual')
-            .asFunction<_dart_clang_File_isEqual>())(
+    return _clang_File_isEqual(
       file1,
       file2,
     );
   }
 
-  _dart_clang_File_isEqual? _clang_File_isEqual;
+  late final _clang_File_isEqual_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_File_isEqual>>('clang_File_isEqual');
+  late final _dart_clang_File_isEqual _clang_File_isEqual =
+      _clang_File_isEqual_ptr.asFunction<_dart_clang_File_isEqual>();
 
   /// Returns the real path name of file.
   CXString clang_File_tryGetRealPathName(
     ffi.Pointer<ffi.Void> file,
   ) {
-    return (_clang_File_tryGetRealPathName ??=
-        _lookup<ffi.NativeFunction<_c_clang_File_tryGetRealPathName>>(
-                'clang_File_tryGetRealPathName')
-            .asFunction<_dart_clang_File_tryGetRealPathName>())(
+    return _clang_File_tryGetRealPathName(
       file,
     );
   }
 
-  _dart_clang_File_tryGetRealPathName? _clang_File_tryGetRealPathName;
+  late final _clang_File_tryGetRealPathName_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_File_tryGetRealPathName>>(
+          'clang_File_tryGetRealPathName');
+  late final _dart_clang_File_tryGetRealPathName
+      _clang_File_tryGetRealPathName = _clang_File_tryGetRealPathName_ptr
+          .asFunction<_dart_clang_File_tryGetRealPathName>();
 
   /// Retrieve a NULL (invalid) source location.
   CXSourceLocation clang_getNullLocation() {
-    return (_clang_getNullLocation ??=
-        _lookup<ffi.NativeFunction<_c_clang_getNullLocation>>(
-                'clang_getNullLocation')
-            .asFunction<_dart_clang_getNullLocation>())();
+    return _clang_getNullLocation();
   }
 
-  _dart_clang_getNullLocation? _clang_getNullLocation;
+  late final _clang_getNullLocation_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_getNullLocation>>(
+          'clang_getNullLocation');
+  late final _dart_clang_getNullLocation _clang_getNullLocation =
+      _clang_getNullLocation_ptr.asFunction<_dart_clang_getNullLocation>();
 
   /// Determine whether two source locations, which must refer into the same
   /// translation unit, refer to exactly the same point in the source code.
@@ -475,16 +519,17 @@
     CXSourceLocation loc1,
     CXSourceLocation loc2,
   ) {
-    return (_clang_equalLocations ??=
-        _lookup<ffi.NativeFunction<_c_clang_equalLocations>>(
-                'clang_equalLocations')
-            .asFunction<_dart_clang_equalLocations>())(
+    return _clang_equalLocations(
       loc1,
       loc2,
     );
   }
 
-  _dart_clang_equalLocations? _clang_equalLocations;
+  late final _clang_equalLocations_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_equalLocations>>(
+          'clang_equalLocations');
+  late final _dart_clang_equalLocations _clang_equalLocations =
+      _clang_equalLocations_ptr.asFunction<_dart_clang_equalLocations>();
 
   /// Retrieves the source location associated with a given file/line/column in
   /// a particular translation unit.
@@ -494,9 +539,7 @@
     int line,
     int column,
   ) {
-    return (_clang_getLocation ??=
-        _lookup<ffi.NativeFunction<_c_clang_getLocation>>('clang_getLocation')
-            .asFunction<_dart_clang_getLocation>())(
+    return _clang_getLocation(
       tu,
       file,
       line,
@@ -504,7 +547,10 @@
     );
   }
 
-  _dart_clang_getLocation? _clang_getLocation;
+  late final _clang_getLocation_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_getLocation>>('clang_getLocation');
+  late final _dart_clang_getLocation _clang_getLocation =
+      _clang_getLocation_ptr.asFunction<_dart_clang_getLocation>();
 
   /// Retrieves the source location associated with a given character offset in
   /// a particular translation unit.
@@ -513,98 +559,108 @@
     ffi.Pointer<ffi.Void> file,
     int offset,
   ) {
-    return (_clang_getLocationForOffset ??=
-        _lookup<ffi.NativeFunction<_c_clang_getLocationForOffset>>(
-                'clang_getLocationForOffset')
-            .asFunction<_dart_clang_getLocationForOffset>())(
+    return _clang_getLocationForOffset(
       tu,
       file,
       offset,
     );
   }
 
-  _dart_clang_getLocationForOffset? _clang_getLocationForOffset;
+  late final _clang_getLocationForOffset_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_getLocationForOffset>>(
+          'clang_getLocationForOffset');
+  late final _dart_clang_getLocationForOffset _clang_getLocationForOffset =
+      _clang_getLocationForOffset_ptr
+          .asFunction<_dart_clang_getLocationForOffset>();
 
   /// Returns non-zero if the given source location is in a system header.
   int clang_Location_isInSystemHeader(
     CXSourceLocation location,
   ) {
-    return (_clang_Location_isInSystemHeader ??=
-        _lookup<ffi.NativeFunction<_c_clang_Location_isInSystemHeader>>(
-                'clang_Location_isInSystemHeader')
-            .asFunction<_dart_clang_Location_isInSystemHeader>())(
+    return _clang_Location_isInSystemHeader(
       location,
     );
   }
 
-  _dart_clang_Location_isInSystemHeader? _clang_Location_isInSystemHeader;
+  late final _clang_Location_isInSystemHeader_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_Location_isInSystemHeader>>(
+          'clang_Location_isInSystemHeader');
+  late final _dart_clang_Location_isInSystemHeader
+      _clang_Location_isInSystemHeader = _clang_Location_isInSystemHeader_ptr
+          .asFunction<_dart_clang_Location_isInSystemHeader>();
 
   /// Returns non-zero if the given source location is in the main file of the
   /// corresponding translation unit.
   int clang_Location_isFromMainFile(
     CXSourceLocation location,
   ) {
-    return (_clang_Location_isFromMainFile ??=
-        _lookup<ffi.NativeFunction<_c_clang_Location_isFromMainFile>>(
-                'clang_Location_isFromMainFile')
-            .asFunction<_dart_clang_Location_isFromMainFile>())(
+    return _clang_Location_isFromMainFile(
       location,
     );
   }
 
-  _dart_clang_Location_isFromMainFile? _clang_Location_isFromMainFile;
+  late final _clang_Location_isFromMainFile_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_Location_isFromMainFile>>(
+          'clang_Location_isFromMainFile');
+  late final _dart_clang_Location_isFromMainFile
+      _clang_Location_isFromMainFile = _clang_Location_isFromMainFile_ptr
+          .asFunction<_dart_clang_Location_isFromMainFile>();
 
   /// Retrieve a NULL (invalid) source range.
   CXSourceRange clang_getNullRange() {
-    return (_clang_getNullRange ??=
-        _lookup<ffi.NativeFunction<_c_clang_getNullRange>>('clang_getNullRange')
-            .asFunction<_dart_clang_getNullRange>())();
+    return _clang_getNullRange();
   }
 
-  _dart_clang_getNullRange? _clang_getNullRange;
+  late final _clang_getNullRange_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_getNullRange>>('clang_getNullRange');
+  late final _dart_clang_getNullRange _clang_getNullRange =
+      _clang_getNullRange_ptr.asFunction<_dart_clang_getNullRange>();
 
   /// Retrieve a source range given the beginning and ending source locations.
   CXSourceRange clang_getRange(
     CXSourceLocation begin,
     CXSourceLocation end,
   ) {
-    return (_clang_getRange ??=
-        _lookup<ffi.NativeFunction<_c_clang_getRange>>('clang_getRange')
-            .asFunction<_dart_clang_getRange>())(
+    return _clang_getRange(
       begin,
       end,
     );
   }
 
-  _dart_clang_getRange? _clang_getRange;
+  late final _clang_getRange_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_getRange>>('clang_getRange');
+  late final _dart_clang_getRange _clang_getRange =
+      _clang_getRange_ptr.asFunction<_dart_clang_getRange>();
 
   /// Determine whether two ranges are equivalent.
   int clang_equalRanges(
     CXSourceRange range1,
     CXSourceRange range2,
   ) {
-    return (_clang_equalRanges ??=
-        _lookup<ffi.NativeFunction<_c_clang_equalRanges>>('clang_equalRanges')
-            .asFunction<_dart_clang_equalRanges>())(
+    return _clang_equalRanges(
       range1,
       range2,
     );
   }
 
-  _dart_clang_equalRanges? _clang_equalRanges;
+  late final _clang_equalRanges_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_equalRanges>>('clang_equalRanges');
+  late final _dart_clang_equalRanges _clang_equalRanges =
+      _clang_equalRanges_ptr.asFunction<_dart_clang_equalRanges>();
 
   /// Returns non-zero if range is null.
   int clang_Range_isNull(
     CXSourceRange range,
   ) {
-    return (_clang_Range_isNull ??=
-        _lookup<ffi.NativeFunction<_c_clang_Range_isNull>>('clang_Range_isNull')
-            .asFunction<_dart_clang_Range_isNull>())(
+    return _clang_Range_isNull(
       range,
     );
   }
 
-  _dart_clang_Range_isNull? _clang_Range_isNull;
+  late final _clang_Range_isNull_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_Range_isNull>>('clang_Range_isNull');
+  late final _dart_clang_Range_isNull _clang_Range_isNull =
+      _clang_Range_isNull_ptr.asFunction<_dart_clang_Range_isNull>();
 
   /// Retrieve the file, line, column, and offset represented by the given
   /// source location.
@@ -615,10 +671,7 @@
     ffi.Pointer<ffi.Uint32> column,
     ffi.Pointer<ffi.Uint32> offset,
   ) {
-    return (_clang_getExpansionLocation ??=
-        _lookup<ffi.NativeFunction<_c_clang_getExpansionLocation>>(
-                'clang_getExpansionLocation')
-            .asFunction<_dart_clang_getExpansionLocation>())(
+    return _clang_getExpansionLocation(
       location,
       file,
       line,
@@ -627,7 +680,12 @@
     );
   }
 
-  _dart_clang_getExpansionLocation? _clang_getExpansionLocation;
+  late final _clang_getExpansionLocation_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_getExpansionLocation>>(
+          'clang_getExpansionLocation');
+  late final _dart_clang_getExpansionLocation _clang_getExpansionLocation =
+      _clang_getExpansionLocation_ptr
+          .asFunction<_dart_clang_getExpansionLocation>();
 
   /// Retrieve the file, line and column represented by the given source
   /// location, as specified in a # line directive.
@@ -637,10 +695,7 @@
     ffi.Pointer<ffi.Uint32> line,
     ffi.Pointer<ffi.Uint32> column,
   ) {
-    return (_clang_getPresumedLocation ??=
-        _lookup<ffi.NativeFunction<_c_clang_getPresumedLocation>>(
-                'clang_getPresumedLocation')
-            .asFunction<_dart_clang_getPresumedLocation>())(
+    return _clang_getPresumedLocation(
       location,
       filename,
       line,
@@ -648,7 +703,12 @@
     );
   }
 
-  _dart_clang_getPresumedLocation? _clang_getPresumedLocation;
+  late final _clang_getPresumedLocation_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_getPresumedLocation>>(
+          'clang_getPresumedLocation');
+  late final _dart_clang_getPresumedLocation _clang_getPresumedLocation =
+      _clang_getPresumedLocation_ptr
+          .asFunction<_dart_clang_getPresumedLocation>();
 
   /// Legacy API to retrieve the file, line, column, and offset represented by
   /// the given source location.
@@ -659,10 +719,7 @@
     ffi.Pointer<ffi.Uint32> column,
     ffi.Pointer<ffi.Uint32> offset,
   ) {
-    return (_clang_getInstantiationLocation ??=
-        _lookup<ffi.NativeFunction<_c_clang_getInstantiationLocation>>(
-                'clang_getInstantiationLocation')
-            .asFunction<_dart_clang_getInstantiationLocation>())(
+    return _clang_getInstantiationLocation(
       location,
       file,
       line,
@@ -671,7 +728,12 @@
     );
   }
 
-  _dart_clang_getInstantiationLocation? _clang_getInstantiationLocation;
+  late final _clang_getInstantiationLocation_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_getInstantiationLocation>>(
+          'clang_getInstantiationLocation');
+  late final _dart_clang_getInstantiationLocation
+      _clang_getInstantiationLocation = _clang_getInstantiationLocation_ptr
+          .asFunction<_dart_clang_getInstantiationLocation>();
 
   /// Retrieve the file, line, column, and offset represented by the given
   /// source location.
@@ -682,10 +744,7 @@
     ffi.Pointer<ffi.Uint32> column,
     ffi.Pointer<ffi.Uint32> offset,
   ) {
-    return (_clang_getSpellingLocation ??=
-        _lookup<ffi.NativeFunction<_c_clang_getSpellingLocation>>(
-                'clang_getSpellingLocation')
-            .asFunction<_dart_clang_getSpellingLocation>())(
+    return _clang_getSpellingLocation(
       location,
       file,
       line,
@@ -694,7 +753,12 @@
     );
   }
 
-  _dart_clang_getSpellingLocation? _clang_getSpellingLocation;
+  late final _clang_getSpellingLocation_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_getSpellingLocation>>(
+          'clang_getSpellingLocation');
+  late final _dart_clang_getSpellingLocation _clang_getSpellingLocation =
+      _clang_getSpellingLocation_ptr
+          .asFunction<_dart_clang_getSpellingLocation>();
 
   /// Retrieve the file, line, column, and offset represented by the given
   /// source location.
@@ -705,10 +769,7 @@
     ffi.Pointer<ffi.Uint32> column,
     ffi.Pointer<ffi.Uint32> offset,
   ) {
-    return (_clang_getFileLocation ??=
-        _lookup<ffi.NativeFunction<_c_clang_getFileLocation>>(
-                'clang_getFileLocation')
-            .asFunction<_dart_clang_getFileLocation>())(
+    return _clang_getFileLocation(
       location,
       file,
       line,
@@ -717,110 +778,125 @@
     );
   }
 
-  _dart_clang_getFileLocation? _clang_getFileLocation;
+  late final _clang_getFileLocation_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_getFileLocation>>(
+          'clang_getFileLocation');
+  late final _dart_clang_getFileLocation _clang_getFileLocation =
+      _clang_getFileLocation_ptr.asFunction<_dart_clang_getFileLocation>();
 
   /// Retrieve a source location representing the first character within a
   /// source range.
   CXSourceLocation clang_getRangeStart(
     CXSourceRange range,
   ) {
-    return (_clang_getRangeStart ??=
-        _lookup<ffi.NativeFunction<_c_clang_getRangeStart>>(
-                'clang_getRangeStart')
-            .asFunction<_dart_clang_getRangeStart>())(
+    return _clang_getRangeStart(
       range,
     );
   }
 
-  _dart_clang_getRangeStart? _clang_getRangeStart;
+  late final _clang_getRangeStart_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_getRangeStart>>(
+          'clang_getRangeStart');
+  late final _dart_clang_getRangeStart _clang_getRangeStart =
+      _clang_getRangeStart_ptr.asFunction<_dart_clang_getRangeStart>();
 
   /// Retrieve a source location representing the last character within a source
   /// range.
   CXSourceLocation clang_getRangeEnd(
     CXSourceRange range,
   ) {
-    return (_clang_getRangeEnd ??=
-        _lookup<ffi.NativeFunction<_c_clang_getRangeEnd>>('clang_getRangeEnd')
-            .asFunction<_dart_clang_getRangeEnd>())(
+    return _clang_getRangeEnd(
       range,
     );
   }
 
-  _dart_clang_getRangeEnd? _clang_getRangeEnd;
+  late final _clang_getRangeEnd_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_getRangeEnd>>('clang_getRangeEnd');
+  late final _dart_clang_getRangeEnd _clang_getRangeEnd =
+      _clang_getRangeEnd_ptr.asFunction<_dart_clang_getRangeEnd>();
 
   /// Retrieve all ranges that were skipped by the preprocessor.
   ffi.Pointer<CXSourceRangeList> clang_getSkippedRanges(
     ffi.Pointer<CXTranslationUnitImpl> tu,
     ffi.Pointer<ffi.Void> file,
   ) {
-    return (_clang_getSkippedRanges ??=
-        _lookup<ffi.NativeFunction<_c_clang_getSkippedRanges>>(
-                'clang_getSkippedRanges')
-            .asFunction<_dart_clang_getSkippedRanges>())(
+    return _clang_getSkippedRanges(
       tu,
       file,
     );
   }
 
-  _dart_clang_getSkippedRanges? _clang_getSkippedRanges;
+  late final _clang_getSkippedRanges_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_getSkippedRanges>>(
+          'clang_getSkippedRanges');
+  late final _dart_clang_getSkippedRanges _clang_getSkippedRanges =
+      _clang_getSkippedRanges_ptr.asFunction<_dart_clang_getSkippedRanges>();
 
   /// Retrieve all ranges from all files that were skipped by the preprocessor.
   ffi.Pointer<CXSourceRangeList> clang_getAllSkippedRanges(
     ffi.Pointer<CXTranslationUnitImpl> tu,
   ) {
-    return (_clang_getAllSkippedRanges ??=
-        _lookup<ffi.NativeFunction<_c_clang_getAllSkippedRanges>>(
-                'clang_getAllSkippedRanges')
-            .asFunction<_dart_clang_getAllSkippedRanges>())(
+    return _clang_getAllSkippedRanges(
       tu,
     );
   }
 
-  _dart_clang_getAllSkippedRanges? _clang_getAllSkippedRanges;
+  late final _clang_getAllSkippedRanges_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_getAllSkippedRanges>>(
+          'clang_getAllSkippedRanges');
+  late final _dart_clang_getAllSkippedRanges _clang_getAllSkippedRanges =
+      _clang_getAllSkippedRanges_ptr
+          .asFunction<_dart_clang_getAllSkippedRanges>();
 
   /// Destroy the given CXSourceRangeList.
   void clang_disposeSourceRangeList(
     ffi.Pointer<CXSourceRangeList> ranges,
   ) {
-    return (_clang_disposeSourceRangeList ??=
-        _lookup<ffi.NativeFunction<_c_clang_disposeSourceRangeList>>(
-                'clang_disposeSourceRangeList')
-            .asFunction<_dart_clang_disposeSourceRangeList>())(
+    return _clang_disposeSourceRangeList(
       ranges,
     );
   }
 
-  _dart_clang_disposeSourceRangeList? _clang_disposeSourceRangeList;
+  late final _clang_disposeSourceRangeList_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_disposeSourceRangeList>>(
+          'clang_disposeSourceRangeList');
+  late final _dart_clang_disposeSourceRangeList _clang_disposeSourceRangeList =
+      _clang_disposeSourceRangeList_ptr
+          .asFunction<_dart_clang_disposeSourceRangeList>();
 
   /// Determine the number of diagnostics in a CXDiagnosticSet.
   int clang_getNumDiagnosticsInSet(
     ffi.Pointer<ffi.Void> Diags,
   ) {
-    return (_clang_getNumDiagnosticsInSet ??=
-        _lookup<ffi.NativeFunction<_c_clang_getNumDiagnosticsInSet>>(
-                'clang_getNumDiagnosticsInSet')
-            .asFunction<_dart_clang_getNumDiagnosticsInSet>())(
+    return _clang_getNumDiagnosticsInSet(
       Diags,
     );
   }
 
-  _dart_clang_getNumDiagnosticsInSet? _clang_getNumDiagnosticsInSet;
+  late final _clang_getNumDiagnosticsInSet_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_getNumDiagnosticsInSet>>(
+          'clang_getNumDiagnosticsInSet');
+  late final _dart_clang_getNumDiagnosticsInSet _clang_getNumDiagnosticsInSet =
+      _clang_getNumDiagnosticsInSet_ptr
+          .asFunction<_dart_clang_getNumDiagnosticsInSet>();
 
   /// Retrieve a diagnostic associated with the given CXDiagnosticSet.
   ffi.Pointer<ffi.Void> clang_getDiagnosticInSet(
     ffi.Pointer<ffi.Void> Diags,
     int Index,
   ) {
-    return (_clang_getDiagnosticInSet ??=
-        _lookup<ffi.NativeFunction<_c_clang_getDiagnosticInSet>>(
-                'clang_getDiagnosticInSet')
-            .asFunction<_dart_clang_getDiagnosticInSet>())(
+    return _clang_getDiagnosticInSet(
       Diags,
       Index,
     );
   }
 
-  _dart_clang_getDiagnosticInSet? _clang_getDiagnosticInSet;
+  late final _clang_getDiagnosticInSet_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_getDiagnosticInSet>>(
+          'clang_getDiagnosticInSet');
+  late final _dart_clang_getDiagnosticInSet _clang_getDiagnosticInSet =
+      _clang_getDiagnosticInSet_ptr
+          .asFunction<_dart_clang_getDiagnosticInSet>();
 
   /// Deserialize a set of diagnostics from a Clang diagnostics bitcode file.
   ffi.Pointer<ffi.Void> clang_loadDiagnostics(
@@ -828,279 +904,312 @@
     ffi.Pointer<ffi.Int32> error,
     ffi.Pointer<CXString> errorString,
   ) {
-    return (_clang_loadDiagnostics ??=
-        _lookup<ffi.NativeFunction<_c_clang_loadDiagnostics>>(
-                'clang_loadDiagnostics')
-            .asFunction<_dart_clang_loadDiagnostics>())(
+    return _clang_loadDiagnostics(
       file,
       error,
       errorString,
     );
   }
 
-  _dart_clang_loadDiagnostics? _clang_loadDiagnostics;
+  late final _clang_loadDiagnostics_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_loadDiagnostics>>(
+          'clang_loadDiagnostics');
+  late final _dart_clang_loadDiagnostics _clang_loadDiagnostics =
+      _clang_loadDiagnostics_ptr.asFunction<_dart_clang_loadDiagnostics>();
 
   /// Release a CXDiagnosticSet and all of its contained diagnostics.
   void clang_disposeDiagnosticSet(
     ffi.Pointer<ffi.Void> Diags,
   ) {
-    return (_clang_disposeDiagnosticSet ??=
-        _lookup<ffi.NativeFunction<_c_clang_disposeDiagnosticSet>>(
-                'clang_disposeDiagnosticSet')
-            .asFunction<_dart_clang_disposeDiagnosticSet>())(
+    return _clang_disposeDiagnosticSet(
       Diags,
     );
   }
 
-  _dart_clang_disposeDiagnosticSet? _clang_disposeDiagnosticSet;
+  late final _clang_disposeDiagnosticSet_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_disposeDiagnosticSet>>(
+          'clang_disposeDiagnosticSet');
+  late final _dart_clang_disposeDiagnosticSet _clang_disposeDiagnosticSet =
+      _clang_disposeDiagnosticSet_ptr
+          .asFunction<_dart_clang_disposeDiagnosticSet>();
 
   /// Retrieve the child diagnostics of a CXDiagnostic.
   ffi.Pointer<ffi.Void> clang_getChildDiagnostics(
     ffi.Pointer<ffi.Void> D,
   ) {
-    return (_clang_getChildDiagnostics ??=
-        _lookup<ffi.NativeFunction<_c_clang_getChildDiagnostics>>(
-                'clang_getChildDiagnostics')
-            .asFunction<_dart_clang_getChildDiagnostics>())(
+    return _clang_getChildDiagnostics(
       D,
     );
   }
 
-  _dart_clang_getChildDiagnostics? _clang_getChildDiagnostics;
+  late final _clang_getChildDiagnostics_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_getChildDiagnostics>>(
+          'clang_getChildDiagnostics');
+  late final _dart_clang_getChildDiagnostics _clang_getChildDiagnostics =
+      _clang_getChildDiagnostics_ptr
+          .asFunction<_dart_clang_getChildDiagnostics>();
 
   /// Determine the number of diagnostics produced for the given translation
   /// unit.
   int clang_getNumDiagnostics(
     ffi.Pointer<CXTranslationUnitImpl> Unit,
   ) {
-    return (_clang_getNumDiagnostics ??=
-        _lookup<ffi.NativeFunction<_c_clang_getNumDiagnostics>>(
-                'clang_getNumDiagnostics')
-            .asFunction<_dart_clang_getNumDiagnostics>())(
+    return _clang_getNumDiagnostics(
       Unit,
     );
   }
 
-  _dart_clang_getNumDiagnostics? _clang_getNumDiagnostics;
+  late final _clang_getNumDiagnostics_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_getNumDiagnostics>>(
+          'clang_getNumDiagnostics');
+  late final _dart_clang_getNumDiagnostics _clang_getNumDiagnostics =
+      _clang_getNumDiagnostics_ptr.asFunction<_dart_clang_getNumDiagnostics>();
 
   /// Retrieve a diagnostic associated with the given translation unit.
   ffi.Pointer<ffi.Void> clang_getDiagnostic(
     ffi.Pointer<CXTranslationUnitImpl> Unit,
     int Index,
   ) {
-    return (_clang_getDiagnostic ??=
-        _lookup<ffi.NativeFunction<_c_clang_getDiagnostic>>(
-                'clang_getDiagnostic')
-            .asFunction<_dart_clang_getDiagnostic>())(
+    return _clang_getDiagnostic(
       Unit,
       Index,
     );
   }
 
-  _dart_clang_getDiagnostic? _clang_getDiagnostic;
+  late final _clang_getDiagnostic_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_getDiagnostic>>(
+          'clang_getDiagnostic');
+  late final _dart_clang_getDiagnostic _clang_getDiagnostic =
+      _clang_getDiagnostic_ptr.asFunction<_dart_clang_getDiagnostic>();
 
   /// Retrieve the complete set of diagnostics associated with a translation
   /// unit.
   ffi.Pointer<ffi.Void> clang_getDiagnosticSetFromTU(
     ffi.Pointer<CXTranslationUnitImpl> Unit,
   ) {
-    return (_clang_getDiagnosticSetFromTU ??=
-        _lookup<ffi.NativeFunction<_c_clang_getDiagnosticSetFromTU>>(
-                'clang_getDiagnosticSetFromTU')
-            .asFunction<_dart_clang_getDiagnosticSetFromTU>())(
+    return _clang_getDiagnosticSetFromTU(
       Unit,
     );
   }
 
-  _dart_clang_getDiagnosticSetFromTU? _clang_getDiagnosticSetFromTU;
+  late final _clang_getDiagnosticSetFromTU_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_getDiagnosticSetFromTU>>(
+          'clang_getDiagnosticSetFromTU');
+  late final _dart_clang_getDiagnosticSetFromTU _clang_getDiagnosticSetFromTU =
+      _clang_getDiagnosticSetFromTU_ptr
+          .asFunction<_dart_clang_getDiagnosticSetFromTU>();
 
   /// Destroy a diagnostic.
   void clang_disposeDiagnostic(
     ffi.Pointer<ffi.Void> Diagnostic,
   ) {
-    return (_clang_disposeDiagnostic ??=
-        _lookup<ffi.NativeFunction<_c_clang_disposeDiagnostic>>(
-                'clang_disposeDiagnostic')
-            .asFunction<_dart_clang_disposeDiagnostic>())(
+    return _clang_disposeDiagnostic(
       Diagnostic,
     );
   }
 
-  _dart_clang_disposeDiagnostic? _clang_disposeDiagnostic;
+  late final _clang_disposeDiagnostic_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_disposeDiagnostic>>(
+          'clang_disposeDiagnostic');
+  late final _dart_clang_disposeDiagnostic _clang_disposeDiagnostic =
+      _clang_disposeDiagnostic_ptr.asFunction<_dart_clang_disposeDiagnostic>();
 
   /// Format the given diagnostic in a manner that is suitable for display.
   CXString clang_formatDiagnostic(
     ffi.Pointer<ffi.Void> Diagnostic,
     int Options,
   ) {
-    return (_clang_formatDiagnostic ??=
-        _lookup<ffi.NativeFunction<_c_clang_formatDiagnostic>>(
-                'clang_formatDiagnostic')
-            .asFunction<_dart_clang_formatDiagnostic>())(
+    return _clang_formatDiagnostic(
       Diagnostic,
       Options,
     );
   }
 
-  _dart_clang_formatDiagnostic? _clang_formatDiagnostic;
+  late final _clang_formatDiagnostic_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_formatDiagnostic>>(
+          'clang_formatDiagnostic');
+  late final _dart_clang_formatDiagnostic _clang_formatDiagnostic =
+      _clang_formatDiagnostic_ptr.asFunction<_dart_clang_formatDiagnostic>();
 
   /// Retrieve the set of display options most similar to the default behavior
   /// of the clang compiler.
   int clang_defaultDiagnosticDisplayOptions() {
-    return (_clang_defaultDiagnosticDisplayOptions ??=
-        _lookup<ffi.NativeFunction<_c_clang_defaultDiagnosticDisplayOptions>>(
-                'clang_defaultDiagnosticDisplayOptions')
-            .asFunction<_dart_clang_defaultDiagnosticDisplayOptions>())();
+    return _clang_defaultDiagnosticDisplayOptions();
   }
 
-  _dart_clang_defaultDiagnosticDisplayOptions?
-      _clang_defaultDiagnosticDisplayOptions;
+  late final _clang_defaultDiagnosticDisplayOptions_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_defaultDiagnosticDisplayOptions>>(
+          'clang_defaultDiagnosticDisplayOptions');
+  late final _dart_clang_defaultDiagnosticDisplayOptions
+      _clang_defaultDiagnosticDisplayOptions =
+      _clang_defaultDiagnosticDisplayOptions_ptr
+          .asFunction<_dart_clang_defaultDiagnosticDisplayOptions>();
 
   /// Determine the severity of the given diagnostic.
   int clang_getDiagnosticSeverity(
     ffi.Pointer<ffi.Void> arg0,
   ) {
-    return (_clang_getDiagnosticSeverity ??=
-        _lookup<ffi.NativeFunction<_c_clang_getDiagnosticSeverity>>(
-                'clang_getDiagnosticSeverity')
-            .asFunction<_dart_clang_getDiagnosticSeverity>())(
+    return _clang_getDiagnosticSeverity(
       arg0,
     );
   }
 
-  _dart_clang_getDiagnosticSeverity? _clang_getDiagnosticSeverity;
+  late final _clang_getDiagnosticSeverity_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_getDiagnosticSeverity>>(
+          'clang_getDiagnosticSeverity');
+  late final _dart_clang_getDiagnosticSeverity _clang_getDiagnosticSeverity =
+      _clang_getDiagnosticSeverity_ptr
+          .asFunction<_dart_clang_getDiagnosticSeverity>();
 
   /// Retrieve the source location of the given diagnostic.
   CXSourceLocation clang_getDiagnosticLocation(
     ffi.Pointer<ffi.Void> arg0,
   ) {
-    return (_clang_getDiagnosticLocation ??=
-        _lookup<ffi.NativeFunction<_c_clang_getDiagnosticLocation>>(
-                'clang_getDiagnosticLocation')
-            .asFunction<_dart_clang_getDiagnosticLocation>())(
+    return _clang_getDiagnosticLocation(
       arg0,
     );
   }
 
-  _dart_clang_getDiagnosticLocation? _clang_getDiagnosticLocation;
+  late final _clang_getDiagnosticLocation_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_getDiagnosticLocation>>(
+          'clang_getDiagnosticLocation');
+  late final _dart_clang_getDiagnosticLocation _clang_getDiagnosticLocation =
+      _clang_getDiagnosticLocation_ptr
+          .asFunction<_dart_clang_getDiagnosticLocation>();
 
   /// Retrieve the text of the given diagnostic.
   CXString clang_getDiagnosticSpelling(
     ffi.Pointer<ffi.Void> arg0,
   ) {
-    return (_clang_getDiagnosticSpelling ??=
-        _lookup<ffi.NativeFunction<_c_clang_getDiagnosticSpelling>>(
-                'clang_getDiagnosticSpelling')
-            .asFunction<_dart_clang_getDiagnosticSpelling>())(
+    return _clang_getDiagnosticSpelling(
       arg0,
     );
   }
 
-  _dart_clang_getDiagnosticSpelling? _clang_getDiagnosticSpelling;
+  late final _clang_getDiagnosticSpelling_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_getDiagnosticSpelling>>(
+          'clang_getDiagnosticSpelling');
+  late final _dart_clang_getDiagnosticSpelling _clang_getDiagnosticSpelling =
+      _clang_getDiagnosticSpelling_ptr
+          .asFunction<_dart_clang_getDiagnosticSpelling>();
 
   /// Retrieve the name of the command-line option that enabled this diagnostic.
   CXString clang_getDiagnosticOption(
     ffi.Pointer<ffi.Void> Diag,
     ffi.Pointer<CXString> Disable,
   ) {
-    return (_clang_getDiagnosticOption ??=
-        _lookup<ffi.NativeFunction<_c_clang_getDiagnosticOption>>(
-                'clang_getDiagnosticOption')
-            .asFunction<_dart_clang_getDiagnosticOption>())(
+    return _clang_getDiagnosticOption(
       Diag,
       Disable,
     );
   }
 
-  _dart_clang_getDiagnosticOption? _clang_getDiagnosticOption;
+  late final _clang_getDiagnosticOption_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_getDiagnosticOption>>(
+          'clang_getDiagnosticOption');
+  late final _dart_clang_getDiagnosticOption _clang_getDiagnosticOption =
+      _clang_getDiagnosticOption_ptr
+          .asFunction<_dart_clang_getDiagnosticOption>();
 
   /// Retrieve the category number for this diagnostic.
   int clang_getDiagnosticCategory(
     ffi.Pointer<ffi.Void> arg0,
   ) {
-    return (_clang_getDiagnosticCategory ??=
-        _lookup<ffi.NativeFunction<_c_clang_getDiagnosticCategory>>(
-                'clang_getDiagnosticCategory')
-            .asFunction<_dart_clang_getDiagnosticCategory>())(
+    return _clang_getDiagnosticCategory(
       arg0,
     );
   }
 
-  _dart_clang_getDiagnosticCategory? _clang_getDiagnosticCategory;
+  late final _clang_getDiagnosticCategory_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_getDiagnosticCategory>>(
+          'clang_getDiagnosticCategory');
+  late final _dart_clang_getDiagnosticCategory _clang_getDiagnosticCategory =
+      _clang_getDiagnosticCategory_ptr
+          .asFunction<_dart_clang_getDiagnosticCategory>();
 
   /// Retrieve the name of a particular diagnostic category. This is now
   /// deprecated. Use clang_getDiagnosticCategoryText() instead.
   CXString clang_getDiagnosticCategoryName(
     int Category,
   ) {
-    return (_clang_getDiagnosticCategoryName ??=
-        _lookup<ffi.NativeFunction<_c_clang_getDiagnosticCategoryName>>(
-                'clang_getDiagnosticCategoryName')
-            .asFunction<_dart_clang_getDiagnosticCategoryName>())(
+    return _clang_getDiagnosticCategoryName(
       Category,
     );
   }
 
-  _dart_clang_getDiagnosticCategoryName? _clang_getDiagnosticCategoryName;
+  late final _clang_getDiagnosticCategoryName_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_getDiagnosticCategoryName>>(
+          'clang_getDiagnosticCategoryName');
+  late final _dart_clang_getDiagnosticCategoryName
+      _clang_getDiagnosticCategoryName = _clang_getDiagnosticCategoryName_ptr
+          .asFunction<_dart_clang_getDiagnosticCategoryName>();
 
   /// Retrieve the diagnostic category text for a given diagnostic.
   CXString clang_getDiagnosticCategoryText(
     ffi.Pointer<ffi.Void> arg0,
   ) {
-    return (_clang_getDiagnosticCategoryText ??=
-        _lookup<ffi.NativeFunction<_c_clang_getDiagnosticCategoryText>>(
-                'clang_getDiagnosticCategoryText')
-            .asFunction<_dart_clang_getDiagnosticCategoryText>())(
+    return _clang_getDiagnosticCategoryText(
       arg0,
     );
   }
 
-  _dart_clang_getDiagnosticCategoryText? _clang_getDiagnosticCategoryText;
+  late final _clang_getDiagnosticCategoryText_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_getDiagnosticCategoryText>>(
+          'clang_getDiagnosticCategoryText');
+  late final _dart_clang_getDiagnosticCategoryText
+      _clang_getDiagnosticCategoryText = _clang_getDiagnosticCategoryText_ptr
+          .asFunction<_dart_clang_getDiagnosticCategoryText>();
 
   /// Determine the number of source ranges associated with the given
   /// diagnostic.
   int clang_getDiagnosticNumRanges(
     ffi.Pointer<ffi.Void> arg0,
   ) {
-    return (_clang_getDiagnosticNumRanges ??=
-        _lookup<ffi.NativeFunction<_c_clang_getDiagnosticNumRanges>>(
-                'clang_getDiagnosticNumRanges')
-            .asFunction<_dart_clang_getDiagnosticNumRanges>())(
+    return _clang_getDiagnosticNumRanges(
       arg0,
     );
   }
 
-  _dart_clang_getDiagnosticNumRanges? _clang_getDiagnosticNumRanges;
+  late final _clang_getDiagnosticNumRanges_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_getDiagnosticNumRanges>>(
+          'clang_getDiagnosticNumRanges');
+  late final _dart_clang_getDiagnosticNumRanges _clang_getDiagnosticNumRanges =
+      _clang_getDiagnosticNumRanges_ptr
+          .asFunction<_dart_clang_getDiagnosticNumRanges>();
 
   /// Retrieve a source range associated with the diagnostic.
   CXSourceRange clang_getDiagnosticRange(
     ffi.Pointer<ffi.Void> Diagnostic,
     int Range,
   ) {
-    return (_clang_getDiagnosticRange ??=
-        _lookup<ffi.NativeFunction<_c_clang_getDiagnosticRange>>(
-                'clang_getDiagnosticRange')
-            .asFunction<_dart_clang_getDiagnosticRange>())(
+    return _clang_getDiagnosticRange(
       Diagnostic,
       Range,
     );
   }
 
-  _dart_clang_getDiagnosticRange? _clang_getDiagnosticRange;
+  late final _clang_getDiagnosticRange_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_getDiagnosticRange>>(
+          'clang_getDiagnosticRange');
+  late final _dart_clang_getDiagnosticRange _clang_getDiagnosticRange =
+      _clang_getDiagnosticRange_ptr
+          .asFunction<_dart_clang_getDiagnosticRange>();
 
   /// Determine the number of fix-it hints associated with the given diagnostic.
   int clang_getDiagnosticNumFixIts(
     ffi.Pointer<ffi.Void> Diagnostic,
   ) {
-    return (_clang_getDiagnosticNumFixIts ??=
-        _lookup<ffi.NativeFunction<_c_clang_getDiagnosticNumFixIts>>(
-                'clang_getDiagnosticNumFixIts')
-            .asFunction<_dart_clang_getDiagnosticNumFixIts>())(
+    return _clang_getDiagnosticNumFixIts(
       Diagnostic,
     );
   }
 
-  _dart_clang_getDiagnosticNumFixIts? _clang_getDiagnosticNumFixIts;
+  late final _clang_getDiagnosticNumFixIts_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_getDiagnosticNumFixIts>>(
+          'clang_getDiagnosticNumFixIts');
+  late final _dart_clang_getDiagnosticNumFixIts _clang_getDiagnosticNumFixIts =
+      _clang_getDiagnosticNumFixIts_ptr
+          .asFunction<_dart_clang_getDiagnosticNumFixIts>();
 
   /// Retrieve the replacement information for a given fix-it.
   CXString clang_getDiagnosticFixIt(
@@ -1108,31 +1217,35 @@
     int FixIt,
     ffi.Pointer<CXSourceRange> ReplacementRange,
   ) {
-    return (_clang_getDiagnosticFixIt ??=
-        _lookup<ffi.NativeFunction<_c_clang_getDiagnosticFixIt>>(
-                'clang_getDiagnosticFixIt')
-            .asFunction<_dart_clang_getDiagnosticFixIt>())(
+    return _clang_getDiagnosticFixIt(
       Diagnostic,
       FixIt,
       ReplacementRange,
     );
   }
 
-  _dart_clang_getDiagnosticFixIt? _clang_getDiagnosticFixIt;
+  late final _clang_getDiagnosticFixIt_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_getDiagnosticFixIt>>(
+          'clang_getDiagnosticFixIt');
+  late final _dart_clang_getDiagnosticFixIt _clang_getDiagnosticFixIt =
+      _clang_getDiagnosticFixIt_ptr
+          .asFunction<_dart_clang_getDiagnosticFixIt>();
 
   /// Get the original translation unit source file name.
   CXString clang_getTranslationUnitSpelling(
     ffi.Pointer<CXTranslationUnitImpl> CTUnit,
   ) {
-    return (_clang_getTranslationUnitSpelling ??=
-        _lookup<ffi.NativeFunction<_c_clang_getTranslationUnitSpelling>>(
-                'clang_getTranslationUnitSpelling')
-            .asFunction<_dart_clang_getTranslationUnitSpelling>())(
+    return _clang_getTranslationUnitSpelling(
       CTUnit,
     );
   }
 
-  _dart_clang_getTranslationUnitSpelling? _clang_getTranslationUnitSpelling;
+  late final _clang_getTranslationUnitSpelling_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_getTranslationUnitSpelling>>(
+          'clang_getTranslationUnitSpelling');
+  late final _dart_clang_getTranslationUnitSpelling
+      _clang_getTranslationUnitSpelling = _clang_getTranslationUnitSpelling_ptr
+          .asFunction<_dart_clang_getTranslationUnitSpelling>();
 
   /// Return the CXTranslationUnit for a given source file and the provided
   /// command line arguments one would pass to the compiler.
@@ -1144,11 +1257,7 @@
     int num_unsaved_files,
     ffi.Pointer<CXUnsavedFile> unsaved_files,
   ) {
-    return (_clang_createTranslationUnitFromSourceFile ??= _lookup<
-                ffi.NativeFunction<
-                    _c_clang_createTranslationUnitFromSourceFile>>(
-            'clang_createTranslationUnitFromSourceFile')
-        .asFunction<_dart_clang_createTranslationUnitFromSourceFile>())(
+    return _clang_createTranslationUnitFromSourceFile(
       CIdx,
       source_filename,
       num_clang_command_line_args,
@@ -1158,8 +1267,13 @@
     );
   }
 
-  _dart_clang_createTranslationUnitFromSourceFile?
-      _clang_createTranslationUnitFromSourceFile;
+  late final _clang_createTranslationUnitFromSourceFile_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_createTranslationUnitFromSourceFile>>(
+          'clang_createTranslationUnitFromSourceFile');
+  late final _dart_clang_createTranslationUnitFromSourceFile
+      _clang_createTranslationUnitFromSourceFile =
+      _clang_createTranslationUnitFromSourceFile_ptr
+          .asFunction<_dart_clang_createTranslationUnitFromSourceFile>();
 
   /// Same as clang_createTranslationUnit2, but returns the CXTranslationUnit
   /// instead of an error code. In case of an error this routine returns a NULL
@@ -1168,16 +1282,18 @@
     ffi.Pointer<ffi.Void> CIdx,
     ffi.Pointer<ffi.Int8> ast_filename,
   ) {
-    return (_clang_createTranslationUnit ??=
-        _lookup<ffi.NativeFunction<_c_clang_createTranslationUnit>>(
-                'clang_createTranslationUnit')
-            .asFunction<_dart_clang_createTranslationUnit>())(
+    return _clang_createTranslationUnit(
       CIdx,
       ast_filename,
     );
   }
 
-  _dart_clang_createTranslationUnit? _clang_createTranslationUnit;
+  late final _clang_createTranslationUnit_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_createTranslationUnit>>(
+          'clang_createTranslationUnit');
+  late final _dart_clang_createTranslationUnit _clang_createTranslationUnit =
+      _clang_createTranslationUnit_ptr
+          .asFunction<_dart_clang_createTranslationUnit>();
 
   /// Create a translation unit from an AST file ( -emit-ast).
   int clang_createTranslationUnit2(
@@ -1185,30 +1301,33 @@
     ffi.Pointer<ffi.Int8> ast_filename,
     ffi.Pointer<ffi.Pointer<CXTranslationUnitImpl>> out_TU,
   ) {
-    return (_clang_createTranslationUnit2 ??=
-        _lookup<ffi.NativeFunction<_c_clang_createTranslationUnit2>>(
-                'clang_createTranslationUnit2')
-            .asFunction<_dart_clang_createTranslationUnit2>())(
+    return _clang_createTranslationUnit2(
       CIdx,
       ast_filename,
       out_TU,
     );
   }
 
-  _dart_clang_createTranslationUnit2? _clang_createTranslationUnit2;
+  late final _clang_createTranslationUnit2_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_createTranslationUnit2>>(
+          'clang_createTranslationUnit2');
+  late final _dart_clang_createTranslationUnit2 _clang_createTranslationUnit2 =
+      _clang_createTranslationUnit2_ptr
+          .asFunction<_dart_clang_createTranslationUnit2>();
 
   /// Returns the set of flags that is suitable for parsing a translation unit
   /// that is being edited.
   int clang_defaultEditingTranslationUnitOptions() {
-    return (_clang_defaultEditingTranslationUnitOptions ??= _lookup<
-                ffi.NativeFunction<
-                    _c_clang_defaultEditingTranslationUnitOptions>>(
-            'clang_defaultEditingTranslationUnitOptions')
-        .asFunction<_dart_clang_defaultEditingTranslationUnitOptions>())();
+    return _clang_defaultEditingTranslationUnitOptions();
   }
 
-  _dart_clang_defaultEditingTranslationUnitOptions?
-      _clang_defaultEditingTranslationUnitOptions;
+  late final _clang_defaultEditingTranslationUnitOptions_ptr = _lookup<
+          ffi.NativeFunction<_c_clang_defaultEditingTranslationUnitOptions>>(
+      'clang_defaultEditingTranslationUnitOptions');
+  late final _dart_clang_defaultEditingTranslationUnitOptions
+      _clang_defaultEditingTranslationUnitOptions =
+      _clang_defaultEditingTranslationUnitOptions_ptr
+          .asFunction<_dart_clang_defaultEditingTranslationUnitOptions>();
 
   /// Same as clang_parseTranslationUnit2, but returns the CXTranslationUnit
   /// instead of an error code. In case of an error this routine returns a NULL
@@ -1222,10 +1341,7 @@
     int num_unsaved_files,
     int options,
   ) {
-    return (_clang_parseTranslationUnit ??=
-        _lookup<ffi.NativeFunction<_c_clang_parseTranslationUnit>>(
-                'clang_parseTranslationUnit')
-            .asFunction<_dart_clang_parseTranslationUnit>())(
+    return _clang_parseTranslationUnit(
       CIdx,
       source_filename,
       command_line_args,
@@ -1236,7 +1352,12 @@
     );
   }
 
-  _dart_clang_parseTranslationUnit? _clang_parseTranslationUnit;
+  late final _clang_parseTranslationUnit_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_parseTranslationUnit>>(
+          'clang_parseTranslationUnit');
+  late final _dart_clang_parseTranslationUnit _clang_parseTranslationUnit =
+      _clang_parseTranslationUnit_ptr
+          .asFunction<_dart_clang_parseTranslationUnit>();
 
   /// Parse the given source file and the translation unit corresponding to that
   /// file.
@@ -1250,10 +1371,7 @@
     int options,
     ffi.Pointer<ffi.Pointer<CXTranslationUnitImpl>> out_TU,
   ) {
-    return (_clang_parseTranslationUnit2 ??=
-        _lookup<ffi.NativeFunction<_c_clang_parseTranslationUnit2>>(
-                'clang_parseTranslationUnit2')
-            .asFunction<_dart_clang_parseTranslationUnit2>())(
+    return _clang_parseTranslationUnit2(
       CIdx,
       source_filename,
       command_line_args,
@@ -1265,7 +1383,12 @@
     );
   }
 
-  _dart_clang_parseTranslationUnit2? _clang_parseTranslationUnit2;
+  late final _clang_parseTranslationUnit2_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_parseTranslationUnit2>>(
+          'clang_parseTranslationUnit2');
+  late final _dart_clang_parseTranslationUnit2 _clang_parseTranslationUnit2 =
+      _clang_parseTranslationUnit2_ptr
+          .asFunction<_dart_clang_parseTranslationUnit2>();
 
   /// Same as clang_parseTranslationUnit2 but requires a full command line for
   /// command_line_args including argv[0]. This is useful if the standard
@@ -1280,10 +1403,7 @@
     int options,
     ffi.Pointer<ffi.Pointer<CXTranslationUnitImpl>> out_TU,
   ) {
-    return (_clang_parseTranslationUnit2FullArgv ??=
-        _lookup<ffi.NativeFunction<_c_clang_parseTranslationUnit2FullArgv>>(
-                'clang_parseTranslationUnit2FullArgv')
-            .asFunction<_dart_clang_parseTranslationUnit2FullArgv>())(
+    return _clang_parseTranslationUnit2FullArgv(
       CIdx,
       source_filename,
       command_line_args,
@@ -1295,22 +1415,29 @@
     );
   }
 
-  _dart_clang_parseTranslationUnit2FullArgv?
-      _clang_parseTranslationUnit2FullArgv;
+  late final _clang_parseTranslationUnit2FullArgv_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_parseTranslationUnit2FullArgv>>(
+          'clang_parseTranslationUnit2FullArgv');
+  late final _dart_clang_parseTranslationUnit2FullArgv
+      _clang_parseTranslationUnit2FullArgv =
+      _clang_parseTranslationUnit2FullArgv_ptr
+          .asFunction<_dart_clang_parseTranslationUnit2FullArgv>();
 
   /// Returns the set of flags that is suitable for saving a translation unit.
   int clang_defaultSaveOptions(
     ffi.Pointer<CXTranslationUnitImpl> TU,
   ) {
-    return (_clang_defaultSaveOptions ??=
-        _lookup<ffi.NativeFunction<_c_clang_defaultSaveOptions>>(
-                'clang_defaultSaveOptions')
-            .asFunction<_dart_clang_defaultSaveOptions>())(
+    return _clang_defaultSaveOptions(
       TU,
     );
   }
 
-  _dart_clang_defaultSaveOptions? _clang_defaultSaveOptions;
+  late final _clang_defaultSaveOptions_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_defaultSaveOptions>>(
+          'clang_defaultSaveOptions');
+  late final _dart_clang_defaultSaveOptions _clang_defaultSaveOptions =
+      _clang_defaultSaveOptions_ptr
+          .asFunction<_dart_clang_defaultSaveOptions>();
 
   /// Saves a translation unit into a serialized representation of that
   /// translation unit on disk.
@@ -1319,60 +1446,68 @@
     ffi.Pointer<ffi.Int8> FileName,
     int options,
   ) {
-    return (_clang_saveTranslationUnit ??=
-        _lookup<ffi.NativeFunction<_c_clang_saveTranslationUnit>>(
-                'clang_saveTranslationUnit')
-            .asFunction<_dart_clang_saveTranslationUnit>())(
+    return _clang_saveTranslationUnit(
       TU,
       FileName,
       options,
     );
   }
 
-  _dart_clang_saveTranslationUnit? _clang_saveTranslationUnit;
+  late final _clang_saveTranslationUnit_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_saveTranslationUnit>>(
+          'clang_saveTranslationUnit');
+  late final _dart_clang_saveTranslationUnit _clang_saveTranslationUnit =
+      _clang_saveTranslationUnit_ptr
+          .asFunction<_dart_clang_saveTranslationUnit>();
 
   /// Suspend a translation unit in order to free memory associated with it.
   int clang_suspendTranslationUnit(
     ffi.Pointer<CXTranslationUnitImpl> arg0,
   ) {
-    return (_clang_suspendTranslationUnit ??=
-        _lookup<ffi.NativeFunction<_c_clang_suspendTranslationUnit>>(
-                'clang_suspendTranslationUnit')
-            .asFunction<_dart_clang_suspendTranslationUnit>())(
+    return _clang_suspendTranslationUnit(
       arg0,
     );
   }
 
-  _dart_clang_suspendTranslationUnit? _clang_suspendTranslationUnit;
+  late final _clang_suspendTranslationUnit_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_suspendTranslationUnit>>(
+          'clang_suspendTranslationUnit');
+  late final _dart_clang_suspendTranslationUnit _clang_suspendTranslationUnit =
+      _clang_suspendTranslationUnit_ptr
+          .asFunction<_dart_clang_suspendTranslationUnit>();
 
   /// Destroy the specified CXTranslationUnit object.
   void clang_disposeTranslationUnit(
     ffi.Pointer<CXTranslationUnitImpl> arg0,
   ) {
-    return (_clang_disposeTranslationUnit ??=
-        _lookup<ffi.NativeFunction<_c_clang_disposeTranslationUnit>>(
-                'clang_disposeTranslationUnit')
-            .asFunction<_dart_clang_disposeTranslationUnit>())(
+    return _clang_disposeTranslationUnit(
       arg0,
     );
   }
 
-  _dart_clang_disposeTranslationUnit? _clang_disposeTranslationUnit;
+  late final _clang_disposeTranslationUnit_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_disposeTranslationUnit>>(
+          'clang_disposeTranslationUnit');
+  late final _dart_clang_disposeTranslationUnit _clang_disposeTranslationUnit =
+      _clang_disposeTranslationUnit_ptr
+          .asFunction<_dart_clang_disposeTranslationUnit>();
 
   /// Returns the set of flags that is suitable for reparsing a translation
   /// unit.
   int clang_defaultReparseOptions(
     ffi.Pointer<CXTranslationUnitImpl> TU,
   ) {
-    return (_clang_defaultReparseOptions ??=
-        _lookup<ffi.NativeFunction<_c_clang_defaultReparseOptions>>(
-                'clang_defaultReparseOptions')
-            .asFunction<_dart_clang_defaultReparseOptions>())(
+    return _clang_defaultReparseOptions(
       TU,
     );
   }
 
-  _dart_clang_defaultReparseOptions? _clang_defaultReparseOptions;
+  late final _clang_defaultReparseOptions_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_defaultReparseOptions>>(
+          'clang_defaultReparseOptions');
+  late final _dart_clang_defaultReparseOptions _clang_defaultReparseOptions =
+      _clang_defaultReparseOptions_ptr
+          .asFunction<_dart_clang_defaultReparseOptions>();
 
   /// Reparse the source files that produced this translation unit.
   int clang_reparseTranslationUnit(
@@ -1381,10 +1516,7 @@
     ffi.Pointer<CXUnsavedFile> unsaved_files,
     int options,
   ) {
-    return (_clang_reparseTranslationUnit ??=
-        _lookup<ffi.NativeFunction<_c_clang_reparseTranslationUnit>>(
-                'clang_reparseTranslationUnit')
-            .asFunction<_dart_clang_reparseTranslationUnit>())(
+    return _clang_reparseTranslationUnit(
       TU,
       num_unsaved_files,
       unsaved_files,
@@ -1392,379 +1524,423 @@
     );
   }
 
-  _dart_clang_reparseTranslationUnit? _clang_reparseTranslationUnit;
+  late final _clang_reparseTranslationUnit_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_reparseTranslationUnit>>(
+          'clang_reparseTranslationUnit');
+  late final _dart_clang_reparseTranslationUnit _clang_reparseTranslationUnit =
+      _clang_reparseTranslationUnit_ptr
+          .asFunction<_dart_clang_reparseTranslationUnit>();
 
   /// Returns the human-readable null-terminated C string that represents the
   /// name of the memory category. This string should never be freed.
   ffi.Pointer<ffi.Int8> clang_getTUResourceUsageName(
     int kind,
   ) {
-    return (_clang_getTUResourceUsageName ??=
-        _lookup<ffi.NativeFunction<_c_clang_getTUResourceUsageName>>(
-                'clang_getTUResourceUsageName')
-            .asFunction<_dart_clang_getTUResourceUsageName>())(
+    return _clang_getTUResourceUsageName(
       kind,
     );
   }
 
-  _dart_clang_getTUResourceUsageName? _clang_getTUResourceUsageName;
+  late final _clang_getTUResourceUsageName_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_getTUResourceUsageName>>(
+          'clang_getTUResourceUsageName');
+  late final _dart_clang_getTUResourceUsageName _clang_getTUResourceUsageName =
+      _clang_getTUResourceUsageName_ptr
+          .asFunction<_dart_clang_getTUResourceUsageName>();
 
   /// Return the memory usage of a translation unit. This object should be
   /// released with clang_disposeCXTUResourceUsage().
   CXTUResourceUsage clang_getCXTUResourceUsage(
     ffi.Pointer<CXTranslationUnitImpl> TU,
   ) {
-    return (_clang_getCXTUResourceUsage ??=
-        _lookup<ffi.NativeFunction<_c_clang_getCXTUResourceUsage>>(
-                'clang_getCXTUResourceUsage')
-            .asFunction<_dart_clang_getCXTUResourceUsage>())(
+    return _clang_getCXTUResourceUsage(
       TU,
     );
   }
 
-  _dart_clang_getCXTUResourceUsage? _clang_getCXTUResourceUsage;
+  late final _clang_getCXTUResourceUsage_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_getCXTUResourceUsage>>(
+          'clang_getCXTUResourceUsage');
+  late final _dart_clang_getCXTUResourceUsage _clang_getCXTUResourceUsage =
+      _clang_getCXTUResourceUsage_ptr
+          .asFunction<_dart_clang_getCXTUResourceUsage>();
 
   void clang_disposeCXTUResourceUsage(
     CXTUResourceUsage usage,
   ) {
-    return (_clang_disposeCXTUResourceUsage ??=
-        _lookup<ffi.NativeFunction<_c_clang_disposeCXTUResourceUsage>>(
-                'clang_disposeCXTUResourceUsage')
-            .asFunction<_dart_clang_disposeCXTUResourceUsage>())(
+    return _clang_disposeCXTUResourceUsage(
       usage,
     );
   }
 
-  _dart_clang_disposeCXTUResourceUsage? _clang_disposeCXTUResourceUsage;
+  late final _clang_disposeCXTUResourceUsage_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_disposeCXTUResourceUsage>>(
+          'clang_disposeCXTUResourceUsage');
+  late final _dart_clang_disposeCXTUResourceUsage
+      _clang_disposeCXTUResourceUsage = _clang_disposeCXTUResourceUsage_ptr
+          .asFunction<_dart_clang_disposeCXTUResourceUsage>();
 
   /// Get target information for this translation unit.
   ffi.Pointer<CXTargetInfoImpl> clang_getTranslationUnitTargetInfo(
     ffi.Pointer<CXTranslationUnitImpl> CTUnit,
   ) {
-    return (_clang_getTranslationUnitTargetInfo ??=
-        _lookup<ffi.NativeFunction<_c_clang_getTranslationUnitTargetInfo>>(
-                'clang_getTranslationUnitTargetInfo')
-            .asFunction<_dart_clang_getTranslationUnitTargetInfo>())(
+    return _clang_getTranslationUnitTargetInfo(
       CTUnit,
     );
   }
 
-  _dart_clang_getTranslationUnitTargetInfo? _clang_getTranslationUnitTargetInfo;
+  late final _clang_getTranslationUnitTargetInfo_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_getTranslationUnitTargetInfo>>(
+          'clang_getTranslationUnitTargetInfo');
+  late final _dart_clang_getTranslationUnitTargetInfo
+      _clang_getTranslationUnitTargetInfo =
+      _clang_getTranslationUnitTargetInfo_ptr
+          .asFunction<_dart_clang_getTranslationUnitTargetInfo>();
 
   /// Destroy the CXTargetInfo object.
   void clang_TargetInfo_dispose(
     ffi.Pointer<CXTargetInfoImpl> Info,
   ) {
-    return (_clang_TargetInfo_dispose ??=
-        _lookup<ffi.NativeFunction<_c_clang_TargetInfo_dispose>>(
-                'clang_TargetInfo_dispose')
-            .asFunction<_dart_clang_TargetInfo_dispose>())(
+    return _clang_TargetInfo_dispose(
       Info,
     );
   }
 
-  _dart_clang_TargetInfo_dispose? _clang_TargetInfo_dispose;
+  late final _clang_TargetInfo_dispose_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_TargetInfo_dispose>>(
+          'clang_TargetInfo_dispose');
+  late final _dart_clang_TargetInfo_dispose _clang_TargetInfo_dispose =
+      _clang_TargetInfo_dispose_ptr
+          .asFunction<_dart_clang_TargetInfo_dispose>();
 
   /// Get the normalized target triple as a string.
   CXString clang_TargetInfo_getTriple(
     ffi.Pointer<CXTargetInfoImpl> Info,
   ) {
-    return (_clang_TargetInfo_getTriple ??=
-        _lookup<ffi.NativeFunction<_c_clang_TargetInfo_getTriple>>(
-                'clang_TargetInfo_getTriple')
-            .asFunction<_dart_clang_TargetInfo_getTriple>())(
+    return _clang_TargetInfo_getTriple(
       Info,
     );
   }
 
-  _dart_clang_TargetInfo_getTriple? _clang_TargetInfo_getTriple;
+  late final _clang_TargetInfo_getTriple_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_TargetInfo_getTriple>>(
+          'clang_TargetInfo_getTriple');
+  late final _dart_clang_TargetInfo_getTriple _clang_TargetInfo_getTriple =
+      _clang_TargetInfo_getTriple_ptr
+          .asFunction<_dart_clang_TargetInfo_getTriple>();
 
   /// Get the pointer width of the target in bits.
   int clang_TargetInfo_getPointerWidth(
     ffi.Pointer<CXTargetInfoImpl> Info,
   ) {
-    return (_clang_TargetInfo_getPointerWidth ??=
-        _lookup<ffi.NativeFunction<_c_clang_TargetInfo_getPointerWidth>>(
-                'clang_TargetInfo_getPointerWidth')
-            .asFunction<_dart_clang_TargetInfo_getPointerWidth>())(
+    return _clang_TargetInfo_getPointerWidth(
       Info,
     );
   }
 
-  _dart_clang_TargetInfo_getPointerWidth? _clang_TargetInfo_getPointerWidth;
+  late final _clang_TargetInfo_getPointerWidth_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_TargetInfo_getPointerWidth>>(
+          'clang_TargetInfo_getPointerWidth');
+  late final _dart_clang_TargetInfo_getPointerWidth
+      _clang_TargetInfo_getPointerWidth = _clang_TargetInfo_getPointerWidth_ptr
+          .asFunction<_dart_clang_TargetInfo_getPointerWidth>();
 
   /// Retrieve the NULL cursor, which represents no entity.
   CXCursor clang_getNullCursor() {
-    return (_clang_getNullCursor ??=
-        _lookup<ffi.NativeFunction<_c_clang_getNullCursor>>(
-                'clang_getNullCursor')
-            .asFunction<_dart_clang_getNullCursor>())();
+    return _clang_getNullCursor();
   }
 
-  _dart_clang_getNullCursor? _clang_getNullCursor;
+  late final _clang_getNullCursor_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_getNullCursor>>(
+          'clang_getNullCursor');
+  late final _dart_clang_getNullCursor _clang_getNullCursor =
+      _clang_getNullCursor_ptr.asFunction<_dart_clang_getNullCursor>();
 
   /// Retrieve the cursor that represents the given translation unit.
   CXCursor clang_getTranslationUnitCursor(
     ffi.Pointer<CXTranslationUnitImpl> arg0,
   ) {
-    return (_clang_getTranslationUnitCursor ??=
-        _lookup<ffi.NativeFunction<_c_clang_getTranslationUnitCursor>>(
-                'clang_getTranslationUnitCursor')
-            .asFunction<_dart_clang_getTranslationUnitCursor>())(
+    return _clang_getTranslationUnitCursor(
       arg0,
     );
   }
 
-  _dart_clang_getTranslationUnitCursor? _clang_getTranslationUnitCursor;
+  late final _clang_getTranslationUnitCursor_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_getTranslationUnitCursor>>(
+          'clang_getTranslationUnitCursor');
+  late final _dart_clang_getTranslationUnitCursor
+      _clang_getTranslationUnitCursor = _clang_getTranslationUnitCursor_ptr
+          .asFunction<_dart_clang_getTranslationUnitCursor>();
 
   /// Determine whether two cursors are equivalent.
   int clang_equalCursors(
     CXCursor arg0,
     CXCursor arg1,
   ) {
-    return (_clang_equalCursors ??=
-        _lookup<ffi.NativeFunction<_c_clang_equalCursors>>('clang_equalCursors')
-            .asFunction<_dart_clang_equalCursors>())(
+    return _clang_equalCursors(
       arg0,
       arg1,
     );
   }
 
-  _dart_clang_equalCursors? _clang_equalCursors;
+  late final _clang_equalCursors_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_equalCursors>>('clang_equalCursors');
+  late final _dart_clang_equalCursors _clang_equalCursors =
+      _clang_equalCursors_ptr.asFunction<_dart_clang_equalCursors>();
 
   /// Returns non-zero if cursor is null.
   int clang_Cursor_isNull(
     CXCursor cursor,
   ) {
-    return (_clang_Cursor_isNull ??=
-        _lookup<ffi.NativeFunction<_c_clang_Cursor_isNull>>(
-                'clang_Cursor_isNull')
-            .asFunction<_dart_clang_Cursor_isNull>())(
+    return _clang_Cursor_isNull(
       cursor,
     );
   }
 
-  _dart_clang_Cursor_isNull? _clang_Cursor_isNull;
+  late final _clang_Cursor_isNull_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_Cursor_isNull>>(
+          'clang_Cursor_isNull');
+  late final _dart_clang_Cursor_isNull _clang_Cursor_isNull =
+      _clang_Cursor_isNull_ptr.asFunction<_dart_clang_Cursor_isNull>();
 
   /// Compute a hash value for the given cursor.
   int clang_hashCursor(
     CXCursor arg0,
   ) {
-    return (_clang_hashCursor ??=
-        _lookup<ffi.NativeFunction<_c_clang_hashCursor>>('clang_hashCursor')
-            .asFunction<_dart_clang_hashCursor>())(
+    return _clang_hashCursor(
       arg0,
     );
   }
 
-  _dart_clang_hashCursor? _clang_hashCursor;
+  late final _clang_hashCursor_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_hashCursor>>('clang_hashCursor');
+  late final _dart_clang_hashCursor _clang_hashCursor =
+      _clang_hashCursor_ptr.asFunction<_dart_clang_hashCursor>();
 
   /// Retrieve the kind of the given cursor.
   int clang_getCursorKind(
     CXCursor arg0,
   ) {
-    return (_clang_getCursorKind ??=
-        _lookup<ffi.NativeFunction<_c_clang_getCursorKind>>(
-                'clang_getCursorKind')
-            .asFunction<_dart_clang_getCursorKind>())(
+    return _clang_getCursorKind(
       arg0,
     );
   }
 
-  _dart_clang_getCursorKind? _clang_getCursorKind;
+  late final _clang_getCursorKind_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_getCursorKind>>(
+          'clang_getCursorKind');
+  late final _dart_clang_getCursorKind _clang_getCursorKind =
+      _clang_getCursorKind_ptr.asFunction<_dart_clang_getCursorKind>();
 
   /// Determine whether the given cursor kind represents a declaration.
   int clang_isDeclaration(
     int arg0,
   ) {
-    return (_clang_isDeclaration ??=
-        _lookup<ffi.NativeFunction<_c_clang_isDeclaration>>(
-                'clang_isDeclaration')
-            .asFunction<_dart_clang_isDeclaration>())(
+    return _clang_isDeclaration(
       arg0,
     );
   }
 
-  _dart_clang_isDeclaration? _clang_isDeclaration;
+  late final _clang_isDeclaration_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_isDeclaration>>(
+          'clang_isDeclaration');
+  late final _dart_clang_isDeclaration _clang_isDeclaration =
+      _clang_isDeclaration_ptr.asFunction<_dart_clang_isDeclaration>();
 
   /// Determine whether the given declaration is invalid.
   int clang_isInvalidDeclaration(
     CXCursor arg0,
   ) {
-    return (_clang_isInvalidDeclaration ??=
-        _lookup<ffi.NativeFunction<_c_clang_isInvalidDeclaration>>(
-                'clang_isInvalidDeclaration')
-            .asFunction<_dart_clang_isInvalidDeclaration>())(
+    return _clang_isInvalidDeclaration(
       arg0,
     );
   }
 
-  _dart_clang_isInvalidDeclaration? _clang_isInvalidDeclaration;
+  late final _clang_isInvalidDeclaration_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_isInvalidDeclaration>>(
+          'clang_isInvalidDeclaration');
+  late final _dart_clang_isInvalidDeclaration _clang_isInvalidDeclaration =
+      _clang_isInvalidDeclaration_ptr
+          .asFunction<_dart_clang_isInvalidDeclaration>();
 
   /// Determine whether the given cursor kind represents a simple reference.
   int clang_isReference(
     int arg0,
   ) {
-    return (_clang_isReference ??=
-        _lookup<ffi.NativeFunction<_c_clang_isReference>>('clang_isReference')
-            .asFunction<_dart_clang_isReference>())(
+    return _clang_isReference(
       arg0,
     );
   }
 
-  _dart_clang_isReference? _clang_isReference;
+  late final _clang_isReference_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_isReference>>('clang_isReference');
+  late final _dart_clang_isReference _clang_isReference =
+      _clang_isReference_ptr.asFunction<_dart_clang_isReference>();
 
   /// Determine whether the given cursor kind represents an expression.
   int clang_isExpression(
     int arg0,
   ) {
-    return (_clang_isExpression ??=
-        _lookup<ffi.NativeFunction<_c_clang_isExpression>>('clang_isExpression')
-            .asFunction<_dart_clang_isExpression>())(
+    return _clang_isExpression(
       arg0,
     );
   }
 
-  _dart_clang_isExpression? _clang_isExpression;
+  late final _clang_isExpression_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_isExpression>>('clang_isExpression');
+  late final _dart_clang_isExpression _clang_isExpression =
+      _clang_isExpression_ptr.asFunction<_dart_clang_isExpression>();
 
   /// Determine whether the given cursor kind represents a statement.
   int clang_isStatement(
     int arg0,
   ) {
-    return (_clang_isStatement ??=
-        _lookup<ffi.NativeFunction<_c_clang_isStatement>>('clang_isStatement')
-            .asFunction<_dart_clang_isStatement>())(
+    return _clang_isStatement(
       arg0,
     );
   }
 
-  _dart_clang_isStatement? _clang_isStatement;
+  late final _clang_isStatement_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_isStatement>>('clang_isStatement');
+  late final _dart_clang_isStatement _clang_isStatement =
+      _clang_isStatement_ptr.asFunction<_dart_clang_isStatement>();
 
   /// Determine whether the given cursor kind represents an attribute.
   int clang_isAttribute(
     int arg0,
   ) {
-    return (_clang_isAttribute ??=
-        _lookup<ffi.NativeFunction<_c_clang_isAttribute>>('clang_isAttribute')
-            .asFunction<_dart_clang_isAttribute>())(
+    return _clang_isAttribute(
       arg0,
     );
   }
 
-  _dart_clang_isAttribute? _clang_isAttribute;
+  late final _clang_isAttribute_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_isAttribute>>('clang_isAttribute');
+  late final _dart_clang_isAttribute _clang_isAttribute =
+      _clang_isAttribute_ptr.asFunction<_dart_clang_isAttribute>();
 
   /// Determine whether the given cursor has any attributes.
   int clang_Cursor_hasAttrs(
     CXCursor C,
   ) {
-    return (_clang_Cursor_hasAttrs ??=
-        _lookup<ffi.NativeFunction<_c_clang_Cursor_hasAttrs>>(
-                'clang_Cursor_hasAttrs')
-            .asFunction<_dart_clang_Cursor_hasAttrs>())(
+    return _clang_Cursor_hasAttrs(
       C,
     );
   }
 
-  _dart_clang_Cursor_hasAttrs? _clang_Cursor_hasAttrs;
+  late final _clang_Cursor_hasAttrs_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_Cursor_hasAttrs>>(
+          'clang_Cursor_hasAttrs');
+  late final _dart_clang_Cursor_hasAttrs _clang_Cursor_hasAttrs =
+      _clang_Cursor_hasAttrs_ptr.asFunction<_dart_clang_Cursor_hasAttrs>();
 
   /// Determine whether the given cursor kind represents an invalid cursor.
   int clang_isInvalid(
     int arg0,
   ) {
-    return (_clang_isInvalid ??=
-        _lookup<ffi.NativeFunction<_c_clang_isInvalid>>('clang_isInvalid')
-            .asFunction<_dart_clang_isInvalid>())(
+    return _clang_isInvalid(
       arg0,
     );
   }
 
-  _dart_clang_isInvalid? _clang_isInvalid;
+  late final _clang_isInvalid_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_isInvalid>>('clang_isInvalid');
+  late final _dart_clang_isInvalid _clang_isInvalid =
+      _clang_isInvalid_ptr.asFunction<_dart_clang_isInvalid>();
 
   /// Determine whether the given cursor kind represents a translation unit.
   int clang_isTranslationUnit(
     int arg0,
   ) {
-    return (_clang_isTranslationUnit ??=
-        _lookup<ffi.NativeFunction<_c_clang_isTranslationUnit>>(
-                'clang_isTranslationUnit')
-            .asFunction<_dart_clang_isTranslationUnit>())(
+    return _clang_isTranslationUnit(
       arg0,
     );
   }
 
-  _dart_clang_isTranslationUnit? _clang_isTranslationUnit;
+  late final _clang_isTranslationUnit_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_isTranslationUnit>>(
+          'clang_isTranslationUnit');
+  late final _dart_clang_isTranslationUnit _clang_isTranslationUnit =
+      _clang_isTranslationUnit_ptr.asFunction<_dart_clang_isTranslationUnit>();
 
   /// * Determine whether the given cursor represents a preprocessing element,
   /// such as a preprocessor directive or macro instantiation.
   int clang_isPreprocessing(
     int arg0,
   ) {
-    return (_clang_isPreprocessing ??=
-        _lookup<ffi.NativeFunction<_c_clang_isPreprocessing>>(
-                'clang_isPreprocessing')
-            .asFunction<_dart_clang_isPreprocessing>())(
+    return _clang_isPreprocessing(
       arg0,
     );
   }
 
-  _dart_clang_isPreprocessing? _clang_isPreprocessing;
+  late final _clang_isPreprocessing_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_isPreprocessing>>(
+          'clang_isPreprocessing');
+  late final _dart_clang_isPreprocessing _clang_isPreprocessing =
+      _clang_isPreprocessing_ptr.asFunction<_dart_clang_isPreprocessing>();
 
   /// * Determine whether the given cursor represents a currently unexposed
   /// piece of the AST (e.g., CXCursor_UnexposedStmt).
   int clang_isUnexposed(
     int arg0,
   ) {
-    return (_clang_isUnexposed ??=
-        _lookup<ffi.NativeFunction<_c_clang_isUnexposed>>('clang_isUnexposed')
-            .asFunction<_dart_clang_isUnexposed>())(
+    return _clang_isUnexposed(
       arg0,
     );
   }
 
-  _dart_clang_isUnexposed? _clang_isUnexposed;
+  late final _clang_isUnexposed_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_isUnexposed>>('clang_isUnexposed');
+  late final _dart_clang_isUnexposed _clang_isUnexposed =
+      _clang_isUnexposed_ptr.asFunction<_dart_clang_isUnexposed>();
 
   /// Determine the linkage of the entity referred to by a given cursor.
   int clang_getCursorLinkage(
     CXCursor cursor,
   ) {
-    return (_clang_getCursorLinkage ??=
-        _lookup<ffi.NativeFunction<_c_clang_getCursorLinkage>>(
-                'clang_getCursorLinkage')
-            .asFunction<_dart_clang_getCursorLinkage>())(
+    return _clang_getCursorLinkage(
       cursor,
     );
   }
 
-  _dart_clang_getCursorLinkage? _clang_getCursorLinkage;
+  late final _clang_getCursorLinkage_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_getCursorLinkage>>(
+          'clang_getCursorLinkage');
+  late final _dart_clang_getCursorLinkage _clang_getCursorLinkage =
+      _clang_getCursorLinkage_ptr.asFunction<_dart_clang_getCursorLinkage>();
 
   /// Describe the visibility of the entity referred to by a cursor.
   int clang_getCursorVisibility(
     CXCursor cursor,
   ) {
-    return (_clang_getCursorVisibility ??=
-        _lookup<ffi.NativeFunction<_c_clang_getCursorVisibility>>(
-                'clang_getCursorVisibility')
-            .asFunction<_dart_clang_getCursorVisibility>())(
+    return _clang_getCursorVisibility(
       cursor,
     );
   }
 
-  _dart_clang_getCursorVisibility? _clang_getCursorVisibility;
+  late final _clang_getCursorVisibility_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_getCursorVisibility>>(
+          'clang_getCursorVisibility');
+  late final _dart_clang_getCursorVisibility _clang_getCursorVisibility =
+      _clang_getCursorVisibility_ptr
+          .asFunction<_dart_clang_getCursorVisibility>();
 
   /// Determine the availability of the entity that this cursor refers to,
   /// taking the current target platform into account.
   int clang_getCursorAvailability(
     CXCursor cursor,
   ) {
-    return (_clang_getCursorAvailability ??=
-        _lookup<ffi.NativeFunction<_c_clang_getCursorAvailability>>(
-                'clang_getCursorAvailability')
-            .asFunction<_dart_clang_getCursorAvailability>())(
+    return _clang_getCursorAvailability(
       cursor,
     );
   }
 
-  _dart_clang_getCursorAvailability? _clang_getCursorAvailability;
+  late final _clang_getCursorAvailability_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_getCursorAvailability>>(
+          'clang_getCursorAvailability');
+  late final _dart_clang_getCursorAvailability _clang_getCursorAvailability =
+      _clang_getCursorAvailability_ptr
+          .asFunction<_dart_clang_getCursorAvailability>();
 
   /// Determine the availability of the entity that this cursor refers to on any
   /// platforms for which availability information is known.
@@ -1777,10 +1953,7 @@
     ffi.Pointer<CXPlatformAvailability> availability,
     int availability_size,
   ) {
-    return (_clang_getCursorPlatformAvailability ??=
-        _lookup<ffi.NativeFunction<_c_clang_getCursorPlatformAvailability>>(
-                'clang_getCursorPlatformAvailability')
-            .asFunction<_dart_clang_getCursorPlatformAvailability>())(
+    return _clang_getCursorPlatformAvailability(
       cursor,
       always_deprecated,
       deprecated_message,
@@ -1791,150 +1964,172 @@
     );
   }
 
-  _dart_clang_getCursorPlatformAvailability?
-      _clang_getCursorPlatformAvailability;
+  late final _clang_getCursorPlatformAvailability_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_getCursorPlatformAvailability>>(
+          'clang_getCursorPlatformAvailability');
+  late final _dart_clang_getCursorPlatformAvailability
+      _clang_getCursorPlatformAvailability =
+      _clang_getCursorPlatformAvailability_ptr
+          .asFunction<_dart_clang_getCursorPlatformAvailability>();
 
   /// Free the memory associated with a CXPlatformAvailability structure.
   void clang_disposeCXPlatformAvailability(
     ffi.Pointer<CXPlatformAvailability> availability,
   ) {
-    return (_clang_disposeCXPlatformAvailability ??=
-        _lookup<ffi.NativeFunction<_c_clang_disposeCXPlatformAvailability>>(
-                'clang_disposeCXPlatformAvailability')
-            .asFunction<_dart_clang_disposeCXPlatformAvailability>())(
+    return _clang_disposeCXPlatformAvailability(
       availability,
     );
   }
 
-  _dart_clang_disposeCXPlatformAvailability?
-      _clang_disposeCXPlatformAvailability;
+  late final _clang_disposeCXPlatformAvailability_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_disposeCXPlatformAvailability>>(
+          'clang_disposeCXPlatformAvailability');
+  late final _dart_clang_disposeCXPlatformAvailability
+      _clang_disposeCXPlatformAvailability =
+      _clang_disposeCXPlatformAvailability_ptr
+          .asFunction<_dart_clang_disposeCXPlatformAvailability>();
 
   /// Determine the "language" of the entity referred to by a given cursor.
   int clang_getCursorLanguage(
     CXCursor cursor,
   ) {
-    return (_clang_getCursorLanguage ??=
-        _lookup<ffi.NativeFunction<_c_clang_getCursorLanguage>>(
-                'clang_getCursorLanguage')
-            .asFunction<_dart_clang_getCursorLanguage>())(
+    return _clang_getCursorLanguage(
       cursor,
     );
   }
 
-  _dart_clang_getCursorLanguage? _clang_getCursorLanguage;
+  late final _clang_getCursorLanguage_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_getCursorLanguage>>(
+          'clang_getCursorLanguage');
+  late final _dart_clang_getCursorLanguage _clang_getCursorLanguage =
+      _clang_getCursorLanguage_ptr.asFunction<_dart_clang_getCursorLanguage>();
 
   /// Determine the "thread-local storage (TLS) kind" of the declaration
   /// referred to by a cursor.
   int clang_getCursorTLSKind(
     CXCursor cursor,
   ) {
-    return (_clang_getCursorTLSKind ??=
-        _lookup<ffi.NativeFunction<_c_clang_getCursorTLSKind>>(
-                'clang_getCursorTLSKind')
-            .asFunction<_dart_clang_getCursorTLSKind>())(
+    return _clang_getCursorTLSKind(
       cursor,
     );
   }
 
-  _dart_clang_getCursorTLSKind? _clang_getCursorTLSKind;
+  late final _clang_getCursorTLSKind_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_getCursorTLSKind>>(
+          'clang_getCursorTLSKind');
+  late final _dart_clang_getCursorTLSKind _clang_getCursorTLSKind =
+      _clang_getCursorTLSKind_ptr.asFunction<_dart_clang_getCursorTLSKind>();
 
   /// Returns the translation unit that a cursor originated from.
   ffi.Pointer<CXTranslationUnitImpl> clang_Cursor_getTranslationUnit(
     CXCursor arg0,
   ) {
-    return (_clang_Cursor_getTranslationUnit ??=
-        _lookup<ffi.NativeFunction<_c_clang_Cursor_getTranslationUnit>>(
-                'clang_Cursor_getTranslationUnit')
-            .asFunction<_dart_clang_Cursor_getTranslationUnit>())(
+    return _clang_Cursor_getTranslationUnit(
       arg0,
     );
   }
 
-  _dart_clang_Cursor_getTranslationUnit? _clang_Cursor_getTranslationUnit;
+  late final _clang_Cursor_getTranslationUnit_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_Cursor_getTranslationUnit>>(
+          'clang_Cursor_getTranslationUnit');
+  late final _dart_clang_Cursor_getTranslationUnit
+      _clang_Cursor_getTranslationUnit = _clang_Cursor_getTranslationUnit_ptr
+          .asFunction<_dart_clang_Cursor_getTranslationUnit>();
 
   /// Creates an empty CXCursorSet.
   ffi.Pointer<CXCursorSetImpl> clang_createCXCursorSet() {
-    return (_clang_createCXCursorSet ??=
-        _lookup<ffi.NativeFunction<_c_clang_createCXCursorSet>>(
-                'clang_createCXCursorSet')
-            .asFunction<_dart_clang_createCXCursorSet>())();
+    return _clang_createCXCursorSet();
   }
 
-  _dart_clang_createCXCursorSet? _clang_createCXCursorSet;
+  late final _clang_createCXCursorSet_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_createCXCursorSet>>(
+          'clang_createCXCursorSet');
+  late final _dart_clang_createCXCursorSet _clang_createCXCursorSet =
+      _clang_createCXCursorSet_ptr.asFunction<_dart_clang_createCXCursorSet>();
 
   /// Disposes a CXCursorSet and releases its associated memory.
   void clang_disposeCXCursorSet(
     ffi.Pointer<CXCursorSetImpl> cset,
   ) {
-    return (_clang_disposeCXCursorSet ??=
-        _lookup<ffi.NativeFunction<_c_clang_disposeCXCursorSet>>(
-                'clang_disposeCXCursorSet')
-            .asFunction<_dart_clang_disposeCXCursorSet>())(
+    return _clang_disposeCXCursorSet(
       cset,
     );
   }
 
-  _dart_clang_disposeCXCursorSet? _clang_disposeCXCursorSet;
+  late final _clang_disposeCXCursorSet_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_disposeCXCursorSet>>(
+          'clang_disposeCXCursorSet');
+  late final _dart_clang_disposeCXCursorSet _clang_disposeCXCursorSet =
+      _clang_disposeCXCursorSet_ptr
+          .asFunction<_dart_clang_disposeCXCursorSet>();
 
   /// Queries a CXCursorSet to see if it contains a specific CXCursor.
   int clang_CXCursorSet_contains(
     ffi.Pointer<CXCursorSetImpl> cset,
     CXCursor cursor,
   ) {
-    return (_clang_CXCursorSet_contains ??=
-        _lookup<ffi.NativeFunction<_c_clang_CXCursorSet_contains>>(
-                'clang_CXCursorSet_contains')
-            .asFunction<_dart_clang_CXCursorSet_contains>())(
+    return _clang_CXCursorSet_contains(
       cset,
       cursor,
     );
   }
 
-  _dart_clang_CXCursorSet_contains? _clang_CXCursorSet_contains;
+  late final _clang_CXCursorSet_contains_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_CXCursorSet_contains>>(
+          'clang_CXCursorSet_contains');
+  late final _dart_clang_CXCursorSet_contains _clang_CXCursorSet_contains =
+      _clang_CXCursorSet_contains_ptr
+          .asFunction<_dart_clang_CXCursorSet_contains>();
 
   /// Inserts a CXCursor into a CXCursorSet.
   int clang_CXCursorSet_insert(
     ffi.Pointer<CXCursorSetImpl> cset,
     CXCursor cursor,
   ) {
-    return (_clang_CXCursorSet_insert ??=
-        _lookup<ffi.NativeFunction<_c_clang_CXCursorSet_insert>>(
-                'clang_CXCursorSet_insert')
-            .asFunction<_dart_clang_CXCursorSet_insert>())(
+    return _clang_CXCursorSet_insert(
       cset,
       cursor,
     );
   }
 
-  _dart_clang_CXCursorSet_insert? _clang_CXCursorSet_insert;
+  late final _clang_CXCursorSet_insert_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_CXCursorSet_insert>>(
+          'clang_CXCursorSet_insert');
+  late final _dart_clang_CXCursorSet_insert _clang_CXCursorSet_insert =
+      _clang_CXCursorSet_insert_ptr
+          .asFunction<_dart_clang_CXCursorSet_insert>();
 
   /// Determine the semantic parent of the given cursor.
   CXCursor clang_getCursorSemanticParent(
     CXCursor cursor,
   ) {
-    return (_clang_getCursorSemanticParent ??=
-        _lookup<ffi.NativeFunction<_c_clang_getCursorSemanticParent>>(
-                'clang_getCursorSemanticParent')
-            .asFunction<_dart_clang_getCursorSemanticParent>())(
+    return _clang_getCursorSemanticParent(
       cursor,
     );
   }
 
-  _dart_clang_getCursorSemanticParent? _clang_getCursorSemanticParent;
+  late final _clang_getCursorSemanticParent_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_getCursorSemanticParent>>(
+          'clang_getCursorSemanticParent');
+  late final _dart_clang_getCursorSemanticParent
+      _clang_getCursorSemanticParent = _clang_getCursorSemanticParent_ptr
+          .asFunction<_dart_clang_getCursorSemanticParent>();
 
   /// Determine the lexical parent of the given cursor.
   CXCursor clang_getCursorLexicalParent(
     CXCursor cursor,
   ) {
-    return (_clang_getCursorLexicalParent ??=
-        _lookup<ffi.NativeFunction<_c_clang_getCursorLexicalParent>>(
-                'clang_getCursorLexicalParent')
-            .asFunction<_dart_clang_getCursorLexicalParent>())(
+    return _clang_getCursorLexicalParent(
       cursor,
     );
   }
 
-  _dart_clang_getCursorLexicalParent? _clang_getCursorLexicalParent;
+  late final _clang_getCursorLexicalParent_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_getCursorLexicalParent>>(
+          'clang_getCursorLexicalParent');
+  late final _dart_clang_getCursorLexicalParent _clang_getCursorLexicalParent =
+      _clang_getCursorLexicalParent_ptr
+          .asFunction<_dart_clang_getCursorLexicalParent>();
 
   /// Determine the set of methods that are overridden by the given method.
   void clang_getOverriddenCursors(
@@ -1942,47 +2137,52 @@
     ffi.Pointer<ffi.Pointer<CXCursor>> overridden,
     ffi.Pointer<ffi.Uint32> num_overridden,
   ) {
-    return (_clang_getOverriddenCursors ??=
-        _lookup<ffi.NativeFunction<_c_clang_getOverriddenCursors>>(
-                'clang_getOverriddenCursors')
-            .asFunction<_dart_clang_getOverriddenCursors>())(
+    return _clang_getOverriddenCursors(
       cursor,
       overridden,
       num_overridden,
     );
   }
 
-  _dart_clang_getOverriddenCursors? _clang_getOverriddenCursors;
+  late final _clang_getOverriddenCursors_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_getOverriddenCursors>>(
+          'clang_getOverriddenCursors');
+  late final _dart_clang_getOverriddenCursors _clang_getOverriddenCursors =
+      _clang_getOverriddenCursors_ptr
+          .asFunction<_dart_clang_getOverriddenCursors>();
 
   /// Free the set of overridden cursors returned by
   /// clang_getOverriddenCursors().
   void clang_disposeOverriddenCursors(
     ffi.Pointer<CXCursor> overridden,
   ) {
-    return (_clang_disposeOverriddenCursors ??=
-        _lookup<ffi.NativeFunction<_c_clang_disposeOverriddenCursors>>(
-                'clang_disposeOverriddenCursors')
-            .asFunction<_dart_clang_disposeOverriddenCursors>())(
+    return _clang_disposeOverriddenCursors(
       overridden,
     );
   }
 
-  _dart_clang_disposeOverriddenCursors? _clang_disposeOverriddenCursors;
+  late final _clang_disposeOverriddenCursors_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_disposeOverriddenCursors>>(
+          'clang_disposeOverriddenCursors');
+  late final _dart_clang_disposeOverriddenCursors
+      _clang_disposeOverriddenCursors = _clang_disposeOverriddenCursors_ptr
+          .asFunction<_dart_clang_disposeOverriddenCursors>();
 
   /// Retrieve the file that is included by the given inclusion directive
   /// cursor.
   ffi.Pointer<ffi.Void> clang_getIncludedFile(
     CXCursor cursor,
   ) {
-    return (_clang_getIncludedFile ??=
-        _lookup<ffi.NativeFunction<_c_clang_getIncludedFile>>(
-                'clang_getIncludedFile')
-            .asFunction<_dart_clang_getIncludedFile>())(
+    return _clang_getIncludedFile(
       cursor,
     );
   }
 
-  _dart_clang_getIncludedFile? _clang_getIncludedFile;
+  late final _clang_getIncludedFile_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_getIncludedFile>>(
+          'clang_getIncludedFile');
+  late final _dart_clang_getIncludedFile _clang_getIncludedFile =
+      _clang_getIncludedFile_ptr.asFunction<_dart_clang_getIncludedFile>();
 
   /// Map a source location to the cursor that describes the entity at that
   /// location in the source code.
@@ -1990,211 +2190,235 @@
     ffi.Pointer<CXTranslationUnitImpl> arg0,
     CXSourceLocation arg1,
   ) {
-    return (_clang_getCursor ??=
-        _lookup<ffi.NativeFunction<_c_clang_getCursor>>('clang_getCursor')
-            .asFunction<_dart_clang_getCursor>())(
+    return _clang_getCursor(
       arg0,
       arg1,
     );
   }
 
-  _dart_clang_getCursor? _clang_getCursor;
+  late final _clang_getCursor_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_getCursor>>('clang_getCursor');
+  late final _dart_clang_getCursor _clang_getCursor =
+      _clang_getCursor_ptr.asFunction<_dart_clang_getCursor>();
 
   /// Retrieve the physical location of the source constructor referenced by the
   /// given cursor.
   CXSourceLocation clang_getCursorLocation(
     CXCursor arg0,
   ) {
-    return (_clang_getCursorLocation ??=
-        _lookup<ffi.NativeFunction<_c_clang_getCursorLocation>>(
-                'clang_getCursorLocation')
-            .asFunction<_dart_clang_getCursorLocation>())(
+    return _clang_getCursorLocation(
       arg0,
     );
   }
 
-  _dart_clang_getCursorLocation? _clang_getCursorLocation;
+  late final _clang_getCursorLocation_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_getCursorLocation>>(
+          'clang_getCursorLocation');
+  late final _dart_clang_getCursorLocation _clang_getCursorLocation =
+      _clang_getCursorLocation_ptr.asFunction<_dart_clang_getCursorLocation>();
 
   /// Retrieve the physical extent of the source construct referenced by the
   /// given cursor.
   CXSourceRange clang_getCursorExtent(
     CXCursor arg0,
   ) {
-    return (_clang_getCursorExtent ??=
-        _lookup<ffi.NativeFunction<_c_clang_getCursorExtent>>(
-                'clang_getCursorExtent')
-            .asFunction<_dart_clang_getCursorExtent>())(
+    return _clang_getCursorExtent(
       arg0,
     );
   }
 
-  _dart_clang_getCursorExtent? _clang_getCursorExtent;
+  late final _clang_getCursorExtent_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_getCursorExtent>>(
+          'clang_getCursorExtent');
+  late final _dart_clang_getCursorExtent _clang_getCursorExtent =
+      _clang_getCursorExtent_ptr.asFunction<_dart_clang_getCursorExtent>();
 
   /// Retrieve the type of a CXCursor (if any).
   CXType clang_getCursorType(
     CXCursor C,
   ) {
-    return (_clang_getCursorType ??=
-        _lookup<ffi.NativeFunction<_c_clang_getCursorType>>(
-                'clang_getCursorType')
-            .asFunction<_dart_clang_getCursorType>())(
+    return _clang_getCursorType(
       C,
     );
   }
 
-  _dart_clang_getCursorType? _clang_getCursorType;
+  late final _clang_getCursorType_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_getCursorType>>(
+          'clang_getCursorType');
+  late final _dart_clang_getCursorType _clang_getCursorType =
+      _clang_getCursorType_ptr.asFunction<_dart_clang_getCursorType>();
 
   /// Pretty-print the underlying type using the rules of the language of the
   /// translation unit from which it came.
   CXString clang_getTypeSpelling(
     CXType CT,
   ) {
-    return (_clang_getTypeSpelling ??=
-        _lookup<ffi.NativeFunction<_c_clang_getTypeSpelling>>(
-                'clang_getTypeSpelling')
-            .asFunction<_dart_clang_getTypeSpelling>())(
+    return _clang_getTypeSpelling(
       CT,
     );
   }
 
-  _dart_clang_getTypeSpelling? _clang_getTypeSpelling;
+  late final _clang_getTypeSpelling_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_getTypeSpelling>>(
+          'clang_getTypeSpelling');
+  late final _dart_clang_getTypeSpelling _clang_getTypeSpelling =
+      _clang_getTypeSpelling_ptr.asFunction<_dart_clang_getTypeSpelling>();
 
   /// Retrieve the underlying type of a typedef declaration.
   CXType clang_getTypedefDeclUnderlyingType(
     CXCursor C,
   ) {
-    return (_clang_getTypedefDeclUnderlyingType ??=
-        _lookup<ffi.NativeFunction<_c_clang_getTypedefDeclUnderlyingType>>(
-                'clang_getTypedefDeclUnderlyingType')
-            .asFunction<_dart_clang_getTypedefDeclUnderlyingType>())(
+    return _clang_getTypedefDeclUnderlyingType(
       C,
     );
   }
 
-  _dart_clang_getTypedefDeclUnderlyingType? _clang_getTypedefDeclUnderlyingType;
+  late final _clang_getTypedefDeclUnderlyingType_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_getTypedefDeclUnderlyingType>>(
+          'clang_getTypedefDeclUnderlyingType');
+  late final _dart_clang_getTypedefDeclUnderlyingType
+      _clang_getTypedefDeclUnderlyingType =
+      _clang_getTypedefDeclUnderlyingType_ptr
+          .asFunction<_dart_clang_getTypedefDeclUnderlyingType>();
 
   /// Retrieve the integer type of an enum declaration.
   CXType clang_getEnumDeclIntegerType(
     CXCursor C,
   ) {
-    return (_clang_getEnumDeclIntegerType ??=
-        _lookup<ffi.NativeFunction<_c_clang_getEnumDeclIntegerType>>(
-                'clang_getEnumDeclIntegerType')
-            .asFunction<_dart_clang_getEnumDeclIntegerType>())(
+    return _clang_getEnumDeclIntegerType(
       C,
     );
   }
 
-  _dart_clang_getEnumDeclIntegerType? _clang_getEnumDeclIntegerType;
+  late final _clang_getEnumDeclIntegerType_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_getEnumDeclIntegerType>>(
+          'clang_getEnumDeclIntegerType');
+  late final _dart_clang_getEnumDeclIntegerType _clang_getEnumDeclIntegerType =
+      _clang_getEnumDeclIntegerType_ptr
+          .asFunction<_dart_clang_getEnumDeclIntegerType>();
 
   /// Retrieve the integer value of an enum constant declaration as a signed
   /// long long.
   int clang_getEnumConstantDeclValue(
     CXCursor C,
   ) {
-    return (_clang_getEnumConstantDeclValue ??=
-        _lookup<ffi.NativeFunction<_c_clang_getEnumConstantDeclValue>>(
-                'clang_getEnumConstantDeclValue')
-            .asFunction<_dart_clang_getEnumConstantDeclValue>())(
+    return _clang_getEnumConstantDeclValue(
       C,
     );
   }
 
-  _dart_clang_getEnumConstantDeclValue? _clang_getEnumConstantDeclValue;
+  late final _clang_getEnumConstantDeclValue_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_getEnumConstantDeclValue>>(
+          'clang_getEnumConstantDeclValue');
+  late final _dart_clang_getEnumConstantDeclValue
+      _clang_getEnumConstantDeclValue = _clang_getEnumConstantDeclValue_ptr
+          .asFunction<_dart_clang_getEnumConstantDeclValue>();
 
   /// Retrieve the integer value of an enum constant declaration as an unsigned
   /// long long.
   int clang_getEnumConstantDeclUnsignedValue(
     CXCursor C,
   ) {
-    return (_clang_getEnumConstantDeclUnsignedValue ??=
-        _lookup<ffi.NativeFunction<_c_clang_getEnumConstantDeclUnsignedValue>>(
-                'clang_getEnumConstantDeclUnsignedValue')
-            .asFunction<_dart_clang_getEnumConstantDeclUnsignedValue>())(
+    return _clang_getEnumConstantDeclUnsignedValue(
       C,
     );
   }
 
-  _dart_clang_getEnumConstantDeclUnsignedValue?
-      _clang_getEnumConstantDeclUnsignedValue;
+  late final _clang_getEnumConstantDeclUnsignedValue_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_getEnumConstantDeclUnsignedValue>>(
+          'clang_getEnumConstantDeclUnsignedValue');
+  late final _dart_clang_getEnumConstantDeclUnsignedValue
+      _clang_getEnumConstantDeclUnsignedValue =
+      _clang_getEnumConstantDeclUnsignedValue_ptr
+          .asFunction<_dart_clang_getEnumConstantDeclUnsignedValue>();
 
   /// Retrieve the bit width of a bit field declaration as an integer.
   int clang_getFieldDeclBitWidth(
     CXCursor C,
   ) {
-    return (_clang_getFieldDeclBitWidth ??=
-        _lookup<ffi.NativeFunction<_c_clang_getFieldDeclBitWidth>>(
-                'clang_getFieldDeclBitWidth')
-            .asFunction<_dart_clang_getFieldDeclBitWidth>())(
+    return _clang_getFieldDeclBitWidth(
       C,
     );
   }
 
-  _dart_clang_getFieldDeclBitWidth? _clang_getFieldDeclBitWidth;
+  late final _clang_getFieldDeclBitWidth_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_getFieldDeclBitWidth>>(
+          'clang_getFieldDeclBitWidth');
+  late final _dart_clang_getFieldDeclBitWidth _clang_getFieldDeclBitWidth =
+      _clang_getFieldDeclBitWidth_ptr
+          .asFunction<_dart_clang_getFieldDeclBitWidth>();
 
   /// Retrieve the number of non-variadic arguments associated with a given
   /// cursor.
   int clang_Cursor_getNumArguments(
     CXCursor C,
   ) {
-    return (_clang_Cursor_getNumArguments ??=
-        _lookup<ffi.NativeFunction<_c_clang_Cursor_getNumArguments>>(
-                'clang_Cursor_getNumArguments')
-            .asFunction<_dart_clang_Cursor_getNumArguments>())(
+    return _clang_Cursor_getNumArguments(
       C,
     );
   }
 
-  _dart_clang_Cursor_getNumArguments? _clang_Cursor_getNumArguments;
+  late final _clang_Cursor_getNumArguments_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_Cursor_getNumArguments>>(
+          'clang_Cursor_getNumArguments');
+  late final _dart_clang_Cursor_getNumArguments _clang_Cursor_getNumArguments =
+      _clang_Cursor_getNumArguments_ptr
+          .asFunction<_dart_clang_Cursor_getNumArguments>();
 
   /// Retrieve the argument cursor of a function or method.
   CXCursor clang_Cursor_getArgument(
     CXCursor C,
     int i,
   ) {
-    return (_clang_Cursor_getArgument ??=
-        _lookup<ffi.NativeFunction<_c_clang_Cursor_getArgument>>(
-                'clang_Cursor_getArgument')
-            .asFunction<_dart_clang_Cursor_getArgument>())(
+    return _clang_Cursor_getArgument(
       C,
       i,
     );
   }
 
-  _dart_clang_Cursor_getArgument? _clang_Cursor_getArgument;
+  late final _clang_Cursor_getArgument_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_Cursor_getArgument>>(
+          'clang_Cursor_getArgument');
+  late final _dart_clang_Cursor_getArgument _clang_Cursor_getArgument =
+      _clang_Cursor_getArgument_ptr
+          .asFunction<_dart_clang_Cursor_getArgument>();
 
   /// Returns the number of template args of a function decl representing a
   /// template specialization.
   int clang_Cursor_getNumTemplateArguments(
     CXCursor C,
   ) {
-    return (_clang_Cursor_getNumTemplateArguments ??=
-        _lookup<ffi.NativeFunction<_c_clang_Cursor_getNumTemplateArguments>>(
-                'clang_Cursor_getNumTemplateArguments')
-            .asFunction<_dart_clang_Cursor_getNumTemplateArguments>())(
+    return _clang_Cursor_getNumTemplateArguments(
       C,
     );
   }
 
-  _dart_clang_Cursor_getNumTemplateArguments?
-      _clang_Cursor_getNumTemplateArguments;
+  late final _clang_Cursor_getNumTemplateArguments_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_Cursor_getNumTemplateArguments>>(
+          'clang_Cursor_getNumTemplateArguments');
+  late final _dart_clang_Cursor_getNumTemplateArguments
+      _clang_Cursor_getNumTemplateArguments =
+      _clang_Cursor_getNumTemplateArguments_ptr
+          .asFunction<_dart_clang_Cursor_getNumTemplateArguments>();
 
   /// Retrieve the kind of the I'th template argument of the CXCursor C.
   int clang_Cursor_getTemplateArgumentKind(
     CXCursor C,
     int I,
   ) {
-    return (_clang_Cursor_getTemplateArgumentKind ??=
-        _lookup<ffi.NativeFunction<_c_clang_Cursor_getTemplateArgumentKind>>(
-                'clang_Cursor_getTemplateArgumentKind')
-            .asFunction<_dart_clang_Cursor_getTemplateArgumentKind>())(
+    return _clang_Cursor_getTemplateArgumentKind(
       C,
       I,
     );
   }
 
-  _dart_clang_Cursor_getTemplateArgumentKind?
-      _clang_Cursor_getTemplateArgumentKind;
+  late final _clang_Cursor_getTemplateArgumentKind_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_Cursor_getTemplateArgumentKind>>(
+          'clang_Cursor_getTemplateArgumentKind');
+  late final _dart_clang_Cursor_getTemplateArgumentKind
+      _clang_Cursor_getTemplateArgumentKind =
+      _clang_Cursor_getTemplateArgumentKind_ptr
+          .asFunction<_dart_clang_Cursor_getTemplateArgumentKind>();
 
   /// Retrieve a CXType representing the type of a TemplateArgument of a
   /// function decl representing a template specialization.
@@ -2202,17 +2426,19 @@
     CXCursor C,
     int I,
   ) {
-    return (_clang_Cursor_getTemplateArgumentType ??=
-        _lookup<ffi.NativeFunction<_c_clang_Cursor_getTemplateArgumentType>>(
-                'clang_Cursor_getTemplateArgumentType')
-            .asFunction<_dart_clang_Cursor_getTemplateArgumentType>())(
+    return _clang_Cursor_getTemplateArgumentType(
       C,
       I,
     );
   }
 
-  _dart_clang_Cursor_getTemplateArgumentType?
-      _clang_Cursor_getTemplateArgumentType;
+  late final _clang_Cursor_getTemplateArgumentType_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_Cursor_getTemplateArgumentType>>(
+          'clang_Cursor_getTemplateArgumentType');
+  late final _dart_clang_Cursor_getTemplateArgumentType
+      _clang_Cursor_getTemplateArgumentType =
+      _clang_Cursor_getTemplateArgumentType_ptr
+          .asFunction<_dart_clang_Cursor_getTemplateArgumentType>();
 
   /// Retrieve the value of an Integral TemplateArgument (of a function decl
   /// representing a template specialization) as a signed long long.
@@ -2220,17 +2446,19 @@
     CXCursor C,
     int I,
   ) {
-    return (_clang_Cursor_getTemplateArgumentValue ??=
-        _lookup<ffi.NativeFunction<_c_clang_Cursor_getTemplateArgumentValue>>(
-                'clang_Cursor_getTemplateArgumentValue')
-            .asFunction<_dart_clang_Cursor_getTemplateArgumentValue>())(
+    return _clang_Cursor_getTemplateArgumentValue(
       C,
       I,
     );
   }
 
-  _dart_clang_Cursor_getTemplateArgumentValue?
-      _clang_Cursor_getTemplateArgumentValue;
+  late final _clang_Cursor_getTemplateArgumentValue_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_Cursor_getTemplateArgumentValue>>(
+          'clang_Cursor_getTemplateArgumentValue');
+  late final _dart_clang_Cursor_getTemplateArgumentValue
+      _clang_Cursor_getTemplateArgumentValue =
+      _clang_Cursor_getTemplateArgumentValue_ptr
+          .asFunction<_dart_clang_Cursor_getTemplateArgumentValue>();
 
   /// Retrieve the value of an Integral TemplateArgument (of a function decl
   /// representing a template specialization) as an unsigned long long.
@@ -2238,105 +2466,116 @@
     CXCursor C,
     int I,
   ) {
-    return (_clang_Cursor_getTemplateArgumentUnsignedValue ??= _lookup<
-                ffi.NativeFunction<
-                    _c_clang_Cursor_getTemplateArgumentUnsignedValue>>(
-            'clang_Cursor_getTemplateArgumentUnsignedValue')
-        .asFunction<_dart_clang_Cursor_getTemplateArgumentUnsignedValue>())(
+    return _clang_Cursor_getTemplateArgumentUnsignedValue(
       C,
       I,
     );
   }
 
-  _dart_clang_Cursor_getTemplateArgumentUnsignedValue?
-      _clang_Cursor_getTemplateArgumentUnsignedValue;
+  late final _clang_Cursor_getTemplateArgumentUnsignedValue_ptr = _lookup<
+          ffi.NativeFunction<_c_clang_Cursor_getTemplateArgumentUnsignedValue>>(
+      'clang_Cursor_getTemplateArgumentUnsignedValue');
+  late final _dart_clang_Cursor_getTemplateArgumentUnsignedValue
+      _clang_Cursor_getTemplateArgumentUnsignedValue =
+      _clang_Cursor_getTemplateArgumentUnsignedValue_ptr
+          .asFunction<_dart_clang_Cursor_getTemplateArgumentUnsignedValue>();
 
   /// Determine whether two CXTypes represent the same type.
   int clang_equalTypes(
     CXType A,
     CXType B,
   ) {
-    return (_clang_equalTypes ??=
-        _lookup<ffi.NativeFunction<_c_clang_equalTypes>>('clang_equalTypes')
-            .asFunction<_dart_clang_equalTypes>())(
+    return _clang_equalTypes(
       A,
       B,
     );
   }
 
-  _dart_clang_equalTypes? _clang_equalTypes;
+  late final _clang_equalTypes_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_equalTypes>>('clang_equalTypes');
+  late final _dart_clang_equalTypes _clang_equalTypes =
+      _clang_equalTypes_ptr.asFunction<_dart_clang_equalTypes>();
 
   /// Return the canonical type for a CXType.
   CXType clang_getCanonicalType(
     CXType T,
   ) {
-    return (_clang_getCanonicalType ??=
-        _lookup<ffi.NativeFunction<_c_clang_getCanonicalType>>(
-                'clang_getCanonicalType')
-            .asFunction<_dart_clang_getCanonicalType>())(
+    return _clang_getCanonicalType(
       T,
     );
   }
 
-  _dart_clang_getCanonicalType? _clang_getCanonicalType;
+  late final _clang_getCanonicalType_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_getCanonicalType>>(
+          'clang_getCanonicalType');
+  late final _dart_clang_getCanonicalType _clang_getCanonicalType =
+      _clang_getCanonicalType_ptr.asFunction<_dart_clang_getCanonicalType>();
 
   /// Determine whether a CXType has the "const" qualifier set, without looking
   /// through typedefs that may have added "const" at a different level.
   int clang_isConstQualifiedType(
     CXType T,
   ) {
-    return (_clang_isConstQualifiedType ??=
-        _lookup<ffi.NativeFunction<_c_clang_isConstQualifiedType>>(
-                'clang_isConstQualifiedType')
-            .asFunction<_dart_clang_isConstQualifiedType>())(
+    return _clang_isConstQualifiedType(
       T,
     );
   }
 
-  _dart_clang_isConstQualifiedType? _clang_isConstQualifiedType;
+  late final _clang_isConstQualifiedType_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_isConstQualifiedType>>(
+          'clang_isConstQualifiedType');
+  late final _dart_clang_isConstQualifiedType _clang_isConstQualifiedType =
+      _clang_isConstQualifiedType_ptr
+          .asFunction<_dart_clang_isConstQualifiedType>();
 
   /// Determine whether a CXCursor that is a macro, is function like.
   int clang_Cursor_isMacroFunctionLike(
     CXCursor C,
   ) {
-    return (_clang_Cursor_isMacroFunctionLike ??=
-        _lookup<ffi.NativeFunction<_c_clang_Cursor_isMacroFunctionLike>>(
-                'clang_Cursor_isMacroFunctionLike')
-            .asFunction<_dart_clang_Cursor_isMacroFunctionLike>())(
+    return _clang_Cursor_isMacroFunctionLike(
       C,
     );
   }
 
-  _dart_clang_Cursor_isMacroFunctionLike? _clang_Cursor_isMacroFunctionLike;
+  late final _clang_Cursor_isMacroFunctionLike_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_Cursor_isMacroFunctionLike>>(
+          'clang_Cursor_isMacroFunctionLike');
+  late final _dart_clang_Cursor_isMacroFunctionLike
+      _clang_Cursor_isMacroFunctionLike = _clang_Cursor_isMacroFunctionLike_ptr
+          .asFunction<_dart_clang_Cursor_isMacroFunctionLike>();
 
   /// Determine whether a CXCursor that is a macro, is a builtin one.
   int clang_Cursor_isMacroBuiltin(
     CXCursor C,
   ) {
-    return (_clang_Cursor_isMacroBuiltin ??=
-        _lookup<ffi.NativeFunction<_c_clang_Cursor_isMacroBuiltin>>(
-                'clang_Cursor_isMacroBuiltin')
-            .asFunction<_dart_clang_Cursor_isMacroBuiltin>())(
+    return _clang_Cursor_isMacroBuiltin(
       C,
     );
   }
 
-  _dart_clang_Cursor_isMacroBuiltin? _clang_Cursor_isMacroBuiltin;
+  late final _clang_Cursor_isMacroBuiltin_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_Cursor_isMacroBuiltin>>(
+          'clang_Cursor_isMacroBuiltin');
+  late final _dart_clang_Cursor_isMacroBuiltin _clang_Cursor_isMacroBuiltin =
+      _clang_Cursor_isMacroBuiltin_ptr
+          .asFunction<_dart_clang_Cursor_isMacroBuiltin>();
 
   /// Determine whether a CXCursor that is a function declaration, is an inline
   /// declaration.
   int clang_Cursor_isFunctionInlined(
     CXCursor C,
   ) {
-    return (_clang_Cursor_isFunctionInlined ??=
-        _lookup<ffi.NativeFunction<_c_clang_Cursor_isFunctionInlined>>(
-                'clang_Cursor_isFunctionInlined')
-            .asFunction<_dart_clang_Cursor_isFunctionInlined>())(
+    return _clang_Cursor_isFunctionInlined(
       C,
     );
   }
 
-  _dart_clang_Cursor_isFunctionInlined? _clang_Cursor_isFunctionInlined;
+  late final _clang_Cursor_isFunctionInlined_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_Cursor_isFunctionInlined>>(
+          'clang_Cursor_isFunctionInlined');
+  late final _dart_clang_Cursor_isFunctionInlined
+      _clang_Cursor_isFunctionInlined = _clang_Cursor_isFunctionInlined_ptr
+          .asFunction<_dart_clang_Cursor_isFunctionInlined>();
 
   /// Determine whether a CXType has the "volatile" qualifier set, without
   /// looking through typedefs that may have added "volatile" at a different
@@ -2344,15 +2583,17 @@
   int clang_isVolatileQualifiedType(
     CXType T,
   ) {
-    return (_clang_isVolatileQualifiedType ??=
-        _lookup<ffi.NativeFunction<_c_clang_isVolatileQualifiedType>>(
-                'clang_isVolatileQualifiedType')
-            .asFunction<_dart_clang_isVolatileQualifiedType>())(
+    return _clang_isVolatileQualifiedType(
       T,
     );
   }
 
-  _dart_clang_isVolatileQualifiedType? _clang_isVolatileQualifiedType;
+  late final _clang_isVolatileQualifiedType_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_isVolatileQualifiedType>>(
+          'clang_isVolatileQualifiedType');
+  late final _dart_clang_isVolatileQualifiedType
+      _clang_isVolatileQualifiedType = _clang_isVolatileQualifiedType_ptr
+          .asFunction<_dart_clang_isVolatileQualifiedType>();
 
   /// Determine whether a CXType has the "restrict" qualifier set, without
   /// looking through typedefs that may have added "restrict" at a different
@@ -2360,459 +2601,510 @@
   int clang_isRestrictQualifiedType(
     CXType T,
   ) {
-    return (_clang_isRestrictQualifiedType ??=
-        _lookup<ffi.NativeFunction<_c_clang_isRestrictQualifiedType>>(
-                'clang_isRestrictQualifiedType')
-            .asFunction<_dart_clang_isRestrictQualifiedType>())(
+    return _clang_isRestrictQualifiedType(
       T,
     );
   }
 
-  _dart_clang_isRestrictQualifiedType? _clang_isRestrictQualifiedType;
+  late final _clang_isRestrictQualifiedType_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_isRestrictQualifiedType>>(
+          'clang_isRestrictQualifiedType');
+  late final _dart_clang_isRestrictQualifiedType
+      _clang_isRestrictQualifiedType = _clang_isRestrictQualifiedType_ptr
+          .asFunction<_dart_clang_isRestrictQualifiedType>();
 
   /// Returns the address space of the given type.
   int clang_getAddressSpace(
     CXType T,
   ) {
-    return (_clang_getAddressSpace ??=
-        _lookup<ffi.NativeFunction<_c_clang_getAddressSpace>>(
-                'clang_getAddressSpace')
-            .asFunction<_dart_clang_getAddressSpace>())(
+    return _clang_getAddressSpace(
       T,
     );
   }
 
-  _dart_clang_getAddressSpace? _clang_getAddressSpace;
+  late final _clang_getAddressSpace_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_getAddressSpace>>(
+          'clang_getAddressSpace');
+  late final _dart_clang_getAddressSpace _clang_getAddressSpace =
+      _clang_getAddressSpace_ptr.asFunction<_dart_clang_getAddressSpace>();
 
   /// Returns the typedef name of the given type.
   CXString clang_getTypedefName(
     CXType CT,
   ) {
-    return (_clang_getTypedefName ??=
-        _lookup<ffi.NativeFunction<_c_clang_getTypedefName>>(
-                'clang_getTypedefName')
-            .asFunction<_dart_clang_getTypedefName>())(
+    return _clang_getTypedefName(
       CT,
     );
   }
 
-  _dart_clang_getTypedefName? _clang_getTypedefName;
+  late final _clang_getTypedefName_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_getTypedefName>>(
+          'clang_getTypedefName');
+  late final _dart_clang_getTypedefName _clang_getTypedefName =
+      _clang_getTypedefName_ptr.asFunction<_dart_clang_getTypedefName>();
 
   /// For pointer types, returns the type of the pointee.
   CXType clang_getPointeeType(
     CXType T,
   ) {
-    return (_clang_getPointeeType ??=
-        _lookup<ffi.NativeFunction<_c_clang_getPointeeType>>(
-                'clang_getPointeeType')
-            .asFunction<_dart_clang_getPointeeType>())(
+    return _clang_getPointeeType(
       T,
     );
   }
 
-  _dart_clang_getPointeeType? _clang_getPointeeType;
+  late final _clang_getPointeeType_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_getPointeeType>>(
+          'clang_getPointeeType');
+  late final _dart_clang_getPointeeType _clang_getPointeeType =
+      _clang_getPointeeType_ptr.asFunction<_dart_clang_getPointeeType>();
 
   /// Return the cursor for the declaration of the given type.
   CXCursor clang_getTypeDeclaration(
     CXType T,
   ) {
-    return (_clang_getTypeDeclaration ??=
-        _lookup<ffi.NativeFunction<_c_clang_getTypeDeclaration>>(
-                'clang_getTypeDeclaration')
-            .asFunction<_dart_clang_getTypeDeclaration>())(
+    return _clang_getTypeDeclaration(
       T,
     );
   }
 
-  _dart_clang_getTypeDeclaration? _clang_getTypeDeclaration;
+  late final _clang_getTypeDeclaration_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_getTypeDeclaration>>(
+          'clang_getTypeDeclaration');
+  late final _dart_clang_getTypeDeclaration _clang_getTypeDeclaration =
+      _clang_getTypeDeclaration_ptr
+          .asFunction<_dart_clang_getTypeDeclaration>();
 
   /// Returns the Objective-C type encoding for the specified declaration.
   CXString clang_getDeclObjCTypeEncoding(
     CXCursor C,
   ) {
-    return (_clang_getDeclObjCTypeEncoding ??=
-        _lookup<ffi.NativeFunction<_c_clang_getDeclObjCTypeEncoding>>(
-                'clang_getDeclObjCTypeEncoding')
-            .asFunction<_dart_clang_getDeclObjCTypeEncoding>())(
+    return _clang_getDeclObjCTypeEncoding(
       C,
     );
   }
 
-  _dart_clang_getDeclObjCTypeEncoding? _clang_getDeclObjCTypeEncoding;
+  late final _clang_getDeclObjCTypeEncoding_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_getDeclObjCTypeEncoding>>(
+          'clang_getDeclObjCTypeEncoding');
+  late final _dart_clang_getDeclObjCTypeEncoding
+      _clang_getDeclObjCTypeEncoding = _clang_getDeclObjCTypeEncoding_ptr
+          .asFunction<_dart_clang_getDeclObjCTypeEncoding>();
 
   /// Returns the Objective-C type encoding for the specified CXType.
   CXString clang_Type_getObjCEncoding(
     CXType type,
   ) {
-    return (_clang_Type_getObjCEncoding ??=
-        _lookup<ffi.NativeFunction<_c_clang_Type_getObjCEncoding>>(
-                'clang_Type_getObjCEncoding')
-            .asFunction<_dart_clang_Type_getObjCEncoding>())(
+    return _clang_Type_getObjCEncoding(
       type,
     );
   }
 
-  _dart_clang_Type_getObjCEncoding? _clang_Type_getObjCEncoding;
+  late final _clang_Type_getObjCEncoding_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_Type_getObjCEncoding>>(
+          'clang_Type_getObjCEncoding');
+  late final _dart_clang_Type_getObjCEncoding _clang_Type_getObjCEncoding =
+      _clang_Type_getObjCEncoding_ptr
+          .asFunction<_dart_clang_Type_getObjCEncoding>();
 
   /// Retrieve the spelling of a given CXTypeKind.
   CXString clang_getTypeKindSpelling(
     int K,
   ) {
-    return (_clang_getTypeKindSpelling ??=
-        _lookup<ffi.NativeFunction<_c_clang_getTypeKindSpelling>>(
-                'clang_getTypeKindSpelling')
-            .asFunction<_dart_clang_getTypeKindSpelling>())(
+    return _clang_getTypeKindSpelling(
       K,
     );
   }
 
-  _dart_clang_getTypeKindSpelling? _clang_getTypeKindSpelling;
+  late final _clang_getTypeKindSpelling_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_getTypeKindSpelling>>(
+          'clang_getTypeKindSpelling');
+  late final _dart_clang_getTypeKindSpelling _clang_getTypeKindSpelling =
+      _clang_getTypeKindSpelling_ptr
+          .asFunction<_dart_clang_getTypeKindSpelling>();
 
   /// Retrieve the calling convention associated with a function type.
   int clang_getFunctionTypeCallingConv(
     CXType T,
   ) {
-    return (_clang_getFunctionTypeCallingConv ??=
-        _lookup<ffi.NativeFunction<_c_clang_getFunctionTypeCallingConv>>(
-                'clang_getFunctionTypeCallingConv')
-            .asFunction<_dart_clang_getFunctionTypeCallingConv>())(
+    return _clang_getFunctionTypeCallingConv(
       T,
     );
   }
 
-  _dart_clang_getFunctionTypeCallingConv? _clang_getFunctionTypeCallingConv;
+  late final _clang_getFunctionTypeCallingConv_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_getFunctionTypeCallingConv>>(
+          'clang_getFunctionTypeCallingConv');
+  late final _dart_clang_getFunctionTypeCallingConv
+      _clang_getFunctionTypeCallingConv = _clang_getFunctionTypeCallingConv_ptr
+          .asFunction<_dart_clang_getFunctionTypeCallingConv>();
 
   /// Retrieve the return type associated with a function type.
   CXType clang_getResultType(
     CXType T,
   ) {
-    return (_clang_getResultType ??=
-        _lookup<ffi.NativeFunction<_c_clang_getResultType>>(
-                'clang_getResultType')
-            .asFunction<_dart_clang_getResultType>())(
+    return _clang_getResultType(
       T,
     );
   }
 
-  _dart_clang_getResultType? _clang_getResultType;
+  late final _clang_getResultType_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_getResultType>>(
+          'clang_getResultType');
+  late final _dart_clang_getResultType _clang_getResultType =
+      _clang_getResultType_ptr.asFunction<_dart_clang_getResultType>();
 
   /// Retrieve the exception specification type associated with a function type.
   /// This is a value of type CXCursor_ExceptionSpecificationKind.
   int clang_getExceptionSpecificationType(
     CXType T,
   ) {
-    return (_clang_getExceptionSpecificationType ??=
-        _lookup<ffi.NativeFunction<_c_clang_getExceptionSpecificationType>>(
-                'clang_getExceptionSpecificationType')
-            .asFunction<_dart_clang_getExceptionSpecificationType>())(
+    return _clang_getExceptionSpecificationType(
       T,
     );
   }
 
-  _dart_clang_getExceptionSpecificationType?
-      _clang_getExceptionSpecificationType;
+  late final _clang_getExceptionSpecificationType_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_getExceptionSpecificationType>>(
+          'clang_getExceptionSpecificationType');
+  late final _dart_clang_getExceptionSpecificationType
+      _clang_getExceptionSpecificationType =
+      _clang_getExceptionSpecificationType_ptr
+          .asFunction<_dart_clang_getExceptionSpecificationType>();
 
   /// Retrieve the number of non-variadic parameters associated with a function
   /// type.
   int clang_getNumArgTypes(
     CXType T,
   ) {
-    return (_clang_getNumArgTypes ??=
-        _lookup<ffi.NativeFunction<_c_clang_getNumArgTypes>>(
-                'clang_getNumArgTypes')
-            .asFunction<_dart_clang_getNumArgTypes>())(
+    return _clang_getNumArgTypes(
       T,
     );
   }
 
-  _dart_clang_getNumArgTypes? _clang_getNumArgTypes;
+  late final _clang_getNumArgTypes_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_getNumArgTypes>>(
+          'clang_getNumArgTypes');
+  late final _dart_clang_getNumArgTypes _clang_getNumArgTypes =
+      _clang_getNumArgTypes_ptr.asFunction<_dart_clang_getNumArgTypes>();
 
   /// Retrieve the type of a parameter of a function type.
   CXType clang_getArgType(
     CXType T,
     int i,
   ) {
-    return (_clang_getArgType ??=
-        _lookup<ffi.NativeFunction<_c_clang_getArgType>>('clang_getArgType')
-            .asFunction<_dart_clang_getArgType>())(
+    return _clang_getArgType(
       T,
       i,
     );
   }
 
-  _dart_clang_getArgType? _clang_getArgType;
+  late final _clang_getArgType_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_getArgType>>('clang_getArgType');
+  late final _dart_clang_getArgType _clang_getArgType =
+      _clang_getArgType_ptr.asFunction<_dart_clang_getArgType>();
 
   /// Retrieves the base type of the ObjCObjectType.
   CXType clang_Type_getObjCObjectBaseType(
     CXType T,
   ) {
-    return (_clang_Type_getObjCObjectBaseType ??=
-        _lookup<ffi.NativeFunction<_c_clang_Type_getObjCObjectBaseType>>(
-                'clang_Type_getObjCObjectBaseType')
-            .asFunction<_dart_clang_Type_getObjCObjectBaseType>())(
+    return _clang_Type_getObjCObjectBaseType(
       T,
     );
   }
 
-  _dart_clang_Type_getObjCObjectBaseType? _clang_Type_getObjCObjectBaseType;
+  late final _clang_Type_getObjCObjectBaseType_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_Type_getObjCObjectBaseType>>(
+          'clang_Type_getObjCObjectBaseType');
+  late final _dart_clang_Type_getObjCObjectBaseType
+      _clang_Type_getObjCObjectBaseType = _clang_Type_getObjCObjectBaseType_ptr
+          .asFunction<_dart_clang_Type_getObjCObjectBaseType>();
 
   /// Retrieve the number of protocol references associated with an ObjC
   /// object/id.
   int clang_Type_getNumObjCProtocolRefs(
     CXType T,
   ) {
-    return (_clang_Type_getNumObjCProtocolRefs ??=
-        _lookup<ffi.NativeFunction<_c_clang_Type_getNumObjCProtocolRefs>>(
-                'clang_Type_getNumObjCProtocolRefs')
-            .asFunction<_dart_clang_Type_getNumObjCProtocolRefs>())(
+    return _clang_Type_getNumObjCProtocolRefs(
       T,
     );
   }
 
-  _dart_clang_Type_getNumObjCProtocolRefs? _clang_Type_getNumObjCProtocolRefs;
+  late final _clang_Type_getNumObjCProtocolRefs_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_Type_getNumObjCProtocolRefs>>(
+          'clang_Type_getNumObjCProtocolRefs');
+  late final _dart_clang_Type_getNumObjCProtocolRefs
+      _clang_Type_getNumObjCProtocolRefs =
+      _clang_Type_getNumObjCProtocolRefs_ptr
+          .asFunction<_dart_clang_Type_getNumObjCProtocolRefs>();
 
   /// Retrieve the decl for a protocol reference for an ObjC object/id.
   CXCursor clang_Type_getObjCProtocolDecl(
     CXType T,
     int i,
   ) {
-    return (_clang_Type_getObjCProtocolDecl ??=
-        _lookup<ffi.NativeFunction<_c_clang_Type_getObjCProtocolDecl>>(
-                'clang_Type_getObjCProtocolDecl')
-            .asFunction<_dart_clang_Type_getObjCProtocolDecl>())(
+    return _clang_Type_getObjCProtocolDecl(
       T,
       i,
     );
   }
 
-  _dart_clang_Type_getObjCProtocolDecl? _clang_Type_getObjCProtocolDecl;
+  late final _clang_Type_getObjCProtocolDecl_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_Type_getObjCProtocolDecl>>(
+          'clang_Type_getObjCProtocolDecl');
+  late final _dart_clang_Type_getObjCProtocolDecl
+      _clang_Type_getObjCProtocolDecl = _clang_Type_getObjCProtocolDecl_ptr
+          .asFunction<_dart_clang_Type_getObjCProtocolDecl>();
 
   /// Retreive the number of type arguments associated with an ObjC object.
   int clang_Type_getNumObjCTypeArgs(
     CXType T,
   ) {
-    return (_clang_Type_getNumObjCTypeArgs ??=
-        _lookup<ffi.NativeFunction<_c_clang_Type_getNumObjCTypeArgs>>(
-                'clang_Type_getNumObjCTypeArgs')
-            .asFunction<_dart_clang_Type_getNumObjCTypeArgs>())(
+    return _clang_Type_getNumObjCTypeArgs(
       T,
     );
   }
 
-  _dart_clang_Type_getNumObjCTypeArgs? _clang_Type_getNumObjCTypeArgs;
+  late final _clang_Type_getNumObjCTypeArgs_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_Type_getNumObjCTypeArgs>>(
+          'clang_Type_getNumObjCTypeArgs');
+  late final _dart_clang_Type_getNumObjCTypeArgs
+      _clang_Type_getNumObjCTypeArgs = _clang_Type_getNumObjCTypeArgs_ptr
+          .asFunction<_dart_clang_Type_getNumObjCTypeArgs>();
 
   /// Retrieve a type argument associated with an ObjC object.
   CXType clang_Type_getObjCTypeArg(
     CXType T,
     int i,
   ) {
-    return (_clang_Type_getObjCTypeArg ??=
-        _lookup<ffi.NativeFunction<_c_clang_Type_getObjCTypeArg>>(
-                'clang_Type_getObjCTypeArg')
-            .asFunction<_dart_clang_Type_getObjCTypeArg>())(
+    return _clang_Type_getObjCTypeArg(
       T,
       i,
     );
   }
 
-  _dart_clang_Type_getObjCTypeArg? _clang_Type_getObjCTypeArg;
+  late final _clang_Type_getObjCTypeArg_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_Type_getObjCTypeArg>>(
+          'clang_Type_getObjCTypeArg');
+  late final _dart_clang_Type_getObjCTypeArg _clang_Type_getObjCTypeArg =
+      _clang_Type_getObjCTypeArg_ptr
+          .asFunction<_dart_clang_Type_getObjCTypeArg>();
 
   /// Return 1 if the CXType is a variadic function type, and 0 otherwise.
   int clang_isFunctionTypeVariadic(
     CXType T,
   ) {
-    return (_clang_isFunctionTypeVariadic ??=
-        _lookup<ffi.NativeFunction<_c_clang_isFunctionTypeVariadic>>(
-                'clang_isFunctionTypeVariadic')
-            .asFunction<_dart_clang_isFunctionTypeVariadic>())(
+    return _clang_isFunctionTypeVariadic(
       T,
     );
   }
 
-  _dart_clang_isFunctionTypeVariadic? _clang_isFunctionTypeVariadic;
+  late final _clang_isFunctionTypeVariadic_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_isFunctionTypeVariadic>>(
+          'clang_isFunctionTypeVariadic');
+  late final _dart_clang_isFunctionTypeVariadic _clang_isFunctionTypeVariadic =
+      _clang_isFunctionTypeVariadic_ptr
+          .asFunction<_dart_clang_isFunctionTypeVariadic>();
 
   /// Retrieve the return type associated with a given cursor.
   CXType clang_getCursorResultType(
     CXCursor C,
   ) {
-    return (_clang_getCursorResultType ??=
-        _lookup<ffi.NativeFunction<_c_clang_getCursorResultType>>(
-                'clang_getCursorResultType')
-            .asFunction<_dart_clang_getCursorResultType>())(
+    return _clang_getCursorResultType(
       C,
     );
   }
 
-  _dart_clang_getCursorResultType? _clang_getCursorResultType;
+  late final _clang_getCursorResultType_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_getCursorResultType>>(
+          'clang_getCursorResultType');
+  late final _dart_clang_getCursorResultType _clang_getCursorResultType =
+      _clang_getCursorResultType_ptr
+          .asFunction<_dart_clang_getCursorResultType>();
 
   /// Retrieve the exception specification type associated with a given cursor.
   /// This is a value of type CXCursor_ExceptionSpecificationKind.
   int clang_getCursorExceptionSpecificationType(
     CXCursor C,
   ) {
-    return (_clang_getCursorExceptionSpecificationType ??= _lookup<
-                ffi.NativeFunction<
-                    _c_clang_getCursorExceptionSpecificationType>>(
-            'clang_getCursorExceptionSpecificationType')
-        .asFunction<_dart_clang_getCursorExceptionSpecificationType>())(
+    return _clang_getCursorExceptionSpecificationType(
       C,
     );
   }
 
-  _dart_clang_getCursorExceptionSpecificationType?
-      _clang_getCursorExceptionSpecificationType;
+  late final _clang_getCursorExceptionSpecificationType_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_getCursorExceptionSpecificationType>>(
+          'clang_getCursorExceptionSpecificationType');
+  late final _dart_clang_getCursorExceptionSpecificationType
+      _clang_getCursorExceptionSpecificationType =
+      _clang_getCursorExceptionSpecificationType_ptr
+          .asFunction<_dart_clang_getCursorExceptionSpecificationType>();
 
   /// Return 1 if the CXType is a POD (plain old data) type, and 0 otherwise.
   int clang_isPODType(
     CXType T,
   ) {
-    return (_clang_isPODType ??=
-        _lookup<ffi.NativeFunction<_c_clang_isPODType>>('clang_isPODType')
-            .asFunction<_dart_clang_isPODType>())(
+    return _clang_isPODType(
       T,
     );
   }
 
-  _dart_clang_isPODType? _clang_isPODType;
+  late final _clang_isPODType_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_isPODType>>('clang_isPODType');
+  late final _dart_clang_isPODType _clang_isPODType =
+      _clang_isPODType_ptr.asFunction<_dart_clang_isPODType>();
 
   /// Return the element type of an array, complex, or vector type.
   CXType clang_getElementType(
     CXType T,
   ) {
-    return (_clang_getElementType ??=
-        _lookup<ffi.NativeFunction<_c_clang_getElementType>>(
-                'clang_getElementType')
-            .asFunction<_dart_clang_getElementType>())(
+    return _clang_getElementType(
       T,
     );
   }
 
-  _dart_clang_getElementType? _clang_getElementType;
+  late final _clang_getElementType_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_getElementType>>(
+          'clang_getElementType');
+  late final _dart_clang_getElementType _clang_getElementType =
+      _clang_getElementType_ptr.asFunction<_dart_clang_getElementType>();
 
   /// Return the number of elements of an array or vector type.
   int clang_getNumElements(
     CXType T,
   ) {
-    return (_clang_getNumElements ??=
-        _lookup<ffi.NativeFunction<_c_clang_getNumElements>>(
-                'clang_getNumElements')
-            .asFunction<_dart_clang_getNumElements>())(
+    return _clang_getNumElements(
       T,
     );
   }
 
-  _dart_clang_getNumElements? _clang_getNumElements;
+  late final _clang_getNumElements_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_getNumElements>>(
+          'clang_getNumElements');
+  late final _dart_clang_getNumElements _clang_getNumElements =
+      _clang_getNumElements_ptr.asFunction<_dart_clang_getNumElements>();
 
   /// Return the element type of an array type.
   CXType clang_getArrayElementType(
     CXType T,
   ) {
-    return (_clang_getArrayElementType ??=
-        _lookup<ffi.NativeFunction<_c_clang_getArrayElementType>>(
-                'clang_getArrayElementType')
-            .asFunction<_dart_clang_getArrayElementType>())(
+    return _clang_getArrayElementType(
       T,
     );
   }
 
-  _dart_clang_getArrayElementType? _clang_getArrayElementType;
+  late final _clang_getArrayElementType_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_getArrayElementType>>(
+          'clang_getArrayElementType');
+  late final _dart_clang_getArrayElementType _clang_getArrayElementType =
+      _clang_getArrayElementType_ptr
+          .asFunction<_dart_clang_getArrayElementType>();
 
   /// Return the array size of a constant array.
   int clang_getArraySize(
     CXType T,
   ) {
-    return (_clang_getArraySize ??=
-        _lookup<ffi.NativeFunction<_c_clang_getArraySize>>('clang_getArraySize')
-            .asFunction<_dart_clang_getArraySize>())(
+    return _clang_getArraySize(
       T,
     );
   }
 
-  _dart_clang_getArraySize? _clang_getArraySize;
+  late final _clang_getArraySize_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_getArraySize>>('clang_getArraySize');
+  late final _dart_clang_getArraySize _clang_getArraySize =
+      _clang_getArraySize_ptr.asFunction<_dart_clang_getArraySize>();
 
   /// Retrieve the type named by the qualified-id.
   CXType clang_Type_getNamedType(
     CXType T,
   ) {
-    return (_clang_Type_getNamedType ??=
-        _lookup<ffi.NativeFunction<_c_clang_Type_getNamedType>>(
-                'clang_Type_getNamedType')
-            .asFunction<_dart_clang_Type_getNamedType>())(
+    return _clang_Type_getNamedType(
       T,
     );
   }
 
-  _dart_clang_Type_getNamedType? _clang_Type_getNamedType;
+  late final _clang_Type_getNamedType_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_Type_getNamedType>>(
+          'clang_Type_getNamedType');
+  late final _dart_clang_Type_getNamedType _clang_Type_getNamedType =
+      _clang_Type_getNamedType_ptr.asFunction<_dart_clang_Type_getNamedType>();
 
   /// Determine if a typedef is 'transparent' tag.
   int clang_Type_isTransparentTagTypedef(
     CXType T,
   ) {
-    return (_clang_Type_isTransparentTagTypedef ??=
-        _lookup<ffi.NativeFunction<_c_clang_Type_isTransparentTagTypedef>>(
-                'clang_Type_isTransparentTagTypedef')
-            .asFunction<_dart_clang_Type_isTransparentTagTypedef>())(
+    return _clang_Type_isTransparentTagTypedef(
       T,
     );
   }
 
-  _dart_clang_Type_isTransparentTagTypedef? _clang_Type_isTransparentTagTypedef;
+  late final _clang_Type_isTransparentTagTypedef_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_Type_isTransparentTagTypedef>>(
+          'clang_Type_isTransparentTagTypedef');
+  late final _dart_clang_Type_isTransparentTagTypedef
+      _clang_Type_isTransparentTagTypedef =
+      _clang_Type_isTransparentTagTypedef_ptr
+          .asFunction<_dart_clang_Type_isTransparentTagTypedef>();
 
   /// Retrieve the nullability kind of a pointer type.
   int clang_Type_getNullability(
     CXType T,
   ) {
-    return (_clang_Type_getNullability ??=
-        _lookup<ffi.NativeFunction<_c_clang_Type_getNullability>>(
-                'clang_Type_getNullability')
-            .asFunction<_dart_clang_Type_getNullability>())(
+    return _clang_Type_getNullability(
       T,
     );
   }
 
-  _dart_clang_Type_getNullability? _clang_Type_getNullability;
+  late final _clang_Type_getNullability_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_Type_getNullability>>(
+          'clang_Type_getNullability');
+  late final _dart_clang_Type_getNullability _clang_Type_getNullability =
+      _clang_Type_getNullability_ptr
+          .asFunction<_dart_clang_Type_getNullability>();
 
   /// Return the alignment of a type in bytes as per C++[expr.alignof] standard.
   int clang_Type_getAlignOf(
     CXType T,
   ) {
-    return (_clang_Type_getAlignOf ??=
-        _lookup<ffi.NativeFunction<_c_clang_Type_getAlignOf>>(
-                'clang_Type_getAlignOf')
-            .asFunction<_dart_clang_Type_getAlignOf>())(
+    return _clang_Type_getAlignOf(
       T,
     );
   }
 
-  _dart_clang_Type_getAlignOf? _clang_Type_getAlignOf;
+  late final _clang_Type_getAlignOf_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_Type_getAlignOf>>(
+          'clang_Type_getAlignOf');
+  late final _dart_clang_Type_getAlignOf _clang_Type_getAlignOf =
+      _clang_Type_getAlignOf_ptr.asFunction<_dart_clang_Type_getAlignOf>();
 
   /// Return the class type of an member pointer type.
   CXType clang_Type_getClassType(
     CXType T,
   ) {
-    return (_clang_Type_getClassType ??=
-        _lookup<ffi.NativeFunction<_c_clang_Type_getClassType>>(
-                'clang_Type_getClassType')
-            .asFunction<_dart_clang_Type_getClassType>())(
+    return _clang_Type_getClassType(
       T,
     );
   }
 
-  _dart_clang_Type_getClassType? _clang_Type_getClassType;
+  late final _clang_Type_getClassType_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_Type_getClassType>>(
+          'clang_Type_getClassType');
+  late final _dart_clang_Type_getClassType _clang_Type_getClassType =
+      _clang_Type_getClassType_ptr.asFunction<_dart_clang_Type_getClassType>();
 
   /// Return the size of a type in bytes as per C++[expr.sizeof] standard.
   int clang_Type_getSizeOf(
     CXType T,
   ) {
-    return (_clang_Type_getSizeOf ??=
-        _lookup<ffi.NativeFunction<_c_clang_Type_getSizeOf>>(
-                'clang_Type_getSizeOf')
-            .asFunction<_dart_clang_Type_getSizeOf>())(
+    return _clang_Type_getSizeOf(
       T,
     );
   }
 
-  _dart_clang_Type_getSizeOf? _clang_Type_getSizeOf;
+  late final _clang_Type_getSizeOf_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_Type_getSizeOf>>(
+          'clang_Type_getSizeOf');
+  late final _dart_clang_Type_getSizeOf _clang_Type_getSizeOf =
+      _clang_Type_getSizeOf_ptr.asFunction<_dart_clang_Type_getSizeOf>();
 
   /// Return the offset of a field named S in a record of type T in bits as it
   /// would be returned by __offsetof__ as per C++11[18.2p4]
@@ -2820,104 +3112,119 @@
     CXType T,
     ffi.Pointer<ffi.Int8> S,
   ) {
-    return (_clang_Type_getOffsetOf ??=
-        _lookup<ffi.NativeFunction<_c_clang_Type_getOffsetOf>>(
-                'clang_Type_getOffsetOf')
-            .asFunction<_dart_clang_Type_getOffsetOf>())(
+    return _clang_Type_getOffsetOf(
       T,
       S,
     );
   }
 
-  _dart_clang_Type_getOffsetOf? _clang_Type_getOffsetOf;
+  late final _clang_Type_getOffsetOf_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_Type_getOffsetOf>>(
+          'clang_Type_getOffsetOf');
+  late final _dart_clang_Type_getOffsetOf _clang_Type_getOffsetOf =
+      _clang_Type_getOffsetOf_ptr.asFunction<_dart_clang_Type_getOffsetOf>();
 
   /// Return the type that was modified by this attributed type.
   CXType clang_Type_getModifiedType(
     CXType T,
   ) {
-    return (_clang_Type_getModifiedType ??=
-        _lookup<ffi.NativeFunction<_c_clang_Type_getModifiedType>>(
-                'clang_Type_getModifiedType')
-            .asFunction<_dart_clang_Type_getModifiedType>())(
+    return _clang_Type_getModifiedType(
       T,
     );
   }
 
-  _dart_clang_Type_getModifiedType? _clang_Type_getModifiedType;
+  late final _clang_Type_getModifiedType_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_Type_getModifiedType>>(
+          'clang_Type_getModifiedType');
+  late final _dart_clang_Type_getModifiedType _clang_Type_getModifiedType =
+      _clang_Type_getModifiedType_ptr
+          .asFunction<_dart_clang_Type_getModifiedType>();
 
   /// Return the offset of the field represented by the Cursor.
   int clang_Cursor_getOffsetOfField(
     CXCursor C,
   ) {
-    return (_clang_Cursor_getOffsetOfField ??=
-        _lookup<ffi.NativeFunction<_c_clang_Cursor_getOffsetOfField>>(
-                'clang_Cursor_getOffsetOfField')
-            .asFunction<_dart_clang_Cursor_getOffsetOfField>())(
+    return _clang_Cursor_getOffsetOfField(
       C,
     );
   }
 
-  _dart_clang_Cursor_getOffsetOfField? _clang_Cursor_getOffsetOfField;
+  late final _clang_Cursor_getOffsetOfField_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_Cursor_getOffsetOfField>>(
+          'clang_Cursor_getOffsetOfField');
+  late final _dart_clang_Cursor_getOffsetOfField
+      _clang_Cursor_getOffsetOfField = _clang_Cursor_getOffsetOfField_ptr
+          .asFunction<_dart_clang_Cursor_getOffsetOfField>();
 
   /// Determine whether the given cursor represents an anonymous tag or
   /// namespace
   int clang_Cursor_isAnonymous(
     CXCursor C,
   ) {
-    return (_clang_Cursor_isAnonymous ??=
-        _lookup<ffi.NativeFunction<_c_clang_Cursor_isAnonymous>>(
-                'clang_Cursor_isAnonymous')
-            .asFunction<_dart_clang_Cursor_isAnonymous>())(
+    return _clang_Cursor_isAnonymous(
       C,
     );
   }
 
-  _dart_clang_Cursor_isAnonymous? _clang_Cursor_isAnonymous;
+  late final _clang_Cursor_isAnonymous_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_Cursor_isAnonymous>>(
+          'clang_Cursor_isAnonymous');
+  late final _dart_clang_Cursor_isAnonymous _clang_Cursor_isAnonymous =
+      _clang_Cursor_isAnonymous_ptr
+          .asFunction<_dart_clang_Cursor_isAnonymous>();
 
   /// Determine whether the given cursor represents an anonymous record
   /// declaration.
   int clang_Cursor_isAnonymousRecordDecl(
     CXCursor C,
   ) {
-    return (_clang_Cursor_isAnonymousRecordDecl ??=
-        _lookup<ffi.NativeFunction<_c_clang_Cursor_isAnonymousRecordDecl>>(
-                'clang_Cursor_isAnonymousRecordDecl')
-            .asFunction<_dart_clang_Cursor_isAnonymousRecordDecl>())(
+    return _clang_Cursor_isAnonymousRecordDecl(
       C,
     );
   }
 
-  _dart_clang_Cursor_isAnonymousRecordDecl? _clang_Cursor_isAnonymousRecordDecl;
+  late final _clang_Cursor_isAnonymousRecordDecl_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_Cursor_isAnonymousRecordDecl>>(
+          'clang_Cursor_isAnonymousRecordDecl');
+  late final _dart_clang_Cursor_isAnonymousRecordDecl
+      _clang_Cursor_isAnonymousRecordDecl =
+      _clang_Cursor_isAnonymousRecordDecl_ptr
+          .asFunction<_dart_clang_Cursor_isAnonymousRecordDecl>();
 
   /// Determine whether the given cursor represents an inline namespace
   /// declaration.
   int clang_Cursor_isInlineNamespace(
     CXCursor C,
   ) {
-    return (_clang_Cursor_isInlineNamespace ??=
-        _lookup<ffi.NativeFunction<_c_clang_Cursor_isInlineNamespace>>(
-                'clang_Cursor_isInlineNamespace')
-            .asFunction<_dart_clang_Cursor_isInlineNamespace>())(
+    return _clang_Cursor_isInlineNamespace(
       C,
     );
   }
 
-  _dart_clang_Cursor_isInlineNamespace? _clang_Cursor_isInlineNamespace;
+  late final _clang_Cursor_isInlineNamespace_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_Cursor_isInlineNamespace>>(
+          'clang_Cursor_isInlineNamespace');
+  late final _dart_clang_Cursor_isInlineNamespace
+      _clang_Cursor_isInlineNamespace = _clang_Cursor_isInlineNamespace_ptr
+          .asFunction<_dart_clang_Cursor_isInlineNamespace>();
 
   /// Returns the number of template arguments for given template
   /// specialization, or -1 if type T is not a template specialization.
   int clang_Type_getNumTemplateArguments(
     CXType T,
   ) {
-    return (_clang_Type_getNumTemplateArguments ??=
-        _lookup<ffi.NativeFunction<_c_clang_Type_getNumTemplateArguments>>(
-                'clang_Type_getNumTemplateArguments')
-            .asFunction<_dart_clang_Type_getNumTemplateArguments>())(
+    return _clang_Type_getNumTemplateArguments(
       T,
     );
   }
 
-  _dart_clang_Type_getNumTemplateArguments? _clang_Type_getNumTemplateArguments;
+  late final _clang_Type_getNumTemplateArguments_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_Type_getNumTemplateArguments>>(
+          'clang_Type_getNumTemplateArguments');
+  late final _dart_clang_Type_getNumTemplateArguments
+      _clang_Type_getNumTemplateArguments =
+      _clang_Type_getNumTemplateArguments_ptr
+          .asFunction<_dart_clang_Type_getNumTemplateArguments>();
 
   /// Returns the type template argument of a template class specialization at
   /// given index.
@@ -2925,104 +3232,116 @@
     CXType T,
     int i,
   ) {
-    return (_clang_Type_getTemplateArgumentAsType ??=
-        _lookup<ffi.NativeFunction<_c_clang_Type_getTemplateArgumentAsType>>(
-                'clang_Type_getTemplateArgumentAsType')
-            .asFunction<_dart_clang_Type_getTemplateArgumentAsType>())(
+    return _clang_Type_getTemplateArgumentAsType(
       T,
       i,
     );
   }
 
-  _dart_clang_Type_getTemplateArgumentAsType?
-      _clang_Type_getTemplateArgumentAsType;
+  late final _clang_Type_getTemplateArgumentAsType_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_Type_getTemplateArgumentAsType>>(
+          'clang_Type_getTemplateArgumentAsType');
+  late final _dart_clang_Type_getTemplateArgumentAsType
+      _clang_Type_getTemplateArgumentAsType =
+      _clang_Type_getTemplateArgumentAsType_ptr
+          .asFunction<_dart_clang_Type_getTemplateArgumentAsType>();
 
   /// Retrieve the ref-qualifier kind of a function or method.
   int clang_Type_getCXXRefQualifier(
     CXType T,
   ) {
-    return (_clang_Type_getCXXRefQualifier ??=
-        _lookup<ffi.NativeFunction<_c_clang_Type_getCXXRefQualifier>>(
-                'clang_Type_getCXXRefQualifier')
-            .asFunction<_dart_clang_Type_getCXXRefQualifier>())(
+    return _clang_Type_getCXXRefQualifier(
       T,
     );
   }
 
-  _dart_clang_Type_getCXXRefQualifier? _clang_Type_getCXXRefQualifier;
+  late final _clang_Type_getCXXRefQualifier_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_Type_getCXXRefQualifier>>(
+          'clang_Type_getCXXRefQualifier');
+  late final _dart_clang_Type_getCXXRefQualifier
+      _clang_Type_getCXXRefQualifier = _clang_Type_getCXXRefQualifier_ptr
+          .asFunction<_dart_clang_Type_getCXXRefQualifier>();
 
   /// Returns non-zero if the cursor specifies a Record member that is a
   /// bitfield.
   int clang_Cursor_isBitField(
     CXCursor C,
   ) {
-    return (_clang_Cursor_isBitField ??=
-        _lookup<ffi.NativeFunction<_c_clang_Cursor_isBitField>>(
-                'clang_Cursor_isBitField')
-            .asFunction<_dart_clang_Cursor_isBitField>())(
+    return _clang_Cursor_isBitField(
       C,
     );
   }
 
-  _dart_clang_Cursor_isBitField? _clang_Cursor_isBitField;
+  late final _clang_Cursor_isBitField_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_Cursor_isBitField>>(
+          'clang_Cursor_isBitField');
+  late final _dart_clang_Cursor_isBitField _clang_Cursor_isBitField =
+      _clang_Cursor_isBitField_ptr.asFunction<_dart_clang_Cursor_isBitField>();
 
   /// Returns 1 if the base class specified by the cursor with kind
   /// CX_CXXBaseSpecifier is virtual.
   int clang_isVirtualBase(
     CXCursor arg0,
   ) {
-    return (_clang_isVirtualBase ??=
-        _lookup<ffi.NativeFunction<_c_clang_isVirtualBase>>(
-                'clang_isVirtualBase')
-            .asFunction<_dart_clang_isVirtualBase>())(
+    return _clang_isVirtualBase(
       arg0,
     );
   }
 
-  _dart_clang_isVirtualBase? _clang_isVirtualBase;
+  late final _clang_isVirtualBase_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_isVirtualBase>>(
+          'clang_isVirtualBase');
+  late final _dart_clang_isVirtualBase _clang_isVirtualBase =
+      _clang_isVirtualBase_ptr.asFunction<_dart_clang_isVirtualBase>();
 
   /// Returns the access control level for the referenced object.
   int clang_getCXXAccessSpecifier(
     CXCursor arg0,
   ) {
-    return (_clang_getCXXAccessSpecifier ??=
-        _lookup<ffi.NativeFunction<_c_clang_getCXXAccessSpecifier>>(
-                'clang_getCXXAccessSpecifier')
-            .asFunction<_dart_clang_getCXXAccessSpecifier>())(
+    return _clang_getCXXAccessSpecifier(
       arg0,
     );
   }
 
-  _dart_clang_getCXXAccessSpecifier? _clang_getCXXAccessSpecifier;
+  late final _clang_getCXXAccessSpecifier_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_getCXXAccessSpecifier>>(
+          'clang_getCXXAccessSpecifier');
+  late final _dart_clang_getCXXAccessSpecifier _clang_getCXXAccessSpecifier =
+      _clang_getCXXAccessSpecifier_ptr
+          .asFunction<_dart_clang_getCXXAccessSpecifier>();
 
   /// Returns the storage class for a function or variable declaration.
   int clang_Cursor_getStorageClass(
     CXCursor arg0,
   ) {
-    return (_clang_Cursor_getStorageClass ??=
-        _lookup<ffi.NativeFunction<_c_clang_Cursor_getStorageClass>>(
-                'clang_Cursor_getStorageClass')
-            .asFunction<_dart_clang_Cursor_getStorageClass>())(
+    return _clang_Cursor_getStorageClass(
       arg0,
     );
   }
 
-  _dart_clang_Cursor_getStorageClass? _clang_Cursor_getStorageClass;
+  late final _clang_Cursor_getStorageClass_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_Cursor_getStorageClass>>(
+          'clang_Cursor_getStorageClass');
+  late final _dart_clang_Cursor_getStorageClass _clang_Cursor_getStorageClass =
+      _clang_Cursor_getStorageClass_ptr
+          .asFunction<_dart_clang_Cursor_getStorageClass>();
 
   /// Determine the number of overloaded declarations referenced by a
   /// CXCursor_OverloadedDeclRef cursor.
   int clang_getNumOverloadedDecls(
     CXCursor cursor,
   ) {
-    return (_clang_getNumOverloadedDecls ??=
-        _lookup<ffi.NativeFunction<_c_clang_getNumOverloadedDecls>>(
-                'clang_getNumOverloadedDecls')
-            .asFunction<_dart_clang_getNumOverloadedDecls>())(
+    return _clang_getNumOverloadedDecls(
       cursor,
     );
   }
 
-  _dart_clang_getNumOverloadedDecls? _clang_getNumOverloadedDecls;
+  late final _clang_getNumOverloadedDecls_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_getNumOverloadedDecls>>(
+          'clang_getNumOverloadedDecls');
+  late final _dart_clang_getNumOverloadedDecls _clang_getNumOverloadedDecls =
+      _clang_getNumOverloadedDecls_ptr
+          .asFunction<_dart_clang_getNumOverloadedDecls>();
 
   /// Retrieve a cursor for one of the overloaded declarations referenced by a
   /// CXCursor_OverloadedDeclRef cursor.
@@ -3030,31 +3349,34 @@
     CXCursor cursor,
     int index,
   ) {
-    return (_clang_getOverloadedDecl ??=
-        _lookup<ffi.NativeFunction<_c_clang_getOverloadedDecl>>(
-                'clang_getOverloadedDecl')
-            .asFunction<_dart_clang_getOverloadedDecl>())(
+    return _clang_getOverloadedDecl(
       cursor,
       index,
     );
   }
 
-  _dart_clang_getOverloadedDecl? _clang_getOverloadedDecl;
+  late final _clang_getOverloadedDecl_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_getOverloadedDecl>>(
+          'clang_getOverloadedDecl');
+  late final _dart_clang_getOverloadedDecl _clang_getOverloadedDecl =
+      _clang_getOverloadedDecl_ptr.asFunction<_dart_clang_getOverloadedDecl>();
 
   /// For cursors representing an iboutletcollection attribute, this function
   /// returns the collection element type.
   CXType clang_getIBOutletCollectionType(
     CXCursor arg0,
   ) {
-    return (_clang_getIBOutletCollectionType ??=
-        _lookup<ffi.NativeFunction<_c_clang_getIBOutletCollectionType>>(
-                'clang_getIBOutletCollectionType')
-            .asFunction<_dart_clang_getIBOutletCollectionType>())(
+    return _clang_getIBOutletCollectionType(
       arg0,
     );
   }
 
-  _dart_clang_getIBOutletCollectionType? _clang_getIBOutletCollectionType;
+  late final _clang_getIBOutletCollectionType_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_getIBOutletCollectionType>>(
+          'clang_getIBOutletCollectionType');
+  late final _dart_clang_getIBOutletCollectionType
+      _clang_getIBOutletCollectionType = _clang_getIBOutletCollectionType_ptr
+          .asFunction<_dart_clang_getIBOutletCollectionType>();
 
   /// Visit the children of a particular cursor.
   int clang_visitChildren(
@@ -3062,75 +3384,83 @@
     ffi.Pointer<ffi.NativeFunction<CXCursorVisitor>> visitor,
     ffi.Pointer<ffi.Void> client_data,
   ) {
-    return (_clang_visitChildren ??=
-        _lookup<ffi.NativeFunction<_c_clang_visitChildren>>(
-                'clang_visitChildren')
-            .asFunction<_dart_clang_visitChildren>())(
+    return _clang_visitChildren(
       parent,
       visitor,
       client_data,
     );
   }
 
-  _dart_clang_visitChildren? _clang_visitChildren;
+  late final _clang_visitChildren_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_visitChildren>>(
+          'clang_visitChildren');
+  late final _dart_clang_visitChildren _clang_visitChildren =
+      _clang_visitChildren_ptr.asFunction<_dart_clang_visitChildren>();
 
   /// Retrieve a Unified Symbol Resolution (USR) for the entity referenced by
   /// the given cursor.
   CXString clang_getCursorUSR(
     CXCursor arg0,
   ) {
-    return (_clang_getCursorUSR ??=
-        _lookup<ffi.NativeFunction<_c_clang_getCursorUSR>>('clang_getCursorUSR')
-            .asFunction<_dart_clang_getCursorUSR>())(
+    return _clang_getCursorUSR(
       arg0,
     );
   }
 
-  _dart_clang_getCursorUSR? _clang_getCursorUSR;
+  late final _clang_getCursorUSR_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_getCursorUSR>>('clang_getCursorUSR');
+  late final _dart_clang_getCursorUSR _clang_getCursorUSR =
+      _clang_getCursorUSR_ptr.asFunction<_dart_clang_getCursorUSR>();
 
   /// Construct a USR for a specified Objective-C class.
   CXString clang_constructUSR_ObjCClass(
     ffi.Pointer<ffi.Int8> class_name,
   ) {
-    return (_clang_constructUSR_ObjCClass ??=
-        _lookup<ffi.NativeFunction<_c_clang_constructUSR_ObjCClass>>(
-                'clang_constructUSR_ObjCClass')
-            .asFunction<_dart_clang_constructUSR_ObjCClass>())(
+    return _clang_constructUSR_ObjCClass(
       class_name,
     );
   }
 
-  _dart_clang_constructUSR_ObjCClass? _clang_constructUSR_ObjCClass;
+  late final _clang_constructUSR_ObjCClass_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_constructUSR_ObjCClass>>(
+          'clang_constructUSR_ObjCClass');
+  late final _dart_clang_constructUSR_ObjCClass _clang_constructUSR_ObjCClass =
+      _clang_constructUSR_ObjCClass_ptr
+          .asFunction<_dart_clang_constructUSR_ObjCClass>();
 
   /// Construct a USR for a specified Objective-C category.
   CXString clang_constructUSR_ObjCCategory(
     ffi.Pointer<ffi.Int8> class_name,
     ffi.Pointer<ffi.Int8> category_name,
   ) {
-    return (_clang_constructUSR_ObjCCategory ??=
-        _lookup<ffi.NativeFunction<_c_clang_constructUSR_ObjCCategory>>(
-                'clang_constructUSR_ObjCCategory')
-            .asFunction<_dart_clang_constructUSR_ObjCCategory>())(
+    return _clang_constructUSR_ObjCCategory(
       class_name,
       category_name,
     );
   }
 
-  _dart_clang_constructUSR_ObjCCategory? _clang_constructUSR_ObjCCategory;
+  late final _clang_constructUSR_ObjCCategory_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_constructUSR_ObjCCategory>>(
+          'clang_constructUSR_ObjCCategory');
+  late final _dart_clang_constructUSR_ObjCCategory
+      _clang_constructUSR_ObjCCategory = _clang_constructUSR_ObjCCategory_ptr
+          .asFunction<_dart_clang_constructUSR_ObjCCategory>();
 
   /// Construct a USR for a specified Objective-C protocol.
   CXString clang_constructUSR_ObjCProtocol(
     ffi.Pointer<ffi.Int8> protocol_name,
   ) {
-    return (_clang_constructUSR_ObjCProtocol ??=
-        _lookup<ffi.NativeFunction<_c_clang_constructUSR_ObjCProtocol>>(
-                'clang_constructUSR_ObjCProtocol')
-            .asFunction<_dart_clang_constructUSR_ObjCProtocol>())(
+    return _clang_constructUSR_ObjCProtocol(
       protocol_name,
     );
   }
 
-  _dart_clang_constructUSR_ObjCProtocol? _clang_constructUSR_ObjCProtocol;
+  late final _clang_constructUSR_ObjCProtocol_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_constructUSR_ObjCProtocol>>(
+          'clang_constructUSR_ObjCProtocol');
+  late final _dart_clang_constructUSR_ObjCProtocol
+      _clang_constructUSR_ObjCProtocol = _clang_constructUSR_ObjCProtocol_ptr
+          .asFunction<_dart_clang_constructUSR_ObjCProtocol>();
 
   /// Construct a USR for a specified Objective-C instance variable and the USR
   /// for its containing class.
@@ -3138,16 +3468,18 @@
     ffi.Pointer<ffi.Int8> name,
     CXString classUSR,
   ) {
-    return (_clang_constructUSR_ObjCIvar ??=
-        _lookup<ffi.NativeFunction<_c_clang_constructUSR_ObjCIvar>>(
-                'clang_constructUSR_ObjCIvar')
-            .asFunction<_dart_clang_constructUSR_ObjCIvar>())(
+    return _clang_constructUSR_ObjCIvar(
       name,
       classUSR,
     );
   }
 
-  _dart_clang_constructUSR_ObjCIvar? _clang_constructUSR_ObjCIvar;
+  late final _clang_constructUSR_ObjCIvar_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_constructUSR_ObjCIvar>>(
+          'clang_constructUSR_ObjCIvar');
+  late final _dart_clang_constructUSR_ObjCIvar _clang_constructUSR_ObjCIvar =
+      _clang_constructUSR_ObjCIvar_ptr
+          .asFunction<_dart_clang_constructUSR_ObjCIvar>();
 
   /// Construct a USR for a specified Objective-C method and the USR for its
   /// containing class.
@@ -3156,17 +3488,19 @@
     int isInstanceMethod,
     CXString classUSR,
   ) {
-    return (_clang_constructUSR_ObjCMethod ??=
-        _lookup<ffi.NativeFunction<_c_clang_constructUSR_ObjCMethod>>(
-                'clang_constructUSR_ObjCMethod')
-            .asFunction<_dart_clang_constructUSR_ObjCMethod>())(
+    return _clang_constructUSR_ObjCMethod(
       name,
       isInstanceMethod,
       classUSR,
     );
   }
 
-  _dart_clang_constructUSR_ObjCMethod? _clang_constructUSR_ObjCMethod;
+  late final _clang_constructUSR_ObjCMethod_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_constructUSR_ObjCMethod>>(
+          'clang_constructUSR_ObjCMethod');
+  late final _dart_clang_constructUSR_ObjCMethod
+      _clang_constructUSR_ObjCMethod = _clang_constructUSR_ObjCMethod_ptr
+          .asFunction<_dart_clang_constructUSR_ObjCMethod>();
 
   /// Construct a USR for a specified Objective-C property and the USR for its
   /// containing class.
@@ -3174,30 +3508,33 @@
     ffi.Pointer<ffi.Int8> property,
     CXString classUSR,
   ) {
-    return (_clang_constructUSR_ObjCProperty ??=
-        _lookup<ffi.NativeFunction<_c_clang_constructUSR_ObjCProperty>>(
-                'clang_constructUSR_ObjCProperty')
-            .asFunction<_dart_clang_constructUSR_ObjCProperty>())(
+    return _clang_constructUSR_ObjCProperty(
       property,
       classUSR,
     );
   }
 
-  _dart_clang_constructUSR_ObjCProperty? _clang_constructUSR_ObjCProperty;
+  late final _clang_constructUSR_ObjCProperty_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_constructUSR_ObjCProperty>>(
+          'clang_constructUSR_ObjCProperty');
+  late final _dart_clang_constructUSR_ObjCProperty
+      _clang_constructUSR_ObjCProperty = _clang_constructUSR_ObjCProperty_ptr
+          .asFunction<_dart_clang_constructUSR_ObjCProperty>();
 
   /// Retrieve a name for the entity referenced by this cursor.
   CXString clang_getCursorSpelling(
     CXCursor arg0,
   ) {
-    return (_clang_getCursorSpelling ??=
-        _lookup<ffi.NativeFunction<_c_clang_getCursorSpelling>>(
-                'clang_getCursorSpelling')
-            .asFunction<_dart_clang_getCursorSpelling>())(
+    return _clang_getCursorSpelling(
       arg0,
     );
   }
 
-  _dart_clang_getCursorSpelling? _clang_getCursorSpelling;
+  late final _clang_getCursorSpelling_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_getCursorSpelling>>(
+          'clang_getCursorSpelling');
+  late final _dart_clang_getCursorSpelling _clang_getCursorSpelling =
+      _clang_getCursorSpelling_ptr.asFunction<_dart_clang_getCursorSpelling>();
 
   /// Retrieve a range for a piece that forms the cursors spelling name. Most of
   /// the times there is only one range for the complete spelling but for
@@ -3208,33 +3545,38 @@
     int pieceIndex,
     int options,
   ) {
-    return (_clang_Cursor_getSpellingNameRange ??=
-        _lookup<ffi.NativeFunction<_c_clang_Cursor_getSpellingNameRange>>(
-                'clang_Cursor_getSpellingNameRange')
-            .asFunction<_dart_clang_Cursor_getSpellingNameRange>())(
+    return _clang_Cursor_getSpellingNameRange(
       arg0,
       pieceIndex,
       options,
     );
   }
 
-  _dart_clang_Cursor_getSpellingNameRange? _clang_Cursor_getSpellingNameRange;
+  late final _clang_Cursor_getSpellingNameRange_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_Cursor_getSpellingNameRange>>(
+          'clang_Cursor_getSpellingNameRange');
+  late final _dart_clang_Cursor_getSpellingNameRange
+      _clang_Cursor_getSpellingNameRange =
+      _clang_Cursor_getSpellingNameRange_ptr
+          .asFunction<_dart_clang_Cursor_getSpellingNameRange>();
 
   /// Get a property value for the given printing policy.
   int clang_PrintingPolicy_getProperty(
     ffi.Pointer<ffi.Void> Policy,
     int Property,
   ) {
-    return (_clang_PrintingPolicy_getProperty ??=
-        _lookup<ffi.NativeFunction<_c_clang_PrintingPolicy_getProperty>>(
-                'clang_PrintingPolicy_getProperty')
-            .asFunction<_dart_clang_PrintingPolicy_getProperty>())(
+    return _clang_PrintingPolicy_getProperty(
       Policy,
       Property,
     );
   }
 
-  _dart_clang_PrintingPolicy_getProperty? _clang_PrintingPolicy_getProperty;
+  late final _clang_PrintingPolicy_getProperty_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_PrintingPolicy_getProperty>>(
+          'clang_PrintingPolicy_getProperty');
+  late final _dart_clang_PrintingPolicy_getProperty
+      _clang_PrintingPolicy_getProperty = _clang_PrintingPolicy_getProperty_ptr
+          .asFunction<_dart_clang_PrintingPolicy_getProperty>();
 
   /// Set a property value for the given printing policy.
   void clang_PrintingPolicy_setProperty(
@@ -3242,179 +3584,204 @@
     int Property,
     int Value,
   ) {
-    return (_clang_PrintingPolicy_setProperty ??=
-        _lookup<ffi.NativeFunction<_c_clang_PrintingPolicy_setProperty>>(
-                'clang_PrintingPolicy_setProperty')
-            .asFunction<_dart_clang_PrintingPolicy_setProperty>())(
+    return _clang_PrintingPolicy_setProperty(
       Policy,
       Property,
       Value,
     );
   }
 
-  _dart_clang_PrintingPolicy_setProperty? _clang_PrintingPolicy_setProperty;
+  late final _clang_PrintingPolicy_setProperty_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_PrintingPolicy_setProperty>>(
+          'clang_PrintingPolicy_setProperty');
+  late final _dart_clang_PrintingPolicy_setProperty
+      _clang_PrintingPolicy_setProperty = _clang_PrintingPolicy_setProperty_ptr
+          .asFunction<_dart_clang_PrintingPolicy_setProperty>();
 
   /// Retrieve the default policy for the cursor.
   ffi.Pointer<ffi.Void> clang_getCursorPrintingPolicy(
     CXCursor arg0,
   ) {
-    return (_clang_getCursorPrintingPolicy ??=
-        _lookup<ffi.NativeFunction<_c_clang_getCursorPrintingPolicy>>(
-                'clang_getCursorPrintingPolicy')
-            .asFunction<_dart_clang_getCursorPrintingPolicy>())(
+    return _clang_getCursorPrintingPolicy(
       arg0,
     );
   }
 
-  _dart_clang_getCursorPrintingPolicy? _clang_getCursorPrintingPolicy;
+  late final _clang_getCursorPrintingPolicy_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_getCursorPrintingPolicy>>(
+          'clang_getCursorPrintingPolicy');
+  late final _dart_clang_getCursorPrintingPolicy
+      _clang_getCursorPrintingPolicy = _clang_getCursorPrintingPolicy_ptr
+          .asFunction<_dart_clang_getCursorPrintingPolicy>();
 
   /// Release a printing policy.
   void clang_PrintingPolicy_dispose(
     ffi.Pointer<ffi.Void> Policy,
   ) {
-    return (_clang_PrintingPolicy_dispose ??=
-        _lookup<ffi.NativeFunction<_c_clang_PrintingPolicy_dispose>>(
-                'clang_PrintingPolicy_dispose')
-            .asFunction<_dart_clang_PrintingPolicy_dispose>())(
+    return _clang_PrintingPolicy_dispose(
       Policy,
     );
   }
 
-  _dart_clang_PrintingPolicy_dispose? _clang_PrintingPolicy_dispose;
+  late final _clang_PrintingPolicy_dispose_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_PrintingPolicy_dispose>>(
+          'clang_PrintingPolicy_dispose');
+  late final _dart_clang_PrintingPolicy_dispose _clang_PrintingPolicy_dispose =
+      _clang_PrintingPolicy_dispose_ptr
+          .asFunction<_dart_clang_PrintingPolicy_dispose>();
 
   /// Pretty print declarations.
   CXString clang_getCursorPrettyPrinted(
     CXCursor Cursor,
     ffi.Pointer<ffi.Void> Policy,
   ) {
-    return (_clang_getCursorPrettyPrinted ??=
-        _lookup<ffi.NativeFunction<_c_clang_getCursorPrettyPrinted>>(
-                'clang_getCursorPrettyPrinted')
-            .asFunction<_dart_clang_getCursorPrettyPrinted>())(
+    return _clang_getCursorPrettyPrinted(
       Cursor,
       Policy,
     );
   }
 
-  _dart_clang_getCursorPrettyPrinted? _clang_getCursorPrettyPrinted;
+  late final _clang_getCursorPrettyPrinted_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_getCursorPrettyPrinted>>(
+          'clang_getCursorPrettyPrinted');
+  late final _dart_clang_getCursorPrettyPrinted _clang_getCursorPrettyPrinted =
+      _clang_getCursorPrettyPrinted_ptr
+          .asFunction<_dart_clang_getCursorPrettyPrinted>();
 
   /// Retrieve the display name for the entity referenced by this cursor.
   CXString clang_getCursorDisplayName(
     CXCursor arg0,
   ) {
-    return (_clang_getCursorDisplayName ??=
-        _lookup<ffi.NativeFunction<_c_clang_getCursorDisplayName>>(
-                'clang_getCursorDisplayName')
-            .asFunction<_dart_clang_getCursorDisplayName>())(
+    return _clang_getCursorDisplayName(
       arg0,
     );
   }
 
-  _dart_clang_getCursorDisplayName? _clang_getCursorDisplayName;
+  late final _clang_getCursorDisplayName_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_getCursorDisplayName>>(
+          'clang_getCursorDisplayName');
+  late final _dart_clang_getCursorDisplayName _clang_getCursorDisplayName =
+      _clang_getCursorDisplayName_ptr
+          .asFunction<_dart_clang_getCursorDisplayName>();
 
   /// For a cursor that is a reference, retrieve a cursor representing the
   /// entity that it references.
   CXCursor clang_getCursorReferenced(
     CXCursor arg0,
   ) {
-    return (_clang_getCursorReferenced ??=
-        _lookup<ffi.NativeFunction<_c_clang_getCursorReferenced>>(
-                'clang_getCursorReferenced')
-            .asFunction<_dart_clang_getCursorReferenced>())(
+    return _clang_getCursorReferenced(
       arg0,
     );
   }
 
-  _dart_clang_getCursorReferenced? _clang_getCursorReferenced;
+  late final _clang_getCursorReferenced_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_getCursorReferenced>>(
+          'clang_getCursorReferenced');
+  late final _dart_clang_getCursorReferenced _clang_getCursorReferenced =
+      _clang_getCursorReferenced_ptr
+          .asFunction<_dart_clang_getCursorReferenced>();
 
   /// For a cursor that is either a reference to or a declaration of some
   /// entity, retrieve a cursor that describes the definition of that entity.
   CXCursor clang_getCursorDefinition(
     CXCursor arg0,
   ) {
-    return (_clang_getCursorDefinition ??=
-        _lookup<ffi.NativeFunction<_c_clang_getCursorDefinition>>(
-                'clang_getCursorDefinition')
-            .asFunction<_dart_clang_getCursorDefinition>())(
+    return _clang_getCursorDefinition(
       arg0,
     );
   }
 
-  _dart_clang_getCursorDefinition? _clang_getCursorDefinition;
+  late final _clang_getCursorDefinition_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_getCursorDefinition>>(
+          'clang_getCursorDefinition');
+  late final _dart_clang_getCursorDefinition _clang_getCursorDefinition =
+      _clang_getCursorDefinition_ptr
+          .asFunction<_dart_clang_getCursorDefinition>();
 
   /// Determine whether the declaration pointed to by this cursor is also a
   /// definition of that entity.
   int clang_isCursorDefinition(
     CXCursor arg0,
   ) {
-    return (_clang_isCursorDefinition ??=
-        _lookup<ffi.NativeFunction<_c_clang_isCursorDefinition>>(
-                'clang_isCursorDefinition')
-            .asFunction<_dart_clang_isCursorDefinition>())(
+    return _clang_isCursorDefinition(
       arg0,
     );
   }
 
-  _dart_clang_isCursorDefinition? _clang_isCursorDefinition;
+  late final _clang_isCursorDefinition_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_isCursorDefinition>>(
+          'clang_isCursorDefinition');
+  late final _dart_clang_isCursorDefinition _clang_isCursorDefinition =
+      _clang_isCursorDefinition_ptr
+          .asFunction<_dart_clang_isCursorDefinition>();
 
   /// Retrieve the canonical cursor corresponding to the given cursor.
   CXCursor clang_getCanonicalCursor(
     CXCursor arg0,
   ) {
-    return (_clang_getCanonicalCursor ??=
-        _lookup<ffi.NativeFunction<_c_clang_getCanonicalCursor>>(
-                'clang_getCanonicalCursor')
-            .asFunction<_dart_clang_getCanonicalCursor>())(
+    return _clang_getCanonicalCursor(
       arg0,
     );
   }
 
-  _dart_clang_getCanonicalCursor? _clang_getCanonicalCursor;
+  late final _clang_getCanonicalCursor_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_getCanonicalCursor>>(
+          'clang_getCanonicalCursor');
+  late final _dart_clang_getCanonicalCursor _clang_getCanonicalCursor =
+      _clang_getCanonicalCursor_ptr
+          .asFunction<_dart_clang_getCanonicalCursor>();
 
   /// If the cursor points to a selector identifier in an Objective-C method or
   /// message expression, this returns the selector index.
   int clang_Cursor_getObjCSelectorIndex(
     CXCursor arg0,
   ) {
-    return (_clang_Cursor_getObjCSelectorIndex ??=
-        _lookup<ffi.NativeFunction<_c_clang_Cursor_getObjCSelectorIndex>>(
-                'clang_Cursor_getObjCSelectorIndex')
-            .asFunction<_dart_clang_Cursor_getObjCSelectorIndex>())(
+    return _clang_Cursor_getObjCSelectorIndex(
       arg0,
     );
   }
 
-  _dart_clang_Cursor_getObjCSelectorIndex? _clang_Cursor_getObjCSelectorIndex;
+  late final _clang_Cursor_getObjCSelectorIndex_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_Cursor_getObjCSelectorIndex>>(
+          'clang_Cursor_getObjCSelectorIndex');
+  late final _dart_clang_Cursor_getObjCSelectorIndex
+      _clang_Cursor_getObjCSelectorIndex =
+      _clang_Cursor_getObjCSelectorIndex_ptr
+          .asFunction<_dart_clang_Cursor_getObjCSelectorIndex>();
 
   /// Given a cursor pointing to a C++ method call or an Objective-C message,
   /// returns non-zero if the method/message is "dynamic", meaning:
   int clang_Cursor_isDynamicCall(
     CXCursor C,
   ) {
-    return (_clang_Cursor_isDynamicCall ??=
-        _lookup<ffi.NativeFunction<_c_clang_Cursor_isDynamicCall>>(
-                'clang_Cursor_isDynamicCall')
-            .asFunction<_dart_clang_Cursor_isDynamicCall>())(
+    return _clang_Cursor_isDynamicCall(
       C,
     );
   }
 
-  _dart_clang_Cursor_isDynamicCall? _clang_Cursor_isDynamicCall;
+  late final _clang_Cursor_isDynamicCall_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_Cursor_isDynamicCall>>(
+          'clang_Cursor_isDynamicCall');
+  late final _dart_clang_Cursor_isDynamicCall _clang_Cursor_isDynamicCall =
+      _clang_Cursor_isDynamicCall_ptr
+          .asFunction<_dart_clang_Cursor_isDynamicCall>();
 
   /// Given a cursor pointing to an Objective-C message or property reference,
   /// or C++ method call, returns the CXType of the receiver.
   CXType clang_Cursor_getReceiverType(
     CXCursor C,
   ) {
-    return (_clang_Cursor_getReceiverType ??=
-        _lookup<ffi.NativeFunction<_c_clang_Cursor_getReceiverType>>(
-                'clang_Cursor_getReceiverType')
-            .asFunction<_dart_clang_Cursor_getReceiverType>())(
+    return _clang_Cursor_getReceiverType(
       C,
     );
   }
 
-  _dart_clang_Cursor_getReceiverType? _clang_Cursor_getReceiverType;
+  late final _clang_Cursor_getReceiverType_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_Cursor_getReceiverType>>(
+          'clang_Cursor_getReceiverType');
+  late final _dart_clang_Cursor_getReceiverType _clang_Cursor_getReceiverType =
+      _clang_Cursor_getReceiverType_ptr
+          .asFunction<_dart_clang_Cursor_getReceiverType>();
 
   /// Given a cursor that represents a property declaration, return the
   /// associated property attributes. The bits are formed from
@@ -3423,49 +3790,55 @@
     CXCursor C,
     int reserved,
   ) {
-    return (_clang_Cursor_getObjCPropertyAttributes ??=
-        _lookup<ffi.NativeFunction<_c_clang_Cursor_getObjCPropertyAttributes>>(
-                'clang_Cursor_getObjCPropertyAttributes')
-            .asFunction<_dart_clang_Cursor_getObjCPropertyAttributes>())(
+    return _clang_Cursor_getObjCPropertyAttributes(
       C,
       reserved,
     );
   }
 
-  _dart_clang_Cursor_getObjCPropertyAttributes?
-      _clang_Cursor_getObjCPropertyAttributes;
+  late final _clang_Cursor_getObjCPropertyAttributes_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_Cursor_getObjCPropertyAttributes>>(
+          'clang_Cursor_getObjCPropertyAttributes');
+  late final _dart_clang_Cursor_getObjCPropertyAttributes
+      _clang_Cursor_getObjCPropertyAttributes =
+      _clang_Cursor_getObjCPropertyAttributes_ptr
+          .asFunction<_dart_clang_Cursor_getObjCPropertyAttributes>();
 
   /// Given a cursor that represents a property declaration, return the name of
   /// the method that implements the getter.
   CXString clang_Cursor_getObjCPropertyGetterName(
     CXCursor C,
   ) {
-    return (_clang_Cursor_getObjCPropertyGetterName ??=
-        _lookup<ffi.NativeFunction<_c_clang_Cursor_getObjCPropertyGetterName>>(
-                'clang_Cursor_getObjCPropertyGetterName')
-            .asFunction<_dart_clang_Cursor_getObjCPropertyGetterName>())(
+    return _clang_Cursor_getObjCPropertyGetterName(
       C,
     );
   }
 
-  _dart_clang_Cursor_getObjCPropertyGetterName?
-      _clang_Cursor_getObjCPropertyGetterName;
+  late final _clang_Cursor_getObjCPropertyGetterName_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_Cursor_getObjCPropertyGetterName>>(
+          'clang_Cursor_getObjCPropertyGetterName');
+  late final _dart_clang_Cursor_getObjCPropertyGetterName
+      _clang_Cursor_getObjCPropertyGetterName =
+      _clang_Cursor_getObjCPropertyGetterName_ptr
+          .asFunction<_dart_clang_Cursor_getObjCPropertyGetterName>();
 
   /// Given a cursor that represents a property declaration, return the name of
   /// the method that implements the setter, if any.
   CXString clang_Cursor_getObjCPropertySetterName(
     CXCursor C,
   ) {
-    return (_clang_Cursor_getObjCPropertySetterName ??=
-        _lookup<ffi.NativeFunction<_c_clang_Cursor_getObjCPropertySetterName>>(
-                'clang_Cursor_getObjCPropertySetterName')
-            .asFunction<_dart_clang_Cursor_getObjCPropertySetterName>())(
+    return _clang_Cursor_getObjCPropertySetterName(
       C,
     );
   }
 
-  _dart_clang_Cursor_getObjCPropertySetterName?
-      _clang_Cursor_getObjCPropertySetterName;
+  late final _clang_Cursor_getObjCPropertySetterName_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_Cursor_getObjCPropertySetterName>>(
+          'clang_Cursor_getObjCPropertySetterName');
+  late final _dart_clang_Cursor_getObjCPropertySetterName
+      _clang_Cursor_getObjCPropertySetterName =
+      _clang_Cursor_getObjCPropertySetterName_ptr
+          .asFunction<_dart_clang_Cursor_getObjCPropertySetterName>();
 
   /// Given a cursor that represents an Objective-C method or parameter
   /// declaration, return the associated Objective-C qualifiers for the return
@@ -3474,15 +3847,18 @@
   int clang_Cursor_getObjCDeclQualifiers(
     CXCursor C,
   ) {
-    return (_clang_Cursor_getObjCDeclQualifiers ??=
-        _lookup<ffi.NativeFunction<_c_clang_Cursor_getObjCDeclQualifiers>>(
-                'clang_Cursor_getObjCDeclQualifiers')
-            .asFunction<_dart_clang_Cursor_getObjCDeclQualifiers>())(
+    return _clang_Cursor_getObjCDeclQualifiers(
       C,
     );
   }
 
-  _dart_clang_Cursor_getObjCDeclQualifiers? _clang_Cursor_getObjCDeclQualifiers;
+  late final _clang_Cursor_getObjCDeclQualifiers_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_Cursor_getObjCDeclQualifiers>>(
+          'clang_Cursor_getObjCDeclQualifiers');
+  late final _dart_clang_Cursor_getObjCDeclQualifiers
+      _clang_Cursor_getObjCDeclQualifiers =
+      _clang_Cursor_getObjCDeclQualifiers_ptr
+          .asFunction<_dart_clang_Cursor_getObjCDeclQualifiers>();
 
   /// Given a cursor that represents an Objective-C method or property
   /// declaration, return non-zero if the declaration was affected by
@@ -3491,29 +3867,32 @@
   int clang_Cursor_isObjCOptional(
     CXCursor C,
   ) {
-    return (_clang_Cursor_isObjCOptional ??=
-        _lookup<ffi.NativeFunction<_c_clang_Cursor_isObjCOptional>>(
-                'clang_Cursor_isObjCOptional')
-            .asFunction<_dart_clang_Cursor_isObjCOptional>())(
+    return _clang_Cursor_isObjCOptional(
       C,
     );
   }
 
-  _dart_clang_Cursor_isObjCOptional? _clang_Cursor_isObjCOptional;
+  late final _clang_Cursor_isObjCOptional_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_Cursor_isObjCOptional>>(
+          'clang_Cursor_isObjCOptional');
+  late final _dart_clang_Cursor_isObjCOptional _clang_Cursor_isObjCOptional =
+      _clang_Cursor_isObjCOptional_ptr
+          .asFunction<_dart_clang_Cursor_isObjCOptional>();
 
   /// Returns non-zero if the given cursor is a variadic function or method.
   int clang_Cursor_isVariadic(
     CXCursor C,
   ) {
-    return (_clang_Cursor_isVariadic ??=
-        _lookup<ffi.NativeFunction<_c_clang_Cursor_isVariadic>>(
-                'clang_Cursor_isVariadic')
-            .asFunction<_dart_clang_Cursor_isVariadic>())(
+    return _clang_Cursor_isVariadic(
       C,
     );
   }
 
-  _dart_clang_Cursor_isVariadic? _clang_Cursor_isVariadic;
+  late final _clang_Cursor_isVariadic_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_Cursor_isVariadic>>(
+          'clang_Cursor_isVariadic');
+  late final _dart_clang_Cursor_isVariadic _clang_Cursor_isVariadic =
+      _clang_Cursor_isVariadic_ptr.asFunction<_dart_clang_Cursor_isVariadic>();
 
   /// Returns non-zero if the given cursor points to a symbol marked with
   /// external_source_symbol attribute.
@@ -3523,10 +3902,7 @@
     ffi.Pointer<CXString> definedIn,
     ffi.Pointer<ffi.Uint32> isGenerated,
   ) {
-    return (_clang_Cursor_isExternalSymbol ??=
-        _lookup<ffi.NativeFunction<_c_clang_Cursor_isExternalSymbol>>(
-                'clang_Cursor_isExternalSymbol')
-            .asFunction<_dart_clang_Cursor_isExternalSymbol>())(
+    return _clang_Cursor_isExternalSymbol(
       C,
       language,
       definedIn,
@@ -3534,7 +3910,12 @@
     );
   }
 
-  _dart_clang_Cursor_isExternalSymbol? _clang_Cursor_isExternalSymbol;
+  late final _clang_Cursor_isExternalSymbol_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_Cursor_isExternalSymbol>>(
+          'clang_Cursor_isExternalSymbol');
+  late final _dart_clang_Cursor_isExternalSymbol
+      _clang_Cursor_isExternalSymbol = _clang_Cursor_isExternalSymbol_ptr
+          .asFunction<_dart_clang_Cursor_isExternalSymbol>();
 
   /// Given a cursor that represents a declaration, return the associated
   /// comment's source range. The range may include multiple consecutive
@@ -3542,103 +3923,116 @@
   CXSourceRange clang_Cursor_getCommentRange(
     CXCursor C,
   ) {
-    return (_clang_Cursor_getCommentRange ??=
-        _lookup<ffi.NativeFunction<_c_clang_Cursor_getCommentRange>>(
-                'clang_Cursor_getCommentRange')
-            .asFunction<_dart_clang_Cursor_getCommentRange>())(
+    return _clang_Cursor_getCommentRange(
       C,
     );
   }
 
-  _dart_clang_Cursor_getCommentRange? _clang_Cursor_getCommentRange;
+  late final _clang_Cursor_getCommentRange_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_Cursor_getCommentRange>>(
+          'clang_Cursor_getCommentRange');
+  late final _dart_clang_Cursor_getCommentRange _clang_Cursor_getCommentRange =
+      _clang_Cursor_getCommentRange_ptr
+          .asFunction<_dart_clang_Cursor_getCommentRange>();
 
   /// Given a cursor that represents a declaration, return the associated
   /// comment text, including comment markers.
   CXString clang_Cursor_getRawCommentText(
     CXCursor C,
   ) {
-    return (_clang_Cursor_getRawCommentText ??=
-        _lookup<ffi.NativeFunction<_c_clang_Cursor_getRawCommentText>>(
-                'clang_Cursor_getRawCommentText')
-            .asFunction<_dart_clang_Cursor_getRawCommentText>())(
+    return _clang_Cursor_getRawCommentText(
       C,
     );
   }
 
-  _dart_clang_Cursor_getRawCommentText? _clang_Cursor_getRawCommentText;
+  late final _clang_Cursor_getRawCommentText_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_Cursor_getRawCommentText>>(
+          'clang_Cursor_getRawCommentText');
+  late final _dart_clang_Cursor_getRawCommentText
+      _clang_Cursor_getRawCommentText = _clang_Cursor_getRawCommentText_ptr
+          .asFunction<_dart_clang_Cursor_getRawCommentText>();
 
   /// Given a cursor that represents a documentable entity (e.g., declaration),
   /// return the associated first paragraph.
   CXString clang_Cursor_getBriefCommentText(
     CXCursor C,
   ) {
-    return (_clang_Cursor_getBriefCommentText ??=
-        _lookup<ffi.NativeFunction<_c_clang_Cursor_getBriefCommentText>>(
-                'clang_Cursor_getBriefCommentText')
-            .asFunction<_dart_clang_Cursor_getBriefCommentText>())(
+    return _clang_Cursor_getBriefCommentText(
       C,
     );
   }
 
-  _dart_clang_Cursor_getBriefCommentText? _clang_Cursor_getBriefCommentText;
+  late final _clang_Cursor_getBriefCommentText_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_Cursor_getBriefCommentText>>(
+          'clang_Cursor_getBriefCommentText');
+  late final _dart_clang_Cursor_getBriefCommentText
+      _clang_Cursor_getBriefCommentText = _clang_Cursor_getBriefCommentText_ptr
+          .asFunction<_dart_clang_Cursor_getBriefCommentText>();
 
   /// Retrieve the CXString representing the mangled name of the cursor.
   CXString clang_Cursor_getMangling(
     CXCursor arg0,
   ) {
-    return (_clang_Cursor_getMangling ??=
-        _lookup<ffi.NativeFunction<_c_clang_Cursor_getMangling>>(
-                'clang_Cursor_getMangling')
-            .asFunction<_dart_clang_Cursor_getMangling>())(
+    return _clang_Cursor_getMangling(
       arg0,
     );
   }
 
-  _dart_clang_Cursor_getMangling? _clang_Cursor_getMangling;
+  late final _clang_Cursor_getMangling_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_Cursor_getMangling>>(
+          'clang_Cursor_getMangling');
+  late final _dart_clang_Cursor_getMangling _clang_Cursor_getMangling =
+      _clang_Cursor_getMangling_ptr
+          .asFunction<_dart_clang_Cursor_getMangling>();
 
   /// Retrieve the CXStrings representing the mangled symbols of the C++
   /// constructor or destructor at the cursor.
   ffi.Pointer<CXStringSet> clang_Cursor_getCXXManglings(
     CXCursor arg0,
   ) {
-    return (_clang_Cursor_getCXXManglings ??=
-        _lookup<ffi.NativeFunction<_c_clang_Cursor_getCXXManglings>>(
-                'clang_Cursor_getCXXManglings')
-            .asFunction<_dart_clang_Cursor_getCXXManglings>())(
+    return _clang_Cursor_getCXXManglings(
       arg0,
     );
   }
 
-  _dart_clang_Cursor_getCXXManglings? _clang_Cursor_getCXXManglings;
+  late final _clang_Cursor_getCXXManglings_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_Cursor_getCXXManglings>>(
+          'clang_Cursor_getCXXManglings');
+  late final _dart_clang_Cursor_getCXXManglings _clang_Cursor_getCXXManglings =
+      _clang_Cursor_getCXXManglings_ptr
+          .asFunction<_dart_clang_Cursor_getCXXManglings>();
 
   /// Retrieve the CXStrings representing the mangled symbols of the ObjC class
   /// interface or implementation at the cursor.
   ffi.Pointer<CXStringSet> clang_Cursor_getObjCManglings(
     CXCursor arg0,
   ) {
-    return (_clang_Cursor_getObjCManglings ??=
-        _lookup<ffi.NativeFunction<_c_clang_Cursor_getObjCManglings>>(
-                'clang_Cursor_getObjCManglings')
-            .asFunction<_dart_clang_Cursor_getObjCManglings>())(
+    return _clang_Cursor_getObjCManglings(
       arg0,
     );
   }
 
-  _dart_clang_Cursor_getObjCManglings? _clang_Cursor_getObjCManglings;
+  late final _clang_Cursor_getObjCManglings_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_Cursor_getObjCManglings>>(
+          'clang_Cursor_getObjCManglings');
+  late final _dart_clang_Cursor_getObjCManglings
+      _clang_Cursor_getObjCManglings = _clang_Cursor_getObjCManglings_ptr
+          .asFunction<_dart_clang_Cursor_getObjCManglings>();
 
   /// Given a CXCursor_ModuleImportDecl cursor, return the associated module.
   ffi.Pointer<ffi.Void> clang_Cursor_getModule(
     CXCursor C,
   ) {
-    return (_clang_Cursor_getModule ??=
-        _lookup<ffi.NativeFunction<_c_clang_Cursor_getModule>>(
-                'clang_Cursor_getModule')
-            .asFunction<_dart_clang_Cursor_getModule>())(
+    return _clang_Cursor_getModule(
       C,
     );
   }
 
-  _dart_clang_Cursor_getModule? _clang_Cursor_getModule;
+  late final _clang_Cursor_getModule_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_Cursor_getModule>>(
+          'clang_Cursor_getModule');
+  late final _dart_clang_Cursor_getModule _clang_Cursor_getModule =
+      _clang_Cursor_getModule_ptr.asFunction<_dart_clang_Cursor_getModule>();
 
   /// Given a CXFile header file, return the module that contains it, if one
   /// exists.
@@ -3646,104 +4040,114 @@
     ffi.Pointer<CXTranslationUnitImpl> arg0,
     ffi.Pointer<ffi.Void> arg1,
   ) {
-    return (_clang_getModuleForFile ??=
-        _lookup<ffi.NativeFunction<_c_clang_getModuleForFile>>(
-                'clang_getModuleForFile')
-            .asFunction<_dart_clang_getModuleForFile>())(
+    return _clang_getModuleForFile(
       arg0,
       arg1,
     );
   }
 
-  _dart_clang_getModuleForFile? _clang_getModuleForFile;
+  late final _clang_getModuleForFile_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_getModuleForFile>>(
+          'clang_getModuleForFile');
+  late final _dart_clang_getModuleForFile _clang_getModuleForFile =
+      _clang_getModuleForFile_ptr.asFunction<_dart_clang_getModuleForFile>();
 
   /// Returns the module file where the provided module object came from.
   ffi.Pointer<ffi.Void> clang_Module_getASTFile(
     ffi.Pointer<ffi.Void> Module,
   ) {
-    return (_clang_Module_getASTFile ??=
-        _lookup<ffi.NativeFunction<_c_clang_Module_getASTFile>>(
-                'clang_Module_getASTFile')
-            .asFunction<_dart_clang_Module_getASTFile>())(
+    return _clang_Module_getASTFile(
       Module,
     );
   }
 
-  _dart_clang_Module_getASTFile? _clang_Module_getASTFile;
+  late final _clang_Module_getASTFile_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_Module_getASTFile>>(
+          'clang_Module_getASTFile');
+  late final _dart_clang_Module_getASTFile _clang_Module_getASTFile =
+      _clang_Module_getASTFile_ptr.asFunction<_dart_clang_Module_getASTFile>();
 
   /// Returns the parent of a sub-module or NULL if the given module is
   /// top-level, e.g. for 'std.vector' it will return the 'std' module.
   ffi.Pointer<ffi.Void> clang_Module_getParent(
     ffi.Pointer<ffi.Void> Module,
   ) {
-    return (_clang_Module_getParent ??=
-        _lookup<ffi.NativeFunction<_c_clang_Module_getParent>>(
-                'clang_Module_getParent')
-            .asFunction<_dart_clang_Module_getParent>())(
+    return _clang_Module_getParent(
       Module,
     );
   }
 
-  _dart_clang_Module_getParent? _clang_Module_getParent;
+  late final _clang_Module_getParent_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_Module_getParent>>(
+          'clang_Module_getParent');
+  late final _dart_clang_Module_getParent _clang_Module_getParent =
+      _clang_Module_getParent_ptr.asFunction<_dart_clang_Module_getParent>();
 
   /// Returns the name of the module, e.g. for the 'std.vector' sub-module it
   /// will return "vector".
   CXString clang_Module_getName(
     ffi.Pointer<ffi.Void> Module,
   ) {
-    return (_clang_Module_getName ??=
-        _lookup<ffi.NativeFunction<_c_clang_Module_getName>>(
-                'clang_Module_getName')
-            .asFunction<_dart_clang_Module_getName>())(
+    return _clang_Module_getName(
       Module,
     );
   }
 
-  _dart_clang_Module_getName? _clang_Module_getName;
+  late final _clang_Module_getName_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_Module_getName>>(
+          'clang_Module_getName');
+  late final _dart_clang_Module_getName _clang_Module_getName =
+      _clang_Module_getName_ptr.asFunction<_dart_clang_Module_getName>();
 
   /// Returns the full name of the module, e.g. "std.vector".
   CXString clang_Module_getFullName(
     ffi.Pointer<ffi.Void> Module,
   ) {
-    return (_clang_Module_getFullName ??=
-        _lookup<ffi.NativeFunction<_c_clang_Module_getFullName>>(
-                'clang_Module_getFullName')
-            .asFunction<_dart_clang_Module_getFullName>())(
+    return _clang_Module_getFullName(
       Module,
     );
   }
 
-  _dart_clang_Module_getFullName? _clang_Module_getFullName;
+  late final _clang_Module_getFullName_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_Module_getFullName>>(
+          'clang_Module_getFullName');
+  late final _dart_clang_Module_getFullName _clang_Module_getFullName =
+      _clang_Module_getFullName_ptr
+          .asFunction<_dart_clang_Module_getFullName>();
 
   /// Returns non-zero if the module is a system one.
   int clang_Module_isSystem(
     ffi.Pointer<ffi.Void> Module,
   ) {
-    return (_clang_Module_isSystem ??=
-        _lookup<ffi.NativeFunction<_c_clang_Module_isSystem>>(
-                'clang_Module_isSystem')
-            .asFunction<_dart_clang_Module_isSystem>())(
+    return _clang_Module_isSystem(
       Module,
     );
   }
 
-  _dart_clang_Module_isSystem? _clang_Module_isSystem;
+  late final _clang_Module_isSystem_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_Module_isSystem>>(
+          'clang_Module_isSystem');
+  late final _dart_clang_Module_isSystem _clang_Module_isSystem =
+      _clang_Module_isSystem_ptr.asFunction<_dart_clang_Module_isSystem>();
 
   /// Returns the number of top level headers associated with this module.
   int clang_Module_getNumTopLevelHeaders(
     ffi.Pointer<CXTranslationUnitImpl> arg0,
     ffi.Pointer<ffi.Void> Module,
   ) {
-    return (_clang_Module_getNumTopLevelHeaders ??=
-        _lookup<ffi.NativeFunction<_c_clang_Module_getNumTopLevelHeaders>>(
-                'clang_Module_getNumTopLevelHeaders')
-            .asFunction<_dart_clang_Module_getNumTopLevelHeaders>())(
+    return _clang_Module_getNumTopLevelHeaders(
       arg0,
       Module,
     );
   }
 
-  _dart_clang_Module_getNumTopLevelHeaders? _clang_Module_getNumTopLevelHeaders;
+  late final _clang_Module_getNumTopLevelHeaders_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_Module_getNumTopLevelHeaders>>(
+          'clang_Module_getNumTopLevelHeaders');
+  late final _dart_clang_Module_getNumTopLevelHeaders
+      _clang_Module_getNumTopLevelHeaders =
+      _clang_Module_getNumTopLevelHeaders_ptr
+          .asFunction<_dart_clang_Module_getNumTopLevelHeaders>();
 
   /// Returns the specified top level header associated with the module.
   ffi.Pointer<ffi.Void> clang_Module_getTopLevelHeader(
@@ -3751,137 +4155,153 @@
     ffi.Pointer<ffi.Void> Module,
     int Index,
   ) {
-    return (_clang_Module_getTopLevelHeader ??=
-        _lookup<ffi.NativeFunction<_c_clang_Module_getTopLevelHeader>>(
-                'clang_Module_getTopLevelHeader')
-            .asFunction<_dart_clang_Module_getTopLevelHeader>())(
+    return _clang_Module_getTopLevelHeader(
       arg0,
       Module,
       Index,
     );
   }
 
-  _dart_clang_Module_getTopLevelHeader? _clang_Module_getTopLevelHeader;
+  late final _clang_Module_getTopLevelHeader_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_Module_getTopLevelHeader>>(
+          'clang_Module_getTopLevelHeader');
+  late final _dart_clang_Module_getTopLevelHeader
+      _clang_Module_getTopLevelHeader = _clang_Module_getTopLevelHeader_ptr
+          .asFunction<_dart_clang_Module_getTopLevelHeader>();
 
   /// Determine if a C++ constructor is a converting constructor.
   int clang_CXXConstructor_isConvertingConstructor(
     CXCursor C,
   ) {
-    return (_clang_CXXConstructor_isConvertingConstructor ??= _lookup<
-                ffi.NativeFunction<
-                    _c_clang_CXXConstructor_isConvertingConstructor>>(
-            'clang_CXXConstructor_isConvertingConstructor')
-        .asFunction<_dart_clang_CXXConstructor_isConvertingConstructor>())(
+    return _clang_CXXConstructor_isConvertingConstructor(
       C,
     );
   }
 
-  _dart_clang_CXXConstructor_isConvertingConstructor?
-      _clang_CXXConstructor_isConvertingConstructor;
+  late final _clang_CXXConstructor_isConvertingConstructor_ptr = _lookup<
+          ffi.NativeFunction<_c_clang_CXXConstructor_isConvertingConstructor>>(
+      'clang_CXXConstructor_isConvertingConstructor');
+  late final _dart_clang_CXXConstructor_isConvertingConstructor
+      _clang_CXXConstructor_isConvertingConstructor =
+      _clang_CXXConstructor_isConvertingConstructor_ptr
+          .asFunction<_dart_clang_CXXConstructor_isConvertingConstructor>();
 
   /// Determine if a C++ constructor is a copy constructor.
   int clang_CXXConstructor_isCopyConstructor(
     CXCursor C,
   ) {
-    return (_clang_CXXConstructor_isCopyConstructor ??=
-        _lookup<ffi.NativeFunction<_c_clang_CXXConstructor_isCopyConstructor>>(
-                'clang_CXXConstructor_isCopyConstructor')
-            .asFunction<_dart_clang_CXXConstructor_isCopyConstructor>())(
+    return _clang_CXXConstructor_isCopyConstructor(
       C,
     );
   }
 
-  _dart_clang_CXXConstructor_isCopyConstructor?
-      _clang_CXXConstructor_isCopyConstructor;
+  late final _clang_CXXConstructor_isCopyConstructor_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_CXXConstructor_isCopyConstructor>>(
+          'clang_CXXConstructor_isCopyConstructor');
+  late final _dart_clang_CXXConstructor_isCopyConstructor
+      _clang_CXXConstructor_isCopyConstructor =
+      _clang_CXXConstructor_isCopyConstructor_ptr
+          .asFunction<_dart_clang_CXXConstructor_isCopyConstructor>();
 
   /// Determine if a C++ constructor is the default constructor.
   int clang_CXXConstructor_isDefaultConstructor(
     CXCursor C,
   ) {
-    return (_clang_CXXConstructor_isDefaultConstructor ??= _lookup<
-                ffi.NativeFunction<
-                    _c_clang_CXXConstructor_isDefaultConstructor>>(
-            'clang_CXXConstructor_isDefaultConstructor')
-        .asFunction<_dart_clang_CXXConstructor_isDefaultConstructor>())(
+    return _clang_CXXConstructor_isDefaultConstructor(
       C,
     );
   }
 
-  _dart_clang_CXXConstructor_isDefaultConstructor?
-      _clang_CXXConstructor_isDefaultConstructor;
+  late final _clang_CXXConstructor_isDefaultConstructor_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_CXXConstructor_isDefaultConstructor>>(
+          'clang_CXXConstructor_isDefaultConstructor');
+  late final _dart_clang_CXXConstructor_isDefaultConstructor
+      _clang_CXXConstructor_isDefaultConstructor =
+      _clang_CXXConstructor_isDefaultConstructor_ptr
+          .asFunction<_dart_clang_CXXConstructor_isDefaultConstructor>();
 
   /// Determine if a C++ constructor is a move constructor.
   int clang_CXXConstructor_isMoveConstructor(
     CXCursor C,
   ) {
-    return (_clang_CXXConstructor_isMoveConstructor ??=
-        _lookup<ffi.NativeFunction<_c_clang_CXXConstructor_isMoveConstructor>>(
-                'clang_CXXConstructor_isMoveConstructor')
-            .asFunction<_dart_clang_CXXConstructor_isMoveConstructor>())(
+    return _clang_CXXConstructor_isMoveConstructor(
       C,
     );
   }
 
-  _dart_clang_CXXConstructor_isMoveConstructor?
-      _clang_CXXConstructor_isMoveConstructor;
+  late final _clang_CXXConstructor_isMoveConstructor_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_CXXConstructor_isMoveConstructor>>(
+          'clang_CXXConstructor_isMoveConstructor');
+  late final _dart_clang_CXXConstructor_isMoveConstructor
+      _clang_CXXConstructor_isMoveConstructor =
+      _clang_CXXConstructor_isMoveConstructor_ptr
+          .asFunction<_dart_clang_CXXConstructor_isMoveConstructor>();
 
   /// Determine if a C++ field is declared 'mutable'.
   int clang_CXXField_isMutable(
     CXCursor C,
   ) {
-    return (_clang_CXXField_isMutable ??=
-        _lookup<ffi.NativeFunction<_c_clang_CXXField_isMutable>>(
-                'clang_CXXField_isMutable')
-            .asFunction<_dart_clang_CXXField_isMutable>())(
+    return _clang_CXXField_isMutable(
       C,
     );
   }
 
-  _dart_clang_CXXField_isMutable? _clang_CXXField_isMutable;
+  late final _clang_CXXField_isMutable_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_CXXField_isMutable>>(
+          'clang_CXXField_isMutable');
+  late final _dart_clang_CXXField_isMutable _clang_CXXField_isMutable =
+      _clang_CXXField_isMutable_ptr
+          .asFunction<_dart_clang_CXXField_isMutable>();
 
   /// Determine if a C++ method is declared '= default'.
   int clang_CXXMethod_isDefaulted(
     CXCursor C,
   ) {
-    return (_clang_CXXMethod_isDefaulted ??=
-        _lookup<ffi.NativeFunction<_c_clang_CXXMethod_isDefaulted>>(
-                'clang_CXXMethod_isDefaulted')
-            .asFunction<_dart_clang_CXXMethod_isDefaulted>())(
+    return _clang_CXXMethod_isDefaulted(
       C,
     );
   }
 
-  _dart_clang_CXXMethod_isDefaulted? _clang_CXXMethod_isDefaulted;
+  late final _clang_CXXMethod_isDefaulted_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_CXXMethod_isDefaulted>>(
+          'clang_CXXMethod_isDefaulted');
+  late final _dart_clang_CXXMethod_isDefaulted _clang_CXXMethod_isDefaulted =
+      _clang_CXXMethod_isDefaulted_ptr
+          .asFunction<_dart_clang_CXXMethod_isDefaulted>();
 
   /// Determine if a C++ member function or member function template is pure
   /// virtual.
   int clang_CXXMethod_isPureVirtual(
     CXCursor C,
   ) {
-    return (_clang_CXXMethod_isPureVirtual ??=
-        _lookup<ffi.NativeFunction<_c_clang_CXXMethod_isPureVirtual>>(
-                'clang_CXXMethod_isPureVirtual')
-            .asFunction<_dart_clang_CXXMethod_isPureVirtual>())(
+    return _clang_CXXMethod_isPureVirtual(
       C,
     );
   }
 
-  _dart_clang_CXXMethod_isPureVirtual? _clang_CXXMethod_isPureVirtual;
+  late final _clang_CXXMethod_isPureVirtual_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_CXXMethod_isPureVirtual>>(
+          'clang_CXXMethod_isPureVirtual');
+  late final _dart_clang_CXXMethod_isPureVirtual
+      _clang_CXXMethod_isPureVirtual = _clang_CXXMethod_isPureVirtual_ptr
+          .asFunction<_dart_clang_CXXMethod_isPureVirtual>();
 
   /// Determine if a C++ member function or member function template is declared
   /// 'static'.
   int clang_CXXMethod_isStatic(
     CXCursor C,
   ) {
-    return (_clang_CXXMethod_isStatic ??=
-        _lookup<ffi.NativeFunction<_c_clang_CXXMethod_isStatic>>(
-                'clang_CXXMethod_isStatic')
-            .asFunction<_dart_clang_CXXMethod_isStatic>())(
+    return _clang_CXXMethod_isStatic(
       C,
     );
   }
 
-  _dart_clang_CXXMethod_isStatic? _clang_CXXMethod_isStatic;
+  late final _clang_CXXMethod_isStatic_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_CXXMethod_isStatic>>(
+          'clang_CXXMethod_isStatic');
+  late final _dart_clang_CXXMethod_isStatic _clang_CXXMethod_isStatic =
+      _clang_CXXMethod_isStatic_ptr
+          .asFunction<_dart_clang_CXXMethod_isStatic>();
 
   /// Determine if a C++ member function or member function template is
   /// explicitly declared 'virtual' or if it overrides a virtual method from one
@@ -3889,74 +4309,82 @@
   int clang_CXXMethod_isVirtual(
     CXCursor C,
   ) {
-    return (_clang_CXXMethod_isVirtual ??=
-        _lookup<ffi.NativeFunction<_c_clang_CXXMethod_isVirtual>>(
-                'clang_CXXMethod_isVirtual')
-            .asFunction<_dart_clang_CXXMethod_isVirtual>())(
+    return _clang_CXXMethod_isVirtual(
       C,
     );
   }
 
-  _dart_clang_CXXMethod_isVirtual? _clang_CXXMethod_isVirtual;
+  late final _clang_CXXMethod_isVirtual_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_CXXMethod_isVirtual>>(
+          'clang_CXXMethod_isVirtual');
+  late final _dart_clang_CXXMethod_isVirtual _clang_CXXMethod_isVirtual =
+      _clang_CXXMethod_isVirtual_ptr
+          .asFunction<_dart_clang_CXXMethod_isVirtual>();
 
   /// Determine if a C++ record is abstract, i.e. whether a class or struct has
   /// a pure virtual member function.
   int clang_CXXRecord_isAbstract(
     CXCursor C,
   ) {
-    return (_clang_CXXRecord_isAbstract ??=
-        _lookup<ffi.NativeFunction<_c_clang_CXXRecord_isAbstract>>(
-                'clang_CXXRecord_isAbstract')
-            .asFunction<_dart_clang_CXXRecord_isAbstract>())(
+    return _clang_CXXRecord_isAbstract(
       C,
     );
   }
 
-  _dart_clang_CXXRecord_isAbstract? _clang_CXXRecord_isAbstract;
+  late final _clang_CXXRecord_isAbstract_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_CXXRecord_isAbstract>>(
+          'clang_CXXRecord_isAbstract');
+  late final _dart_clang_CXXRecord_isAbstract _clang_CXXRecord_isAbstract =
+      _clang_CXXRecord_isAbstract_ptr
+          .asFunction<_dart_clang_CXXRecord_isAbstract>();
 
   /// Determine if an enum declaration refers to a scoped enum.
   int clang_EnumDecl_isScoped(
     CXCursor C,
   ) {
-    return (_clang_EnumDecl_isScoped ??=
-        _lookup<ffi.NativeFunction<_c_clang_EnumDecl_isScoped>>(
-                'clang_EnumDecl_isScoped')
-            .asFunction<_dart_clang_EnumDecl_isScoped>())(
+    return _clang_EnumDecl_isScoped(
       C,
     );
   }
 
-  _dart_clang_EnumDecl_isScoped? _clang_EnumDecl_isScoped;
+  late final _clang_EnumDecl_isScoped_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_EnumDecl_isScoped>>(
+          'clang_EnumDecl_isScoped');
+  late final _dart_clang_EnumDecl_isScoped _clang_EnumDecl_isScoped =
+      _clang_EnumDecl_isScoped_ptr.asFunction<_dart_clang_EnumDecl_isScoped>();
 
   /// Determine if a C++ member function or member function template is declared
   /// 'const'.
   int clang_CXXMethod_isConst(
     CXCursor C,
   ) {
-    return (_clang_CXXMethod_isConst ??=
-        _lookup<ffi.NativeFunction<_c_clang_CXXMethod_isConst>>(
-                'clang_CXXMethod_isConst')
-            .asFunction<_dart_clang_CXXMethod_isConst>())(
+    return _clang_CXXMethod_isConst(
       C,
     );
   }
 
-  _dart_clang_CXXMethod_isConst? _clang_CXXMethod_isConst;
+  late final _clang_CXXMethod_isConst_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_CXXMethod_isConst>>(
+          'clang_CXXMethod_isConst');
+  late final _dart_clang_CXXMethod_isConst _clang_CXXMethod_isConst =
+      _clang_CXXMethod_isConst_ptr.asFunction<_dart_clang_CXXMethod_isConst>();
 
   /// Given a cursor that represents a template, determine the cursor kind of
   /// the specializations would be generated by instantiating the template.
   int clang_getTemplateCursorKind(
     CXCursor C,
   ) {
-    return (_clang_getTemplateCursorKind ??=
-        _lookup<ffi.NativeFunction<_c_clang_getTemplateCursorKind>>(
-                'clang_getTemplateCursorKind')
-            .asFunction<_dart_clang_getTemplateCursorKind>())(
+    return _clang_getTemplateCursorKind(
       C,
     );
   }
 
-  _dart_clang_getTemplateCursorKind? _clang_getTemplateCursorKind;
+  late final _clang_getTemplateCursorKind_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_getTemplateCursorKind>>(
+          'clang_getTemplateCursorKind');
+  late final _dart_clang_getTemplateCursorKind _clang_getTemplateCursorKind =
+      _clang_getTemplateCursorKind_ptr
+          .asFunction<_dart_clang_getTemplateCursorKind>();
 
   /// Given a cursor that may represent a specialization or instantiation of a
   /// template, retrieve the cursor that represents the template that it
@@ -3964,15 +4392,18 @@
   CXCursor clang_getSpecializedCursorTemplate(
     CXCursor C,
   ) {
-    return (_clang_getSpecializedCursorTemplate ??=
-        _lookup<ffi.NativeFunction<_c_clang_getSpecializedCursorTemplate>>(
-                'clang_getSpecializedCursorTemplate')
-            .asFunction<_dart_clang_getSpecializedCursorTemplate>())(
+    return _clang_getSpecializedCursorTemplate(
       C,
     );
   }
 
-  _dart_clang_getSpecializedCursorTemplate? _clang_getSpecializedCursorTemplate;
+  late final _clang_getSpecializedCursorTemplate_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_getSpecializedCursorTemplate>>(
+          'clang_getSpecializedCursorTemplate');
+  late final _dart_clang_getSpecializedCursorTemplate
+      _clang_getSpecializedCursorTemplate =
+      _clang_getSpecializedCursorTemplate_ptr
+          .asFunction<_dart_clang_getSpecializedCursorTemplate>();
 
   /// Given a cursor that references something else, return the source range
   /// covering that reference.
@@ -3981,93 +4412,101 @@
     int NameFlags,
     int PieceIndex,
   ) {
-    return (_clang_getCursorReferenceNameRange ??=
-        _lookup<ffi.NativeFunction<_c_clang_getCursorReferenceNameRange>>(
-                'clang_getCursorReferenceNameRange')
-            .asFunction<_dart_clang_getCursorReferenceNameRange>())(
+    return _clang_getCursorReferenceNameRange(
       C,
       NameFlags,
       PieceIndex,
     );
   }
 
-  _dart_clang_getCursorReferenceNameRange? _clang_getCursorReferenceNameRange;
+  late final _clang_getCursorReferenceNameRange_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_getCursorReferenceNameRange>>(
+          'clang_getCursorReferenceNameRange');
+  late final _dart_clang_getCursorReferenceNameRange
+      _clang_getCursorReferenceNameRange =
+      _clang_getCursorReferenceNameRange_ptr
+          .asFunction<_dart_clang_getCursorReferenceNameRange>();
 
   /// Get the raw lexical token starting with the given location.
   ffi.Pointer<CXToken> clang_getToken(
     ffi.Pointer<CXTranslationUnitImpl> TU,
     CXSourceLocation Location,
   ) {
-    return (_clang_getToken ??=
-        _lookup<ffi.NativeFunction<_c_clang_getToken>>('clang_getToken')
-            .asFunction<_dart_clang_getToken>())(
+    return _clang_getToken(
       TU,
       Location,
     );
   }
 
-  _dart_clang_getToken? _clang_getToken;
+  late final _clang_getToken_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_getToken>>('clang_getToken');
+  late final _dart_clang_getToken _clang_getToken =
+      _clang_getToken_ptr.asFunction<_dart_clang_getToken>();
 
   /// Determine the kind of the given token.
   int clang_getTokenKind(
     CXToken arg0,
   ) {
-    return (_clang_getTokenKind ??=
-        _lookup<ffi.NativeFunction<_c_clang_getTokenKind>>('clang_getTokenKind')
-            .asFunction<_dart_clang_getTokenKind>())(
+    return _clang_getTokenKind(
       arg0,
     );
   }
 
-  _dart_clang_getTokenKind? _clang_getTokenKind;
+  late final _clang_getTokenKind_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_getTokenKind>>('clang_getTokenKind');
+  late final _dart_clang_getTokenKind _clang_getTokenKind =
+      _clang_getTokenKind_ptr.asFunction<_dart_clang_getTokenKind>();
 
   /// Determine the spelling of the given token.
   CXString clang_getTokenSpelling(
     ffi.Pointer<CXTranslationUnitImpl> arg0,
     CXToken arg1,
   ) {
-    return (_clang_getTokenSpelling ??=
-        _lookup<ffi.NativeFunction<_c_clang_getTokenSpelling>>(
-                'clang_getTokenSpelling')
-            .asFunction<_dart_clang_getTokenSpelling>())(
+    return _clang_getTokenSpelling(
       arg0,
       arg1,
     );
   }
 
-  _dart_clang_getTokenSpelling? _clang_getTokenSpelling;
+  late final _clang_getTokenSpelling_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_getTokenSpelling>>(
+          'clang_getTokenSpelling');
+  late final _dart_clang_getTokenSpelling _clang_getTokenSpelling =
+      _clang_getTokenSpelling_ptr.asFunction<_dart_clang_getTokenSpelling>();
 
   /// Retrieve the source location of the given token.
   CXSourceLocation clang_getTokenLocation(
     ffi.Pointer<CXTranslationUnitImpl> arg0,
     CXToken arg1,
   ) {
-    return (_clang_getTokenLocation ??=
-        _lookup<ffi.NativeFunction<_c_clang_getTokenLocation>>(
-                'clang_getTokenLocation')
-            .asFunction<_dart_clang_getTokenLocation>())(
+    return _clang_getTokenLocation(
       arg0,
       arg1,
     );
   }
 
-  _dart_clang_getTokenLocation? _clang_getTokenLocation;
+  late final _clang_getTokenLocation_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_getTokenLocation>>(
+          'clang_getTokenLocation');
+  late final _dart_clang_getTokenLocation _clang_getTokenLocation =
+      _clang_getTokenLocation_ptr.asFunction<_dart_clang_getTokenLocation>();
 
   /// Retrieve a source range that covers the given token.
   CXSourceRange clang_getTokenExtent(
     ffi.Pointer<CXTranslationUnitImpl> arg0,
     CXToken arg1,
   ) {
-    return (_clang_getTokenExtent ??=
-        _lookup<ffi.NativeFunction<_c_clang_getTokenExtent>>(
-                'clang_getTokenExtent')
-            .asFunction<_dart_clang_getTokenExtent>())(
+    return _clang_getTokenExtent(
       arg0,
       arg1,
     );
   }
 
-  _dart_clang_getTokenExtent? _clang_getTokenExtent;
+  late final _clang_getTokenExtent_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_getTokenExtent>>(
+          'clang_getTokenExtent');
+  late final _dart_clang_getTokenExtent _clang_getTokenExtent =
+      _clang_getTokenExtent_ptr.asFunction<_dart_clang_getTokenExtent>();
 
   /// Tokenize the source code described by the given range into raw lexical
   /// tokens.
@@ -4077,9 +4516,7 @@
     ffi.Pointer<ffi.Pointer<CXToken>> Tokens,
     ffi.Pointer<ffi.Uint32> NumTokens,
   ) {
-    return (_clang_tokenize ??=
-        _lookup<ffi.NativeFunction<_c_clang_tokenize>>('clang_tokenize')
-            .asFunction<_dart_clang_tokenize>())(
+    return _clang_tokenize(
       TU,
       Range,
       Tokens,
@@ -4087,7 +4524,10 @@
     );
   }
 
-  _dart_clang_tokenize? _clang_tokenize;
+  late final _clang_tokenize_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_tokenize>>('clang_tokenize');
+  late final _dart_clang_tokenize _clang_tokenize =
+      _clang_tokenize_ptr.asFunction<_dart_clang_tokenize>();
 
   /// Annotate the given set of tokens by providing cursors for each token that
   /// can be mapped to a specific entity within the abstract syntax tree.
@@ -4097,10 +4537,7 @@
     int NumTokens,
     ffi.Pointer<CXCursor> Cursors,
   ) {
-    return (_clang_annotateTokens ??=
-        _lookup<ffi.NativeFunction<_c_clang_annotateTokens>>(
-                'clang_annotateTokens')
-            .asFunction<_dart_clang_annotateTokens>())(
+    return _clang_annotateTokens(
       TU,
       Tokens,
       NumTokens,
@@ -4108,7 +4545,11 @@
     );
   }
 
-  _dart_clang_annotateTokens? _clang_annotateTokens;
+  late final _clang_annotateTokens_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_annotateTokens>>(
+          'clang_annotateTokens');
+  late final _dart_clang_annotateTokens _clang_annotateTokens =
+      _clang_annotateTokens_ptr.asFunction<_dart_clang_annotateTokens>();
 
   /// Free the given set of tokens.
   void clang_disposeTokens(
@@ -4116,32 +4557,35 @@
     ffi.Pointer<CXToken> Tokens,
     int NumTokens,
   ) {
-    return (_clang_disposeTokens ??=
-        _lookup<ffi.NativeFunction<_c_clang_disposeTokens>>(
-                'clang_disposeTokens')
-            .asFunction<_dart_clang_disposeTokens>())(
+    return _clang_disposeTokens(
       TU,
       Tokens,
       NumTokens,
     );
   }
 
-  _dart_clang_disposeTokens? _clang_disposeTokens;
+  late final _clang_disposeTokens_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_disposeTokens>>(
+          'clang_disposeTokens');
+  late final _dart_clang_disposeTokens _clang_disposeTokens =
+      _clang_disposeTokens_ptr.asFunction<_dart_clang_disposeTokens>();
 
   /// These routines are used for testing and debugging, only, and should not be
   /// relied upon.
   CXString clang_getCursorKindSpelling(
     int Kind,
   ) {
-    return (_clang_getCursorKindSpelling ??=
-        _lookup<ffi.NativeFunction<_c_clang_getCursorKindSpelling>>(
-                'clang_getCursorKindSpelling')
-            .asFunction<_dart_clang_getCursorKindSpelling>())(
+    return _clang_getCursorKindSpelling(
       Kind,
     );
   }
 
-  _dart_clang_getCursorKindSpelling? _clang_getCursorKindSpelling;
+  late final _clang_getCursorKindSpelling_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_getCursorKindSpelling>>(
+          'clang_getCursorKindSpelling');
+  late final _dart_clang_getCursorKindSpelling _clang_getCursorKindSpelling =
+      _clang_getCursorKindSpelling_ptr
+          .asFunction<_dart_clang_getCursorKindSpelling>();
 
   void clang_getDefinitionSpellingAndExtent(
     CXCursor arg0,
@@ -4152,10 +4596,7 @@
     ffi.Pointer<ffi.Uint32> endLine,
     ffi.Pointer<ffi.Uint32> endColumn,
   ) {
-    return (_clang_getDefinitionSpellingAndExtent ??=
-        _lookup<ffi.NativeFunction<_c_clang_getDefinitionSpellingAndExtent>>(
-                'clang_getDefinitionSpellingAndExtent')
-            .asFunction<_dart_clang_getDefinitionSpellingAndExtent>())(
+    return _clang_getDefinitionSpellingAndExtent(
       arg0,
       startBuf,
       endBuf,
@@ -4166,50 +4607,59 @@
     );
   }
 
-  _dart_clang_getDefinitionSpellingAndExtent?
-      _clang_getDefinitionSpellingAndExtent;
+  late final _clang_getDefinitionSpellingAndExtent_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_getDefinitionSpellingAndExtent>>(
+          'clang_getDefinitionSpellingAndExtent');
+  late final _dart_clang_getDefinitionSpellingAndExtent
+      _clang_getDefinitionSpellingAndExtent =
+      _clang_getDefinitionSpellingAndExtent_ptr
+          .asFunction<_dart_clang_getDefinitionSpellingAndExtent>();
 
   void clang_enableStackTraces() {
-    return (_clang_enableStackTraces ??=
-        _lookup<ffi.NativeFunction<_c_clang_enableStackTraces>>(
-                'clang_enableStackTraces')
-            .asFunction<_dart_clang_enableStackTraces>())();
+    return _clang_enableStackTraces();
   }
 
-  _dart_clang_enableStackTraces? _clang_enableStackTraces;
+  late final _clang_enableStackTraces_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_enableStackTraces>>(
+          'clang_enableStackTraces');
+  late final _dart_clang_enableStackTraces _clang_enableStackTraces =
+      _clang_enableStackTraces_ptr.asFunction<_dart_clang_enableStackTraces>();
 
   void clang_executeOnThread(
     ffi.Pointer<ffi.NativeFunction<_typedefC_1>> fn,
     ffi.Pointer<ffi.Void> user_data,
     int stack_size,
   ) {
-    return (_clang_executeOnThread ??=
-        _lookup<ffi.NativeFunction<_c_clang_executeOnThread>>(
-                'clang_executeOnThread')
-            .asFunction<_dart_clang_executeOnThread>())(
+    return _clang_executeOnThread(
       fn,
       user_data,
       stack_size,
     );
   }
 
-  _dart_clang_executeOnThread? _clang_executeOnThread;
+  late final _clang_executeOnThread_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_executeOnThread>>(
+          'clang_executeOnThread');
+  late final _dart_clang_executeOnThread _clang_executeOnThread =
+      _clang_executeOnThread_ptr.asFunction<_dart_clang_executeOnThread>();
 
   /// Determine the kind of a particular chunk within a completion string.
   int clang_getCompletionChunkKind(
     ffi.Pointer<ffi.Void> completion_string,
     int chunk_number,
   ) {
-    return (_clang_getCompletionChunkKind ??=
-        _lookup<ffi.NativeFunction<_c_clang_getCompletionChunkKind>>(
-                'clang_getCompletionChunkKind')
-            .asFunction<_dart_clang_getCompletionChunkKind>())(
+    return _clang_getCompletionChunkKind(
       completion_string,
       chunk_number,
     );
   }
 
-  _dart_clang_getCompletionChunkKind? _clang_getCompletionChunkKind;
+  late final _clang_getCompletionChunkKind_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_getCompletionChunkKind>>(
+          'clang_getCompletionChunkKind');
+  late final _dart_clang_getCompletionChunkKind _clang_getCompletionChunkKind =
+      _clang_getCompletionChunkKind_ptr
+          .asFunction<_dart_clang_getCompletionChunkKind>();
 
   /// Retrieve the text associated with a particular chunk within a completion
   /// string.
@@ -4217,16 +4667,18 @@
     ffi.Pointer<ffi.Void> completion_string,
     int chunk_number,
   ) {
-    return (_clang_getCompletionChunkText ??=
-        _lookup<ffi.NativeFunction<_c_clang_getCompletionChunkText>>(
-                'clang_getCompletionChunkText')
-            .asFunction<_dart_clang_getCompletionChunkText>())(
+    return _clang_getCompletionChunkText(
       completion_string,
       chunk_number,
     );
   }
 
-  _dart_clang_getCompletionChunkText? _clang_getCompletionChunkText;
+  late final _clang_getCompletionChunkText_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_getCompletionChunkText>>(
+          'clang_getCompletionChunkText');
+  late final _dart_clang_getCompletionChunkText _clang_getCompletionChunkText =
+      _clang_getCompletionChunkText_ptr
+          .asFunction<_dart_clang_getCompletionChunkText>();
 
   /// Retrieve the completion string associated with a particular chunk within a
   /// completion string.
@@ -4234,154 +4686,174 @@
     ffi.Pointer<ffi.Void> completion_string,
     int chunk_number,
   ) {
-    return (_clang_getCompletionChunkCompletionString ??= _lookup<
-                ffi.NativeFunction<
-                    _c_clang_getCompletionChunkCompletionString>>(
-            'clang_getCompletionChunkCompletionString')
-        .asFunction<_dart_clang_getCompletionChunkCompletionString>())(
+    return _clang_getCompletionChunkCompletionString(
       completion_string,
       chunk_number,
     );
   }
 
-  _dart_clang_getCompletionChunkCompletionString?
-      _clang_getCompletionChunkCompletionString;
+  late final _clang_getCompletionChunkCompletionString_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_getCompletionChunkCompletionString>>(
+          'clang_getCompletionChunkCompletionString');
+  late final _dart_clang_getCompletionChunkCompletionString
+      _clang_getCompletionChunkCompletionString =
+      _clang_getCompletionChunkCompletionString_ptr
+          .asFunction<_dart_clang_getCompletionChunkCompletionString>();
 
   /// Retrieve the number of chunks in the given code-completion string.
   int clang_getNumCompletionChunks(
     ffi.Pointer<ffi.Void> completion_string,
   ) {
-    return (_clang_getNumCompletionChunks ??=
-        _lookup<ffi.NativeFunction<_c_clang_getNumCompletionChunks>>(
-                'clang_getNumCompletionChunks')
-            .asFunction<_dart_clang_getNumCompletionChunks>())(
+    return _clang_getNumCompletionChunks(
       completion_string,
     );
   }
 
-  _dart_clang_getNumCompletionChunks? _clang_getNumCompletionChunks;
+  late final _clang_getNumCompletionChunks_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_getNumCompletionChunks>>(
+          'clang_getNumCompletionChunks');
+  late final _dart_clang_getNumCompletionChunks _clang_getNumCompletionChunks =
+      _clang_getNumCompletionChunks_ptr
+          .asFunction<_dart_clang_getNumCompletionChunks>();
 
   /// Determine the priority of this code completion.
   int clang_getCompletionPriority(
     ffi.Pointer<ffi.Void> completion_string,
   ) {
-    return (_clang_getCompletionPriority ??=
-        _lookup<ffi.NativeFunction<_c_clang_getCompletionPriority>>(
-                'clang_getCompletionPriority')
-            .asFunction<_dart_clang_getCompletionPriority>())(
+    return _clang_getCompletionPriority(
       completion_string,
     );
   }
 
-  _dart_clang_getCompletionPriority? _clang_getCompletionPriority;
+  late final _clang_getCompletionPriority_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_getCompletionPriority>>(
+          'clang_getCompletionPriority');
+  late final _dart_clang_getCompletionPriority _clang_getCompletionPriority =
+      _clang_getCompletionPriority_ptr
+          .asFunction<_dart_clang_getCompletionPriority>();
 
   /// Determine the availability of the entity that this code-completion string
   /// refers to.
   int clang_getCompletionAvailability(
     ffi.Pointer<ffi.Void> completion_string,
   ) {
-    return (_clang_getCompletionAvailability ??=
-        _lookup<ffi.NativeFunction<_c_clang_getCompletionAvailability>>(
-                'clang_getCompletionAvailability')
-            .asFunction<_dart_clang_getCompletionAvailability>())(
+    return _clang_getCompletionAvailability(
       completion_string,
     );
   }
 
-  _dart_clang_getCompletionAvailability? _clang_getCompletionAvailability;
+  late final _clang_getCompletionAvailability_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_getCompletionAvailability>>(
+          'clang_getCompletionAvailability');
+  late final _dart_clang_getCompletionAvailability
+      _clang_getCompletionAvailability = _clang_getCompletionAvailability_ptr
+          .asFunction<_dart_clang_getCompletionAvailability>();
 
   /// Retrieve the number of annotations associated with the given completion
   /// string.
   int clang_getCompletionNumAnnotations(
     ffi.Pointer<ffi.Void> completion_string,
   ) {
-    return (_clang_getCompletionNumAnnotations ??=
-        _lookup<ffi.NativeFunction<_c_clang_getCompletionNumAnnotations>>(
-                'clang_getCompletionNumAnnotations')
-            .asFunction<_dart_clang_getCompletionNumAnnotations>())(
+    return _clang_getCompletionNumAnnotations(
       completion_string,
     );
   }
 
-  _dart_clang_getCompletionNumAnnotations? _clang_getCompletionNumAnnotations;
+  late final _clang_getCompletionNumAnnotations_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_getCompletionNumAnnotations>>(
+          'clang_getCompletionNumAnnotations');
+  late final _dart_clang_getCompletionNumAnnotations
+      _clang_getCompletionNumAnnotations =
+      _clang_getCompletionNumAnnotations_ptr
+          .asFunction<_dart_clang_getCompletionNumAnnotations>();
 
   /// Retrieve the annotation associated with the given completion string.
   CXString clang_getCompletionAnnotation(
     ffi.Pointer<ffi.Void> completion_string,
     int annotation_number,
   ) {
-    return (_clang_getCompletionAnnotation ??=
-        _lookup<ffi.NativeFunction<_c_clang_getCompletionAnnotation>>(
-                'clang_getCompletionAnnotation')
-            .asFunction<_dart_clang_getCompletionAnnotation>())(
+    return _clang_getCompletionAnnotation(
       completion_string,
       annotation_number,
     );
   }
 
-  _dart_clang_getCompletionAnnotation? _clang_getCompletionAnnotation;
+  late final _clang_getCompletionAnnotation_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_getCompletionAnnotation>>(
+          'clang_getCompletionAnnotation');
+  late final _dart_clang_getCompletionAnnotation
+      _clang_getCompletionAnnotation = _clang_getCompletionAnnotation_ptr
+          .asFunction<_dart_clang_getCompletionAnnotation>();
 
   /// Retrieve the parent context of the given completion string.
   CXString clang_getCompletionParent(
     ffi.Pointer<ffi.Void> completion_string,
     ffi.Pointer<ffi.Int32> kind,
   ) {
-    return (_clang_getCompletionParent ??=
-        _lookup<ffi.NativeFunction<_c_clang_getCompletionParent>>(
-                'clang_getCompletionParent')
-            .asFunction<_dart_clang_getCompletionParent>())(
+    return _clang_getCompletionParent(
       completion_string,
       kind,
     );
   }
 
-  _dart_clang_getCompletionParent? _clang_getCompletionParent;
+  late final _clang_getCompletionParent_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_getCompletionParent>>(
+          'clang_getCompletionParent');
+  late final _dart_clang_getCompletionParent _clang_getCompletionParent =
+      _clang_getCompletionParent_ptr
+          .asFunction<_dart_clang_getCompletionParent>();
 
   /// Retrieve the brief documentation comment attached to the declaration that
   /// corresponds to the given completion string.
   CXString clang_getCompletionBriefComment(
     ffi.Pointer<ffi.Void> completion_string,
   ) {
-    return (_clang_getCompletionBriefComment ??=
-        _lookup<ffi.NativeFunction<_c_clang_getCompletionBriefComment>>(
-                'clang_getCompletionBriefComment')
-            .asFunction<_dart_clang_getCompletionBriefComment>())(
+    return _clang_getCompletionBriefComment(
       completion_string,
     );
   }
 
-  _dart_clang_getCompletionBriefComment? _clang_getCompletionBriefComment;
+  late final _clang_getCompletionBriefComment_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_getCompletionBriefComment>>(
+          'clang_getCompletionBriefComment');
+  late final _dart_clang_getCompletionBriefComment
+      _clang_getCompletionBriefComment = _clang_getCompletionBriefComment_ptr
+          .asFunction<_dart_clang_getCompletionBriefComment>();
 
   /// Retrieve a completion string for an arbitrary declaration or macro
   /// definition cursor.
   ffi.Pointer<ffi.Void> clang_getCursorCompletionString(
     CXCursor cursor,
   ) {
-    return (_clang_getCursorCompletionString ??=
-        _lookup<ffi.NativeFunction<_c_clang_getCursorCompletionString>>(
-                'clang_getCursorCompletionString')
-            .asFunction<_dart_clang_getCursorCompletionString>())(
+    return _clang_getCursorCompletionString(
       cursor,
     );
   }
 
-  _dart_clang_getCursorCompletionString? _clang_getCursorCompletionString;
+  late final _clang_getCursorCompletionString_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_getCursorCompletionString>>(
+          'clang_getCursorCompletionString');
+  late final _dart_clang_getCursorCompletionString
+      _clang_getCursorCompletionString = _clang_getCursorCompletionString_ptr
+          .asFunction<_dart_clang_getCursorCompletionString>();
 
   /// Retrieve the number of fix-its for the given completion index.
   int clang_getCompletionNumFixIts(
     ffi.Pointer<CXCodeCompleteResults> results,
     int completion_index,
   ) {
-    return (_clang_getCompletionNumFixIts ??=
-        _lookup<ffi.NativeFunction<_c_clang_getCompletionNumFixIts>>(
-                'clang_getCompletionNumFixIts')
-            .asFunction<_dart_clang_getCompletionNumFixIts>())(
+    return _clang_getCompletionNumFixIts(
       results,
       completion_index,
     );
   }
 
-  _dart_clang_getCompletionNumFixIts? _clang_getCompletionNumFixIts;
+  late final _clang_getCompletionNumFixIts_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_getCompletionNumFixIts>>(
+          'clang_getCompletionNumFixIts');
+  late final _dart_clang_getCompletionNumFixIts _clang_getCompletionNumFixIts =
+      _clang_getCompletionNumFixIts_ptr
+          .asFunction<_dart_clang_getCompletionNumFixIts>();
 
   /// Fix-its that *must* be applied before inserting the text for the
   /// corresponding completion.
@@ -4391,10 +4863,7 @@
     int fixit_index,
     ffi.Pointer<CXSourceRange> replacement_range,
   ) {
-    return (_clang_getCompletionFixIt ??=
-        _lookup<ffi.NativeFunction<_c_clang_getCompletionFixIt>>(
-                'clang_getCompletionFixIt')
-            .asFunction<_dart_clang_getCompletionFixIt>())(
+    return _clang_getCompletionFixIt(
       results,
       completion_index,
       fixit_index,
@@ -4402,18 +4871,25 @@
     );
   }
 
-  _dart_clang_getCompletionFixIt? _clang_getCompletionFixIt;
+  late final _clang_getCompletionFixIt_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_getCompletionFixIt>>(
+          'clang_getCompletionFixIt');
+  late final _dart_clang_getCompletionFixIt _clang_getCompletionFixIt =
+      _clang_getCompletionFixIt_ptr
+          .asFunction<_dart_clang_getCompletionFixIt>();
 
   /// Returns a default set of code-completion options that can be passed to
   /// clang_codeCompleteAt().
   int clang_defaultCodeCompleteOptions() {
-    return (_clang_defaultCodeCompleteOptions ??=
-        _lookup<ffi.NativeFunction<_c_clang_defaultCodeCompleteOptions>>(
-                'clang_defaultCodeCompleteOptions')
-            .asFunction<_dart_clang_defaultCodeCompleteOptions>())();
+    return _clang_defaultCodeCompleteOptions();
   }
 
-  _dart_clang_defaultCodeCompleteOptions? _clang_defaultCodeCompleteOptions;
+  late final _clang_defaultCodeCompleteOptions_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_defaultCodeCompleteOptions>>(
+          'clang_defaultCodeCompleteOptions');
+  late final _dart_clang_defaultCodeCompleteOptions
+      _clang_defaultCodeCompleteOptions = _clang_defaultCodeCompleteOptions_ptr
+          .asFunction<_dart_clang_defaultCodeCompleteOptions>();
 
   /// Perform code completion at a given location in a translation unit.
   ffi.Pointer<CXCodeCompleteResults> clang_codeCompleteAt(
@@ -4425,10 +4901,7 @@
     int num_unsaved_files,
     int options,
   ) {
-    return (_clang_codeCompleteAt ??=
-        _lookup<ffi.NativeFunction<_c_clang_codeCompleteAt>>(
-                'clang_codeCompleteAt')
-            .asFunction<_dart_clang_codeCompleteAt>())(
+    return _clang_codeCompleteAt(
       TU,
       complete_filename,
       complete_line,
@@ -4439,84 +4912,98 @@
     );
   }
 
-  _dart_clang_codeCompleteAt? _clang_codeCompleteAt;
+  late final _clang_codeCompleteAt_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_codeCompleteAt>>(
+          'clang_codeCompleteAt');
+  late final _dart_clang_codeCompleteAt _clang_codeCompleteAt =
+      _clang_codeCompleteAt_ptr.asFunction<_dart_clang_codeCompleteAt>();
 
   /// Sort the code-completion results in case-insensitive alphabetical order.
   void clang_sortCodeCompletionResults(
     ffi.Pointer<CXCompletionResult> Results,
     int NumResults,
   ) {
-    return (_clang_sortCodeCompletionResults ??=
-        _lookup<ffi.NativeFunction<_c_clang_sortCodeCompletionResults>>(
-                'clang_sortCodeCompletionResults')
-            .asFunction<_dart_clang_sortCodeCompletionResults>())(
+    return _clang_sortCodeCompletionResults(
       Results,
       NumResults,
     );
   }
 
-  _dart_clang_sortCodeCompletionResults? _clang_sortCodeCompletionResults;
+  late final _clang_sortCodeCompletionResults_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_sortCodeCompletionResults>>(
+          'clang_sortCodeCompletionResults');
+  late final _dart_clang_sortCodeCompletionResults
+      _clang_sortCodeCompletionResults = _clang_sortCodeCompletionResults_ptr
+          .asFunction<_dart_clang_sortCodeCompletionResults>();
 
   /// Free the given set of code-completion results.
   void clang_disposeCodeCompleteResults(
     ffi.Pointer<CXCodeCompleteResults> Results,
   ) {
-    return (_clang_disposeCodeCompleteResults ??=
-        _lookup<ffi.NativeFunction<_c_clang_disposeCodeCompleteResults>>(
-                'clang_disposeCodeCompleteResults')
-            .asFunction<_dart_clang_disposeCodeCompleteResults>())(
+    return _clang_disposeCodeCompleteResults(
       Results,
     );
   }
 
-  _dart_clang_disposeCodeCompleteResults? _clang_disposeCodeCompleteResults;
+  late final _clang_disposeCodeCompleteResults_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_disposeCodeCompleteResults>>(
+          'clang_disposeCodeCompleteResults');
+  late final _dart_clang_disposeCodeCompleteResults
+      _clang_disposeCodeCompleteResults = _clang_disposeCodeCompleteResults_ptr
+          .asFunction<_dart_clang_disposeCodeCompleteResults>();
 
   /// Determine the number of diagnostics produced prior to the location where
   /// code completion was performed.
   int clang_codeCompleteGetNumDiagnostics(
     ffi.Pointer<CXCodeCompleteResults> Results,
   ) {
-    return (_clang_codeCompleteGetNumDiagnostics ??=
-        _lookup<ffi.NativeFunction<_c_clang_codeCompleteGetNumDiagnostics>>(
-                'clang_codeCompleteGetNumDiagnostics')
-            .asFunction<_dart_clang_codeCompleteGetNumDiagnostics>())(
+    return _clang_codeCompleteGetNumDiagnostics(
       Results,
     );
   }
 
-  _dart_clang_codeCompleteGetNumDiagnostics?
-      _clang_codeCompleteGetNumDiagnostics;
+  late final _clang_codeCompleteGetNumDiagnostics_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_codeCompleteGetNumDiagnostics>>(
+          'clang_codeCompleteGetNumDiagnostics');
+  late final _dart_clang_codeCompleteGetNumDiagnostics
+      _clang_codeCompleteGetNumDiagnostics =
+      _clang_codeCompleteGetNumDiagnostics_ptr
+          .asFunction<_dart_clang_codeCompleteGetNumDiagnostics>();
 
   /// Retrieve a diagnostic associated with the given code completion.
   ffi.Pointer<ffi.Void> clang_codeCompleteGetDiagnostic(
     ffi.Pointer<CXCodeCompleteResults> Results,
     int Index,
   ) {
-    return (_clang_codeCompleteGetDiagnostic ??=
-        _lookup<ffi.NativeFunction<_c_clang_codeCompleteGetDiagnostic>>(
-                'clang_codeCompleteGetDiagnostic')
-            .asFunction<_dart_clang_codeCompleteGetDiagnostic>())(
+    return _clang_codeCompleteGetDiagnostic(
       Results,
       Index,
     );
   }
 
-  _dart_clang_codeCompleteGetDiagnostic? _clang_codeCompleteGetDiagnostic;
+  late final _clang_codeCompleteGetDiagnostic_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_codeCompleteGetDiagnostic>>(
+          'clang_codeCompleteGetDiagnostic');
+  late final _dart_clang_codeCompleteGetDiagnostic
+      _clang_codeCompleteGetDiagnostic = _clang_codeCompleteGetDiagnostic_ptr
+          .asFunction<_dart_clang_codeCompleteGetDiagnostic>();
 
   /// Determines what completions are appropriate for the context the given code
   /// completion.
   int clang_codeCompleteGetContexts(
     ffi.Pointer<CXCodeCompleteResults> Results,
   ) {
-    return (_clang_codeCompleteGetContexts ??=
-        _lookup<ffi.NativeFunction<_c_clang_codeCompleteGetContexts>>(
-                'clang_codeCompleteGetContexts')
-            .asFunction<_dart_clang_codeCompleteGetContexts>())(
+    return _clang_codeCompleteGetContexts(
       Results,
     );
   }
 
-  _dart_clang_codeCompleteGetContexts? _clang_codeCompleteGetContexts;
+  late final _clang_codeCompleteGetContexts_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_codeCompleteGetContexts>>(
+          'clang_codeCompleteGetContexts');
+  late final _dart_clang_codeCompleteGetContexts
+      _clang_codeCompleteGetContexts = _clang_codeCompleteGetContexts_ptr
+          .asFunction<_dart_clang_codeCompleteGetContexts>();
 
   /// Returns the cursor kind for the container for the current code completion
   /// context. The container is only guaranteed to be set for contexts where a
@@ -4526,16 +5013,19 @@
     ffi.Pointer<CXCodeCompleteResults> Results,
     ffi.Pointer<ffi.Uint32> IsIncomplete,
   ) {
-    return (_clang_codeCompleteGetContainerKind ??=
-        _lookup<ffi.NativeFunction<_c_clang_codeCompleteGetContainerKind>>(
-                'clang_codeCompleteGetContainerKind')
-            .asFunction<_dart_clang_codeCompleteGetContainerKind>())(
+    return _clang_codeCompleteGetContainerKind(
       Results,
       IsIncomplete,
     );
   }
 
-  _dart_clang_codeCompleteGetContainerKind? _clang_codeCompleteGetContainerKind;
+  late final _clang_codeCompleteGetContainerKind_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_codeCompleteGetContainerKind>>(
+          'clang_codeCompleteGetContainerKind');
+  late final _dart_clang_codeCompleteGetContainerKind
+      _clang_codeCompleteGetContainerKind =
+      _clang_codeCompleteGetContainerKind_ptr
+          .asFunction<_dart_clang_codeCompleteGetContainerKind>();
 
   /// Returns the USR for the container for the current code completion context.
   /// If there is not a container for the current context, this function will
@@ -4543,15 +5033,18 @@
   CXString clang_codeCompleteGetContainerUSR(
     ffi.Pointer<CXCodeCompleteResults> Results,
   ) {
-    return (_clang_codeCompleteGetContainerUSR ??=
-        _lookup<ffi.NativeFunction<_c_clang_codeCompleteGetContainerUSR>>(
-                'clang_codeCompleteGetContainerUSR')
-            .asFunction<_dart_clang_codeCompleteGetContainerUSR>())(
+    return _clang_codeCompleteGetContainerUSR(
       Results,
     );
   }
 
-  _dart_clang_codeCompleteGetContainerUSR? _clang_codeCompleteGetContainerUSR;
+  late final _clang_codeCompleteGetContainerUSR_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_codeCompleteGetContainerUSR>>(
+          'clang_codeCompleteGetContainerUSR');
+  late final _dart_clang_codeCompleteGetContainerUSR
+      _clang_codeCompleteGetContainerUSR =
+      _clang_codeCompleteGetContainerUSR_ptr
+          .asFunction<_dart_clang_codeCompleteGetContainerUSR>();
 
   /// Returns the currently-entered selector for an Objective-C message send,
   /// formatted like "initWithFoo:bar:". Only guaranteed to return a non-empty
@@ -4560,40 +5053,46 @@
   CXString clang_codeCompleteGetObjCSelector(
     ffi.Pointer<CXCodeCompleteResults> Results,
   ) {
-    return (_clang_codeCompleteGetObjCSelector ??=
-        _lookup<ffi.NativeFunction<_c_clang_codeCompleteGetObjCSelector>>(
-                'clang_codeCompleteGetObjCSelector')
-            .asFunction<_dart_clang_codeCompleteGetObjCSelector>())(
+    return _clang_codeCompleteGetObjCSelector(
       Results,
     );
   }
 
-  _dart_clang_codeCompleteGetObjCSelector? _clang_codeCompleteGetObjCSelector;
+  late final _clang_codeCompleteGetObjCSelector_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_codeCompleteGetObjCSelector>>(
+          'clang_codeCompleteGetObjCSelector');
+  late final _dart_clang_codeCompleteGetObjCSelector
+      _clang_codeCompleteGetObjCSelector =
+      _clang_codeCompleteGetObjCSelector_ptr
+          .asFunction<_dart_clang_codeCompleteGetObjCSelector>();
 
   /// Return a version string, suitable for showing to a user, but not intended
   /// to be parsed (the format is not guaranteed to be stable).
   CXString clang_getClangVersion() {
-    return (_clang_getClangVersion ??=
-        _lookup<ffi.NativeFunction<_c_clang_getClangVersion>>(
-                'clang_getClangVersion')
-            .asFunction<_dart_clang_getClangVersion>())();
+    return _clang_getClangVersion();
   }
 
-  _dart_clang_getClangVersion? _clang_getClangVersion;
+  late final _clang_getClangVersion_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_getClangVersion>>(
+          'clang_getClangVersion');
+  late final _dart_clang_getClangVersion _clang_getClangVersion =
+      _clang_getClangVersion_ptr.asFunction<_dart_clang_getClangVersion>();
 
   /// Enable/disable crash recovery.
   void clang_toggleCrashRecovery(
     int isEnabled,
   ) {
-    return (_clang_toggleCrashRecovery ??=
-        _lookup<ffi.NativeFunction<_c_clang_toggleCrashRecovery>>(
-                'clang_toggleCrashRecovery')
-            .asFunction<_dart_clang_toggleCrashRecovery>())(
+    return _clang_toggleCrashRecovery(
       isEnabled,
     );
   }
 
-  _dart_clang_toggleCrashRecovery? _clang_toggleCrashRecovery;
+  late final _clang_toggleCrashRecovery_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_toggleCrashRecovery>>(
+          'clang_toggleCrashRecovery');
+  late final _dart_clang_toggleCrashRecovery _clang_toggleCrashRecovery =
+      _clang_toggleCrashRecovery_ptr
+          .asFunction<_dart_clang_toggleCrashRecovery>();
 
   /// Visit the set of preprocessor inclusions in a translation unit. The
   /// visitor function is called with the provided data for every included file.
@@ -4604,17 +5103,18 @@
     ffi.Pointer<ffi.NativeFunction<CXInclusionVisitor>> visitor,
     ffi.Pointer<ffi.Void> client_data,
   ) {
-    return (_clang_getInclusions ??=
-        _lookup<ffi.NativeFunction<_c_clang_getInclusions>>(
-                'clang_getInclusions')
-            .asFunction<_dart_clang_getInclusions>())(
+    return _clang_getInclusions(
       tu,
       visitor,
       client_data,
     );
   }
 
-  _dart_clang_getInclusions? _clang_getInclusions;
+  late final _clang_getInclusions_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_getInclusions>>(
+          'clang_getInclusions');
+  late final _dart_clang_getInclusions _clang_getInclusions =
+      _clang_getInclusions_ptr.asFunction<_dart_clang_getInclusions>();
 
   /// If cursor is a statement declaration tries to evaluate the statement and
   /// if its variable, tries to evaluate its initializer, into its corresponding
@@ -4622,43 +5122,48 @@
   ffi.Pointer<ffi.Void> clang_Cursor_Evaluate(
     CXCursor C,
   ) {
-    return (_clang_Cursor_Evaluate ??=
-        _lookup<ffi.NativeFunction<_c_clang_Cursor_Evaluate>>(
-                'clang_Cursor_Evaluate')
-            .asFunction<_dart_clang_Cursor_Evaluate>())(
+    return _clang_Cursor_Evaluate(
       C,
     );
   }
 
-  _dart_clang_Cursor_Evaluate? _clang_Cursor_Evaluate;
+  late final _clang_Cursor_Evaluate_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_Cursor_Evaluate>>(
+          'clang_Cursor_Evaluate');
+  late final _dart_clang_Cursor_Evaluate _clang_Cursor_Evaluate =
+      _clang_Cursor_Evaluate_ptr.asFunction<_dart_clang_Cursor_Evaluate>();
 
   /// Returns the kind of the evaluated result.
   int clang_EvalResult_getKind(
     ffi.Pointer<ffi.Void> E,
   ) {
-    return (_clang_EvalResult_getKind ??=
-        _lookup<ffi.NativeFunction<_c_clang_EvalResult_getKind>>(
-                'clang_EvalResult_getKind')
-            .asFunction<_dart_clang_EvalResult_getKind>())(
+    return _clang_EvalResult_getKind(
       E,
     );
   }
 
-  _dart_clang_EvalResult_getKind? _clang_EvalResult_getKind;
+  late final _clang_EvalResult_getKind_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_EvalResult_getKind>>(
+          'clang_EvalResult_getKind');
+  late final _dart_clang_EvalResult_getKind _clang_EvalResult_getKind =
+      _clang_EvalResult_getKind_ptr
+          .asFunction<_dart_clang_EvalResult_getKind>();
 
   /// Returns the evaluation result as integer if the kind is Int.
   int clang_EvalResult_getAsInt(
     ffi.Pointer<ffi.Void> E,
   ) {
-    return (_clang_EvalResult_getAsInt ??=
-        _lookup<ffi.NativeFunction<_c_clang_EvalResult_getAsInt>>(
-                'clang_EvalResult_getAsInt')
-            .asFunction<_dart_clang_EvalResult_getAsInt>())(
+    return _clang_EvalResult_getAsInt(
       E,
     );
   }
 
-  _dart_clang_EvalResult_getAsInt? _clang_EvalResult_getAsInt;
+  late final _clang_EvalResult_getAsInt_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_EvalResult_getAsInt>>(
+          'clang_EvalResult_getAsInt');
+  late final _dart_clang_EvalResult_getAsInt _clang_EvalResult_getAsInt =
+      _clang_EvalResult_getAsInt_ptr
+          .asFunction<_dart_clang_EvalResult_getAsInt>();
 
   /// Returns the evaluation result as a long long integer if the kind is Int.
   /// This prevents overflows that may happen if the result is returned with
@@ -4666,59 +5171,67 @@
   int clang_EvalResult_getAsLongLong(
     ffi.Pointer<ffi.Void> E,
   ) {
-    return (_clang_EvalResult_getAsLongLong ??=
-        _lookup<ffi.NativeFunction<_c_clang_EvalResult_getAsLongLong>>(
-                'clang_EvalResult_getAsLongLong')
-            .asFunction<_dart_clang_EvalResult_getAsLongLong>())(
+    return _clang_EvalResult_getAsLongLong(
       E,
     );
   }
 
-  _dart_clang_EvalResult_getAsLongLong? _clang_EvalResult_getAsLongLong;
+  late final _clang_EvalResult_getAsLongLong_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_EvalResult_getAsLongLong>>(
+          'clang_EvalResult_getAsLongLong');
+  late final _dart_clang_EvalResult_getAsLongLong
+      _clang_EvalResult_getAsLongLong = _clang_EvalResult_getAsLongLong_ptr
+          .asFunction<_dart_clang_EvalResult_getAsLongLong>();
 
   /// Returns a non-zero value if the kind is Int and the evaluation result
   /// resulted in an unsigned integer.
   int clang_EvalResult_isUnsignedInt(
     ffi.Pointer<ffi.Void> E,
   ) {
-    return (_clang_EvalResult_isUnsignedInt ??=
-        _lookup<ffi.NativeFunction<_c_clang_EvalResult_isUnsignedInt>>(
-                'clang_EvalResult_isUnsignedInt')
-            .asFunction<_dart_clang_EvalResult_isUnsignedInt>())(
+    return _clang_EvalResult_isUnsignedInt(
       E,
     );
   }
 
-  _dart_clang_EvalResult_isUnsignedInt? _clang_EvalResult_isUnsignedInt;
+  late final _clang_EvalResult_isUnsignedInt_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_EvalResult_isUnsignedInt>>(
+          'clang_EvalResult_isUnsignedInt');
+  late final _dart_clang_EvalResult_isUnsignedInt
+      _clang_EvalResult_isUnsignedInt = _clang_EvalResult_isUnsignedInt_ptr
+          .asFunction<_dart_clang_EvalResult_isUnsignedInt>();
 
   /// Returns the evaluation result as an unsigned integer if the kind is Int
   /// and clang_EvalResult_isUnsignedInt is non-zero.
   int clang_EvalResult_getAsUnsigned(
     ffi.Pointer<ffi.Void> E,
   ) {
-    return (_clang_EvalResult_getAsUnsigned ??=
-        _lookup<ffi.NativeFunction<_c_clang_EvalResult_getAsUnsigned>>(
-                'clang_EvalResult_getAsUnsigned')
-            .asFunction<_dart_clang_EvalResult_getAsUnsigned>())(
+    return _clang_EvalResult_getAsUnsigned(
       E,
     );
   }
 
-  _dart_clang_EvalResult_getAsUnsigned? _clang_EvalResult_getAsUnsigned;
+  late final _clang_EvalResult_getAsUnsigned_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_EvalResult_getAsUnsigned>>(
+          'clang_EvalResult_getAsUnsigned');
+  late final _dart_clang_EvalResult_getAsUnsigned
+      _clang_EvalResult_getAsUnsigned = _clang_EvalResult_getAsUnsigned_ptr
+          .asFunction<_dart_clang_EvalResult_getAsUnsigned>();
 
   /// Returns the evaluation result as double if the kind is double.
   double clang_EvalResult_getAsDouble(
     ffi.Pointer<ffi.Void> E,
   ) {
-    return (_clang_EvalResult_getAsDouble ??=
-        _lookup<ffi.NativeFunction<_c_clang_EvalResult_getAsDouble>>(
-                'clang_EvalResult_getAsDouble')
-            .asFunction<_dart_clang_EvalResult_getAsDouble>())(
+    return _clang_EvalResult_getAsDouble(
       E,
     );
   }
 
-  _dart_clang_EvalResult_getAsDouble? _clang_EvalResult_getAsDouble;
+  late final _clang_EvalResult_getAsDouble_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_EvalResult_getAsDouble>>(
+          'clang_EvalResult_getAsDouble');
+  late final _dart_clang_EvalResult_getAsDouble _clang_EvalResult_getAsDouble =
+      _clang_EvalResult_getAsDouble_ptr
+          .asFunction<_dart_clang_EvalResult_getAsDouble>();
 
   /// Returns the evaluation result as a constant string if the kind is other
   /// than Int or float. User must not free this pointer, instead call
@@ -4727,73 +5240,81 @@
   ffi.Pointer<ffi.Int8> clang_EvalResult_getAsStr(
     ffi.Pointer<ffi.Void> E,
   ) {
-    return (_clang_EvalResult_getAsStr ??=
-        _lookup<ffi.NativeFunction<_c_clang_EvalResult_getAsStr>>(
-                'clang_EvalResult_getAsStr')
-            .asFunction<_dart_clang_EvalResult_getAsStr>())(
+    return _clang_EvalResult_getAsStr(
       E,
     );
   }
 
-  _dart_clang_EvalResult_getAsStr? _clang_EvalResult_getAsStr;
+  late final _clang_EvalResult_getAsStr_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_EvalResult_getAsStr>>(
+          'clang_EvalResult_getAsStr');
+  late final _dart_clang_EvalResult_getAsStr _clang_EvalResult_getAsStr =
+      _clang_EvalResult_getAsStr_ptr
+          .asFunction<_dart_clang_EvalResult_getAsStr>();
 
   /// Disposes the created Eval memory.
   void clang_EvalResult_dispose(
     ffi.Pointer<ffi.Void> E,
   ) {
-    return (_clang_EvalResult_dispose ??=
-        _lookup<ffi.NativeFunction<_c_clang_EvalResult_dispose>>(
-                'clang_EvalResult_dispose')
-            .asFunction<_dart_clang_EvalResult_dispose>())(
+    return _clang_EvalResult_dispose(
       E,
     );
   }
 
-  _dart_clang_EvalResult_dispose? _clang_EvalResult_dispose;
+  late final _clang_EvalResult_dispose_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_EvalResult_dispose>>(
+          'clang_EvalResult_dispose');
+  late final _dart_clang_EvalResult_dispose _clang_EvalResult_dispose =
+      _clang_EvalResult_dispose_ptr
+          .asFunction<_dart_clang_EvalResult_dispose>();
 
   /// Retrieve a remapping.
   ffi.Pointer<ffi.Void> clang_getRemappings(
     ffi.Pointer<ffi.Int8> path,
   ) {
-    return (_clang_getRemappings ??=
-        _lookup<ffi.NativeFunction<_c_clang_getRemappings>>(
-                'clang_getRemappings')
-            .asFunction<_dart_clang_getRemappings>())(
+    return _clang_getRemappings(
       path,
     );
   }
 
-  _dart_clang_getRemappings? _clang_getRemappings;
+  late final _clang_getRemappings_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_getRemappings>>(
+          'clang_getRemappings');
+  late final _dart_clang_getRemappings _clang_getRemappings =
+      _clang_getRemappings_ptr.asFunction<_dart_clang_getRemappings>();
 
   /// Retrieve a remapping.
   ffi.Pointer<ffi.Void> clang_getRemappingsFromFileList(
     ffi.Pointer<ffi.Pointer<ffi.Int8>> filePaths,
     int numFiles,
   ) {
-    return (_clang_getRemappingsFromFileList ??=
-        _lookup<ffi.NativeFunction<_c_clang_getRemappingsFromFileList>>(
-                'clang_getRemappingsFromFileList')
-            .asFunction<_dart_clang_getRemappingsFromFileList>())(
+    return _clang_getRemappingsFromFileList(
       filePaths,
       numFiles,
     );
   }
 
-  _dart_clang_getRemappingsFromFileList? _clang_getRemappingsFromFileList;
+  late final _clang_getRemappingsFromFileList_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_getRemappingsFromFileList>>(
+          'clang_getRemappingsFromFileList');
+  late final _dart_clang_getRemappingsFromFileList
+      _clang_getRemappingsFromFileList = _clang_getRemappingsFromFileList_ptr
+          .asFunction<_dart_clang_getRemappingsFromFileList>();
 
   /// Determine the number of remappings.
   int clang_remap_getNumFiles(
     ffi.Pointer<ffi.Void> arg0,
   ) {
-    return (_clang_remap_getNumFiles ??=
-        _lookup<ffi.NativeFunction<_c_clang_remap_getNumFiles>>(
-                'clang_remap_getNumFiles')
-            .asFunction<_dart_clang_remap_getNumFiles>())(
+    return _clang_remap_getNumFiles(
       arg0,
     );
   }
 
-  _dart_clang_remap_getNumFiles? _clang_remap_getNumFiles;
+  late final _clang_remap_getNumFiles_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_remap_getNumFiles>>(
+          'clang_remap_getNumFiles');
+  late final _dart_clang_remap_getNumFiles _clang_remap_getNumFiles =
+      _clang_remap_getNumFiles_ptr.asFunction<_dart_clang_remap_getNumFiles>();
 
   /// Get the original and the associated filename from the remapping.
   void clang_remap_getFilenames(
@@ -4802,10 +5323,7 @@
     ffi.Pointer<CXString> original,
     ffi.Pointer<CXString> transformed,
   ) {
-    return (_clang_remap_getFilenames ??=
-        _lookup<ffi.NativeFunction<_c_clang_remap_getFilenames>>(
-                'clang_remap_getFilenames')
-            .asFunction<_dart_clang_remap_getFilenames>())(
+    return _clang_remap_getFilenames(
       arg0,
       index,
       original,
@@ -4813,21 +5331,27 @@
     );
   }
 
-  _dart_clang_remap_getFilenames? _clang_remap_getFilenames;
+  late final _clang_remap_getFilenames_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_remap_getFilenames>>(
+          'clang_remap_getFilenames');
+  late final _dart_clang_remap_getFilenames _clang_remap_getFilenames =
+      _clang_remap_getFilenames_ptr
+          .asFunction<_dart_clang_remap_getFilenames>();
 
   /// Dispose the remapping.
   void clang_remap_dispose(
     ffi.Pointer<ffi.Void> arg0,
   ) {
-    return (_clang_remap_dispose ??=
-        _lookup<ffi.NativeFunction<_c_clang_remap_dispose>>(
-                'clang_remap_dispose')
-            .asFunction<_dart_clang_remap_dispose>())(
+    return _clang_remap_dispose(
       arg0,
     );
   }
 
-  _dart_clang_remap_dispose? _clang_remap_dispose;
+  late final _clang_remap_dispose_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_remap_dispose>>(
+          'clang_remap_dispose');
+  late final _dart_clang_remap_dispose _clang_remap_dispose =
+      _clang_remap_dispose_ptr.asFunction<_dart_clang_remap_dispose>();
 
   /// Find references of a declaration in a specific file.
   int clang_findReferencesInFile(
@@ -4835,17 +5359,19 @@
     ffi.Pointer<ffi.Void> file,
     CXCursorAndRangeVisitor visitor,
   ) {
-    return (_clang_findReferencesInFile ??=
-        _lookup<ffi.NativeFunction<_c_clang_findReferencesInFile>>(
-                'clang_findReferencesInFile')
-            .asFunction<_dart_clang_findReferencesInFile>())(
+    return _clang_findReferencesInFile(
       cursor,
       file,
       visitor,
     );
   }
 
-  _dart_clang_findReferencesInFile? _clang_findReferencesInFile;
+  late final _clang_findReferencesInFile_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_findReferencesInFile>>(
+          'clang_findReferencesInFile');
+  late final _dart_clang_findReferencesInFile _clang_findReferencesInFile =
+      _clang_findReferencesInFile_ptr
+          .asFunction<_dart_clang_findReferencesInFile>();
 
   /// Find #import/#include directives in a specific file.
   int clang_findIncludesInFile(
@@ -4853,220 +5379,249 @@
     ffi.Pointer<ffi.Void> file,
     CXCursorAndRangeVisitor visitor,
   ) {
-    return (_clang_findIncludesInFile ??=
-        _lookup<ffi.NativeFunction<_c_clang_findIncludesInFile>>(
-                'clang_findIncludesInFile')
-            .asFunction<_dart_clang_findIncludesInFile>())(
+    return _clang_findIncludesInFile(
       TU,
       file,
       visitor,
     );
   }
 
-  _dart_clang_findIncludesInFile? _clang_findIncludesInFile;
+  late final _clang_findIncludesInFile_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_findIncludesInFile>>(
+          'clang_findIncludesInFile');
+  late final _dart_clang_findIncludesInFile _clang_findIncludesInFile =
+      _clang_findIncludesInFile_ptr
+          .asFunction<_dart_clang_findIncludesInFile>();
 
   int clang_index_isEntityObjCContainerKind(
     int arg0,
   ) {
-    return (_clang_index_isEntityObjCContainerKind ??=
-        _lookup<ffi.NativeFunction<_c_clang_index_isEntityObjCContainerKind>>(
-                'clang_index_isEntityObjCContainerKind')
-            .asFunction<_dart_clang_index_isEntityObjCContainerKind>())(
+    return _clang_index_isEntityObjCContainerKind(
       arg0,
     );
   }
 
-  _dart_clang_index_isEntityObjCContainerKind?
-      _clang_index_isEntityObjCContainerKind;
+  late final _clang_index_isEntityObjCContainerKind_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_index_isEntityObjCContainerKind>>(
+          'clang_index_isEntityObjCContainerKind');
+  late final _dart_clang_index_isEntityObjCContainerKind
+      _clang_index_isEntityObjCContainerKind =
+      _clang_index_isEntityObjCContainerKind_ptr
+          .asFunction<_dart_clang_index_isEntityObjCContainerKind>();
 
   ffi.Pointer<CXIdxObjCContainerDeclInfo> clang_index_getObjCContainerDeclInfo(
     ffi.Pointer<CXIdxDeclInfo> arg0,
   ) {
-    return (_clang_index_getObjCContainerDeclInfo ??=
-        _lookup<ffi.NativeFunction<_c_clang_index_getObjCContainerDeclInfo>>(
-                'clang_index_getObjCContainerDeclInfo')
-            .asFunction<_dart_clang_index_getObjCContainerDeclInfo>())(
+    return _clang_index_getObjCContainerDeclInfo(
       arg0,
     );
   }
 
-  _dart_clang_index_getObjCContainerDeclInfo?
-      _clang_index_getObjCContainerDeclInfo;
+  late final _clang_index_getObjCContainerDeclInfo_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_index_getObjCContainerDeclInfo>>(
+          'clang_index_getObjCContainerDeclInfo');
+  late final _dart_clang_index_getObjCContainerDeclInfo
+      _clang_index_getObjCContainerDeclInfo =
+      _clang_index_getObjCContainerDeclInfo_ptr
+          .asFunction<_dart_clang_index_getObjCContainerDeclInfo>();
 
   ffi.Pointer<CXIdxObjCInterfaceDeclInfo> clang_index_getObjCInterfaceDeclInfo(
     ffi.Pointer<CXIdxDeclInfo> arg0,
   ) {
-    return (_clang_index_getObjCInterfaceDeclInfo ??=
-        _lookup<ffi.NativeFunction<_c_clang_index_getObjCInterfaceDeclInfo>>(
-                'clang_index_getObjCInterfaceDeclInfo')
-            .asFunction<_dart_clang_index_getObjCInterfaceDeclInfo>())(
+    return _clang_index_getObjCInterfaceDeclInfo(
       arg0,
     );
   }
 
-  _dart_clang_index_getObjCInterfaceDeclInfo?
-      _clang_index_getObjCInterfaceDeclInfo;
+  late final _clang_index_getObjCInterfaceDeclInfo_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_index_getObjCInterfaceDeclInfo>>(
+          'clang_index_getObjCInterfaceDeclInfo');
+  late final _dart_clang_index_getObjCInterfaceDeclInfo
+      _clang_index_getObjCInterfaceDeclInfo =
+      _clang_index_getObjCInterfaceDeclInfo_ptr
+          .asFunction<_dart_clang_index_getObjCInterfaceDeclInfo>();
 
   ffi.Pointer<CXIdxObjCCategoryDeclInfo> clang_index_getObjCCategoryDeclInfo(
     ffi.Pointer<CXIdxDeclInfo> arg0,
   ) {
-    return (_clang_index_getObjCCategoryDeclInfo ??=
-        _lookup<ffi.NativeFunction<_c_clang_index_getObjCCategoryDeclInfo>>(
-                'clang_index_getObjCCategoryDeclInfo')
-            .asFunction<_dart_clang_index_getObjCCategoryDeclInfo>())(
+    return _clang_index_getObjCCategoryDeclInfo(
       arg0,
     );
   }
 
-  _dart_clang_index_getObjCCategoryDeclInfo?
-      _clang_index_getObjCCategoryDeclInfo;
+  late final _clang_index_getObjCCategoryDeclInfo_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_index_getObjCCategoryDeclInfo>>(
+          'clang_index_getObjCCategoryDeclInfo');
+  late final _dart_clang_index_getObjCCategoryDeclInfo
+      _clang_index_getObjCCategoryDeclInfo =
+      _clang_index_getObjCCategoryDeclInfo_ptr
+          .asFunction<_dart_clang_index_getObjCCategoryDeclInfo>();
 
   ffi.Pointer<CXIdxObjCProtocolRefListInfo>
       clang_index_getObjCProtocolRefListInfo(
     ffi.Pointer<CXIdxDeclInfo> arg0,
   ) {
-    return (_clang_index_getObjCProtocolRefListInfo ??=
-        _lookup<ffi.NativeFunction<_c_clang_index_getObjCProtocolRefListInfo>>(
-                'clang_index_getObjCProtocolRefListInfo')
-            .asFunction<_dart_clang_index_getObjCProtocolRefListInfo>())(
+    return _clang_index_getObjCProtocolRefListInfo(
       arg0,
     );
   }
 
-  _dart_clang_index_getObjCProtocolRefListInfo?
-      _clang_index_getObjCProtocolRefListInfo;
+  late final _clang_index_getObjCProtocolRefListInfo_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_index_getObjCProtocolRefListInfo>>(
+          'clang_index_getObjCProtocolRefListInfo');
+  late final _dart_clang_index_getObjCProtocolRefListInfo
+      _clang_index_getObjCProtocolRefListInfo =
+      _clang_index_getObjCProtocolRefListInfo_ptr
+          .asFunction<_dart_clang_index_getObjCProtocolRefListInfo>();
 
   ffi.Pointer<CXIdxObjCPropertyDeclInfo> clang_index_getObjCPropertyDeclInfo(
     ffi.Pointer<CXIdxDeclInfo> arg0,
   ) {
-    return (_clang_index_getObjCPropertyDeclInfo ??=
-        _lookup<ffi.NativeFunction<_c_clang_index_getObjCPropertyDeclInfo>>(
-                'clang_index_getObjCPropertyDeclInfo')
-            .asFunction<_dart_clang_index_getObjCPropertyDeclInfo>())(
+    return _clang_index_getObjCPropertyDeclInfo(
       arg0,
     );
   }
 
-  _dart_clang_index_getObjCPropertyDeclInfo?
-      _clang_index_getObjCPropertyDeclInfo;
+  late final _clang_index_getObjCPropertyDeclInfo_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_index_getObjCPropertyDeclInfo>>(
+          'clang_index_getObjCPropertyDeclInfo');
+  late final _dart_clang_index_getObjCPropertyDeclInfo
+      _clang_index_getObjCPropertyDeclInfo =
+      _clang_index_getObjCPropertyDeclInfo_ptr
+          .asFunction<_dart_clang_index_getObjCPropertyDeclInfo>();
 
   ffi.Pointer<CXIdxIBOutletCollectionAttrInfo>
       clang_index_getIBOutletCollectionAttrInfo(
     ffi.Pointer<CXIdxAttrInfo> arg0,
   ) {
-    return (_clang_index_getIBOutletCollectionAttrInfo ??= _lookup<
-                ffi.NativeFunction<
-                    _c_clang_index_getIBOutletCollectionAttrInfo>>(
-            'clang_index_getIBOutletCollectionAttrInfo')
-        .asFunction<_dart_clang_index_getIBOutletCollectionAttrInfo>())(
+    return _clang_index_getIBOutletCollectionAttrInfo(
       arg0,
     );
   }
 
-  _dart_clang_index_getIBOutletCollectionAttrInfo?
-      _clang_index_getIBOutletCollectionAttrInfo;
+  late final _clang_index_getIBOutletCollectionAttrInfo_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_index_getIBOutletCollectionAttrInfo>>(
+          'clang_index_getIBOutletCollectionAttrInfo');
+  late final _dart_clang_index_getIBOutletCollectionAttrInfo
+      _clang_index_getIBOutletCollectionAttrInfo =
+      _clang_index_getIBOutletCollectionAttrInfo_ptr
+          .asFunction<_dart_clang_index_getIBOutletCollectionAttrInfo>();
 
   ffi.Pointer<CXIdxCXXClassDeclInfo> clang_index_getCXXClassDeclInfo(
     ffi.Pointer<CXIdxDeclInfo> arg0,
   ) {
-    return (_clang_index_getCXXClassDeclInfo ??=
-        _lookup<ffi.NativeFunction<_c_clang_index_getCXXClassDeclInfo>>(
-                'clang_index_getCXXClassDeclInfo')
-            .asFunction<_dart_clang_index_getCXXClassDeclInfo>())(
+    return _clang_index_getCXXClassDeclInfo(
       arg0,
     );
   }
 
-  _dart_clang_index_getCXXClassDeclInfo? _clang_index_getCXXClassDeclInfo;
+  late final _clang_index_getCXXClassDeclInfo_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_index_getCXXClassDeclInfo>>(
+          'clang_index_getCXXClassDeclInfo');
+  late final _dart_clang_index_getCXXClassDeclInfo
+      _clang_index_getCXXClassDeclInfo = _clang_index_getCXXClassDeclInfo_ptr
+          .asFunction<_dart_clang_index_getCXXClassDeclInfo>();
 
   /// For retrieving a custom CXIdxClientContainer attached to a container.
   ffi.Pointer<ffi.Void> clang_index_getClientContainer(
     ffi.Pointer<CXIdxContainerInfo> arg0,
   ) {
-    return (_clang_index_getClientContainer ??=
-        _lookup<ffi.NativeFunction<_c_clang_index_getClientContainer>>(
-                'clang_index_getClientContainer')
-            .asFunction<_dart_clang_index_getClientContainer>())(
+    return _clang_index_getClientContainer(
       arg0,
     );
   }
 
-  _dart_clang_index_getClientContainer? _clang_index_getClientContainer;
+  late final _clang_index_getClientContainer_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_index_getClientContainer>>(
+          'clang_index_getClientContainer');
+  late final _dart_clang_index_getClientContainer
+      _clang_index_getClientContainer = _clang_index_getClientContainer_ptr
+          .asFunction<_dart_clang_index_getClientContainer>();
 
   /// For setting a custom CXIdxClientContainer attached to a container.
   void clang_index_setClientContainer(
     ffi.Pointer<CXIdxContainerInfo> arg0,
     ffi.Pointer<ffi.Void> arg1,
   ) {
-    return (_clang_index_setClientContainer ??=
-        _lookup<ffi.NativeFunction<_c_clang_index_setClientContainer>>(
-                'clang_index_setClientContainer')
-            .asFunction<_dart_clang_index_setClientContainer>())(
+    return _clang_index_setClientContainer(
       arg0,
       arg1,
     );
   }
 
-  _dart_clang_index_setClientContainer? _clang_index_setClientContainer;
+  late final _clang_index_setClientContainer_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_index_setClientContainer>>(
+          'clang_index_setClientContainer');
+  late final _dart_clang_index_setClientContainer
+      _clang_index_setClientContainer = _clang_index_setClientContainer_ptr
+          .asFunction<_dart_clang_index_setClientContainer>();
 
   /// For retrieving a custom CXIdxClientEntity attached to an entity.
   ffi.Pointer<ffi.Void> clang_index_getClientEntity(
     ffi.Pointer<CXIdxEntityInfo> arg0,
   ) {
-    return (_clang_index_getClientEntity ??=
-        _lookup<ffi.NativeFunction<_c_clang_index_getClientEntity>>(
-                'clang_index_getClientEntity')
-            .asFunction<_dart_clang_index_getClientEntity>())(
+    return _clang_index_getClientEntity(
       arg0,
     );
   }
 
-  _dart_clang_index_getClientEntity? _clang_index_getClientEntity;
+  late final _clang_index_getClientEntity_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_index_getClientEntity>>(
+          'clang_index_getClientEntity');
+  late final _dart_clang_index_getClientEntity _clang_index_getClientEntity =
+      _clang_index_getClientEntity_ptr
+          .asFunction<_dart_clang_index_getClientEntity>();
 
   /// For setting a custom CXIdxClientEntity attached to an entity.
   void clang_index_setClientEntity(
     ffi.Pointer<CXIdxEntityInfo> arg0,
     ffi.Pointer<ffi.Void> arg1,
   ) {
-    return (_clang_index_setClientEntity ??=
-        _lookup<ffi.NativeFunction<_c_clang_index_setClientEntity>>(
-                'clang_index_setClientEntity')
-            .asFunction<_dart_clang_index_setClientEntity>())(
+    return _clang_index_setClientEntity(
       arg0,
       arg1,
     );
   }
 
-  _dart_clang_index_setClientEntity? _clang_index_setClientEntity;
+  late final _clang_index_setClientEntity_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_index_setClientEntity>>(
+          'clang_index_setClientEntity');
+  late final _dart_clang_index_setClientEntity _clang_index_setClientEntity =
+      _clang_index_setClientEntity_ptr
+          .asFunction<_dart_clang_index_setClientEntity>();
 
   /// An indexing action/session, to be applied to one or multiple translation
   /// units.
   ffi.Pointer<ffi.Void> clang_IndexAction_create(
     ffi.Pointer<ffi.Void> CIdx,
   ) {
-    return (_clang_IndexAction_create ??=
-        _lookup<ffi.NativeFunction<_c_clang_IndexAction_create>>(
-                'clang_IndexAction_create')
-            .asFunction<_dart_clang_IndexAction_create>())(
+    return _clang_IndexAction_create(
       CIdx,
     );
   }
 
-  _dart_clang_IndexAction_create? _clang_IndexAction_create;
+  late final _clang_IndexAction_create_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_IndexAction_create>>(
+          'clang_IndexAction_create');
+  late final _dart_clang_IndexAction_create _clang_IndexAction_create =
+      _clang_IndexAction_create_ptr
+          .asFunction<_dart_clang_IndexAction_create>();
 
   /// Destroy the given index action.
   void clang_IndexAction_dispose(
     ffi.Pointer<ffi.Void> arg0,
   ) {
-    return (_clang_IndexAction_dispose ??=
-        _lookup<ffi.NativeFunction<_c_clang_IndexAction_dispose>>(
-                'clang_IndexAction_dispose')
-            .asFunction<_dart_clang_IndexAction_dispose>())(
+    return _clang_IndexAction_dispose(
       arg0,
     );
   }
 
-  _dart_clang_IndexAction_dispose? _clang_IndexAction_dispose;
+  late final _clang_IndexAction_dispose_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_IndexAction_dispose>>(
+          'clang_IndexAction_dispose');
+  late final _dart_clang_IndexAction_dispose _clang_IndexAction_dispose =
+      _clang_IndexAction_dispose_ptr
+          .asFunction<_dart_clang_IndexAction_dispose>();
 
   /// Index the given source file and the translation unit corresponding to that
   /// file via callbacks implemented through #IndexerCallbacks.
@@ -5084,10 +5639,7 @@
     ffi.Pointer<ffi.Pointer<CXTranslationUnitImpl>> out_TU,
     int TU_options,
   ) {
-    return (_clang_indexSourceFile ??=
-        _lookup<ffi.NativeFunction<_c_clang_indexSourceFile>>(
-                'clang_indexSourceFile')
-            .asFunction<_dart_clang_indexSourceFile>())(
+    return _clang_indexSourceFile(
       arg0,
       client_data,
       index_callbacks,
@@ -5103,7 +5655,11 @@
     );
   }
 
-  _dart_clang_indexSourceFile? _clang_indexSourceFile;
+  late final _clang_indexSourceFile_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_indexSourceFile>>(
+          'clang_indexSourceFile');
+  late final _dart_clang_indexSourceFile _clang_indexSourceFile =
+      _clang_indexSourceFile_ptr.asFunction<_dart_clang_indexSourceFile>();
 
   /// Same as clang_indexSourceFile but requires a full command line for
   /// command_line_args including argv[0]. This is useful if the standard
@@ -5122,10 +5678,7 @@
     ffi.Pointer<ffi.Pointer<CXTranslationUnitImpl>> out_TU,
     int TU_options,
   ) {
-    return (_clang_indexSourceFileFullArgv ??=
-        _lookup<ffi.NativeFunction<_c_clang_indexSourceFileFullArgv>>(
-                'clang_indexSourceFileFullArgv')
-            .asFunction<_dart_clang_indexSourceFileFullArgv>())(
+    return _clang_indexSourceFileFullArgv(
       arg0,
       client_data,
       index_callbacks,
@@ -5141,7 +5694,12 @@
     );
   }
 
-  _dart_clang_indexSourceFileFullArgv? _clang_indexSourceFileFullArgv;
+  late final _clang_indexSourceFileFullArgv_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_indexSourceFileFullArgv>>(
+          'clang_indexSourceFileFullArgv');
+  late final _dart_clang_indexSourceFileFullArgv
+      _clang_indexSourceFileFullArgv = _clang_indexSourceFileFullArgv_ptr
+          .asFunction<_dart_clang_indexSourceFileFullArgv>();
 
   /// Index the given translation unit via callbacks implemented through
   /// #IndexerCallbacks.
@@ -5153,10 +5711,7 @@
     int index_options,
     ffi.Pointer<CXTranslationUnitImpl> arg5,
   ) {
-    return (_clang_indexTranslationUnit ??=
-        _lookup<ffi.NativeFunction<_c_clang_indexTranslationUnit>>(
-                'clang_indexTranslationUnit')
-            .asFunction<_dart_clang_indexTranslationUnit>())(
+    return _clang_indexTranslationUnit(
       arg0,
       client_data,
       index_callbacks,
@@ -5166,7 +5721,12 @@
     );
   }
 
-  _dart_clang_indexTranslationUnit? _clang_indexTranslationUnit;
+  late final _clang_indexTranslationUnit_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_indexTranslationUnit>>(
+          'clang_indexTranslationUnit');
+  late final _dart_clang_indexTranslationUnit _clang_indexTranslationUnit =
+      _clang_indexTranslationUnit_ptr
+          .asFunction<_dart_clang_indexTranslationUnit>();
 
   /// Retrieve the CXIdxFile, file, line, column, and offset represented by the
   /// given CXIdxLoc.
@@ -5178,10 +5738,7 @@
     ffi.Pointer<ffi.Uint32> column,
     ffi.Pointer<ffi.Uint32> offset,
   ) {
-    return (_clang_indexLoc_getFileLocation ??=
-        _lookup<ffi.NativeFunction<_c_clang_indexLoc_getFileLocation>>(
-                'clang_indexLoc_getFileLocation')
-            .asFunction<_dart_clang_indexLoc_getFileLocation>())(
+    return _clang_indexLoc_getFileLocation(
       loc,
       indexFile,
       file,
@@ -5191,21 +5748,29 @@
     );
   }
 
-  _dart_clang_indexLoc_getFileLocation? _clang_indexLoc_getFileLocation;
+  late final _clang_indexLoc_getFileLocation_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_indexLoc_getFileLocation>>(
+          'clang_indexLoc_getFileLocation');
+  late final _dart_clang_indexLoc_getFileLocation
+      _clang_indexLoc_getFileLocation = _clang_indexLoc_getFileLocation_ptr
+          .asFunction<_dart_clang_indexLoc_getFileLocation>();
 
   /// Retrieve the CXSourceLocation represented by the given CXIdxLoc.
   CXSourceLocation clang_indexLoc_getCXSourceLocation(
     CXIdxLoc loc,
   ) {
-    return (_clang_indexLoc_getCXSourceLocation ??=
-        _lookup<ffi.NativeFunction<_c_clang_indexLoc_getCXSourceLocation>>(
-                'clang_indexLoc_getCXSourceLocation')
-            .asFunction<_dart_clang_indexLoc_getCXSourceLocation>())(
+    return _clang_indexLoc_getCXSourceLocation(
       loc,
     );
   }
 
-  _dart_clang_indexLoc_getCXSourceLocation? _clang_indexLoc_getCXSourceLocation;
+  late final _clang_indexLoc_getCXSourceLocation_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_indexLoc_getCXSourceLocation>>(
+          'clang_indexLoc_getCXSourceLocation');
+  late final _dart_clang_indexLoc_getCXSourceLocation
+      _clang_indexLoc_getCXSourceLocation =
+      _clang_indexLoc_getCXSourceLocation_ptr
+          .asFunction<_dart_clang_indexLoc_getCXSourceLocation>();
 
   /// Visit the fields of a particular type.
   int clang_Type_visitFields(
@@ -5213,17 +5778,18 @@
     ffi.Pointer<ffi.NativeFunction<CXFieldVisitor>> visitor,
     ffi.Pointer<ffi.Void> client_data,
   ) {
-    return (_clang_Type_visitFields ??=
-        _lookup<ffi.NativeFunction<_c_clang_Type_visitFields>>(
-                'clang_Type_visitFields')
-            .asFunction<_dart_clang_Type_visitFields>())(
+    return _clang_Type_visitFields(
       T,
       visitor,
       client_data,
     );
   }
 
-  _dart_clang_Type_visitFields? _clang_Type_visitFields;
+  late final _clang_Type_visitFields_ptr =
+      _lookup<ffi.NativeFunction<_c_clang_Type_visitFields>>(
+          'clang_Type_visitFields');
+  late final _dart_clang_Type_visitFields _clang_Type_visitFields =
+      _clang_Type_visitFields_ptr.asFunction<_dart_clang_Type_visitFields>();
 }
 
 /// Error codes returned by libclang routines.
diff --git a/pkgs/ffigen/test/large_integration_tests/_expected_sqlite_bindings.dart b/pkgs/ffigen/test/large_integration_tests/_expected_sqlite_bindings.dart
index 9afeabd..0a52e5b 100644
--- a/pkgs/ffigen/test/large_integration_tests/_expected_sqlite_bindings.dart
+++ b/pkgs/ffigen/test/large_integration_tests/_expected_sqlite_bindings.dart
@@ -57,55 +57,63 @@
       _sqlite3_version.value = value;
 
   ffi.Pointer<ffi.Int8> sqlite3_libversion() {
-    return (_sqlite3_libversion ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_libversion>>('sqlite3_libversion')
-            .asFunction<_dart_sqlite3_libversion>())();
+    return _sqlite3_libversion();
   }
 
-  _dart_sqlite3_libversion? _sqlite3_libversion;
+  late final _sqlite3_libversion_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_libversion>>('sqlite3_libversion');
+  late final _dart_sqlite3_libversion _sqlite3_libversion =
+      _sqlite3_libversion_ptr.asFunction<_dart_sqlite3_libversion>();
 
   ffi.Pointer<ffi.Int8> sqlite3_sourceid() {
-    return (_sqlite3_sourceid ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_sourceid>>('sqlite3_sourceid')
-            .asFunction<_dart_sqlite3_sourceid>())();
+    return _sqlite3_sourceid();
   }
 
-  _dart_sqlite3_sourceid? _sqlite3_sourceid;
+  late final _sqlite3_sourceid_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_sourceid>>('sqlite3_sourceid');
+  late final _dart_sqlite3_sourceid _sqlite3_sourceid =
+      _sqlite3_sourceid_ptr.asFunction<_dart_sqlite3_sourceid>();
 
   int sqlite3_libversion_number() {
-    return (_sqlite3_libversion_number ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_libversion_number>>(
-                'sqlite3_libversion_number')
-            .asFunction<_dart_sqlite3_libversion_number>())();
+    return _sqlite3_libversion_number();
   }
 
-  _dart_sqlite3_libversion_number? _sqlite3_libversion_number;
+  late final _sqlite3_libversion_number_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_libversion_number>>(
+          'sqlite3_libversion_number');
+  late final _dart_sqlite3_libversion_number _sqlite3_libversion_number =
+      _sqlite3_libversion_number_ptr
+          .asFunction<_dart_sqlite3_libversion_number>();
 
   int sqlite3_compileoption_used(
     ffi.Pointer<ffi.Int8> zOptName,
   ) {
-    return (_sqlite3_compileoption_used ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_compileoption_used>>(
-                'sqlite3_compileoption_used')
-            .asFunction<_dart_sqlite3_compileoption_used>())(
+    return _sqlite3_compileoption_used(
       zOptName,
     );
   }
 
-  _dart_sqlite3_compileoption_used? _sqlite3_compileoption_used;
+  late final _sqlite3_compileoption_used_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_compileoption_used>>(
+          'sqlite3_compileoption_used');
+  late final _dart_sqlite3_compileoption_used _sqlite3_compileoption_used =
+      _sqlite3_compileoption_used_ptr
+          .asFunction<_dart_sqlite3_compileoption_used>();
 
   ffi.Pointer<ffi.Int8> sqlite3_compileoption_get(
     int N,
   ) {
-    return (_sqlite3_compileoption_get ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_compileoption_get>>(
-                'sqlite3_compileoption_get')
-            .asFunction<_dart_sqlite3_compileoption_get>())(
+    return _sqlite3_compileoption_get(
       N,
     );
   }
 
-  _dart_sqlite3_compileoption_get? _sqlite3_compileoption_get;
+  late final _sqlite3_compileoption_get_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_compileoption_get>>(
+          'sqlite3_compileoption_get');
+  late final _dart_sqlite3_compileoption_get _sqlite3_compileoption_get =
+      _sqlite3_compileoption_get_ptr
+          .asFunction<_dart_sqlite3_compileoption_get>();
 
   /// CAPI3REF: Test To See If The Library Is Threadsafe
   ///
@@ -142,12 +150,13 @@
   ///
   /// See the [threading mode] documentation for additional information.
   int sqlite3_threadsafe() {
-    return (_sqlite3_threadsafe ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_threadsafe>>('sqlite3_threadsafe')
-            .asFunction<_dart_sqlite3_threadsafe>())();
+    return _sqlite3_threadsafe();
   }
 
-  _dart_sqlite3_threadsafe? _sqlite3_threadsafe;
+  late final _sqlite3_threadsafe_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_threadsafe>>('sqlite3_threadsafe');
+  late final _dart_sqlite3_threadsafe _sqlite3_threadsafe =
+      _sqlite3_threadsafe_ptr.asFunction<_dart_sqlite3_threadsafe>();
 
   /// CAPI3REF: Closing A Database Connection
   /// DESTRUCTOR: sqlite3
@@ -188,26 +197,28 @@
   int sqlite3_close(
     ffi.Pointer<sqlite3> arg0,
   ) {
-    return (_sqlite3_close ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_close>>('sqlite3_close')
-            .asFunction<_dart_sqlite3_close>())(
+    return _sqlite3_close(
       arg0,
     );
   }
 
-  _dart_sqlite3_close? _sqlite3_close;
+  late final _sqlite3_close_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_close>>('sqlite3_close');
+  late final _dart_sqlite3_close _sqlite3_close =
+      _sqlite3_close_ptr.asFunction<_dart_sqlite3_close>();
 
   int sqlite3_close_v2(
     ffi.Pointer<sqlite3> arg0,
   ) {
-    return (_sqlite3_close_v2 ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_close_v2>>('sqlite3_close_v2')
-            .asFunction<_dart_sqlite3_close_v2>())(
+    return _sqlite3_close_v2(
       arg0,
     );
   }
 
-  _dart_sqlite3_close_v2? _sqlite3_close_v2;
+  late final _sqlite3_close_v2_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_close_v2>>('sqlite3_close_v2');
+  late final _dart_sqlite3_close_v2 _sqlite3_close_v2 =
+      _sqlite3_close_v2_ptr.asFunction<_dart_sqlite3_close_v2>();
 
   /// CAPI3REF: One-Step Query Execution Interface
   /// METHOD: sqlite3
@@ -276,9 +287,7 @@
     ffi.Pointer<ffi.Void> arg3,
     ffi.Pointer<ffi.Pointer<ffi.Int8>> errmsg,
   ) {
-    return (_sqlite3_exec ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_exec>>('sqlite3_exec')
-            .asFunction<_dart_sqlite3_exec>())(
+    return _sqlite3_exec(
       arg0,
       sql,
       callback,
@@ -287,7 +296,10 @@
     );
   }
 
-  _dart_sqlite3_exec? _sqlite3_exec;
+  late final _sqlite3_exec_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_exec>>('sqlite3_exec');
+  late final _dart_sqlite3_exec _sqlite3_exec =
+      _sqlite3_exec_ptr.asFunction<_dart_sqlite3_exec>();
 
   /// CAPI3REF: Initialize The SQLite Library
   ///
@@ -363,36 +375,40 @@
   /// must return [SQLITE_OK] on success and some other [error code] upon
   /// failure.
   int sqlite3_initialize() {
-    return (_sqlite3_initialize ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_initialize>>('sqlite3_initialize')
-            .asFunction<_dart_sqlite3_initialize>())();
+    return _sqlite3_initialize();
   }
 
-  _dart_sqlite3_initialize? _sqlite3_initialize;
+  late final _sqlite3_initialize_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_initialize>>('sqlite3_initialize');
+  late final _dart_sqlite3_initialize _sqlite3_initialize =
+      _sqlite3_initialize_ptr.asFunction<_dart_sqlite3_initialize>();
 
   int sqlite3_shutdown() {
-    return (_sqlite3_shutdown ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_shutdown>>('sqlite3_shutdown')
-            .asFunction<_dart_sqlite3_shutdown>())();
+    return _sqlite3_shutdown();
   }
 
-  _dart_sqlite3_shutdown? _sqlite3_shutdown;
+  late final _sqlite3_shutdown_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_shutdown>>('sqlite3_shutdown');
+  late final _dart_sqlite3_shutdown _sqlite3_shutdown =
+      _sqlite3_shutdown_ptr.asFunction<_dart_sqlite3_shutdown>();
 
   int sqlite3_os_init() {
-    return (_sqlite3_os_init ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_os_init>>('sqlite3_os_init')
-            .asFunction<_dart_sqlite3_os_init>())();
+    return _sqlite3_os_init();
   }
 
-  _dart_sqlite3_os_init? _sqlite3_os_init;
+  late final _sqlite3_os_init_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_os_init>>('sqlite3_os_init');
+  late final _dart_sqlite3_os_init _sqlite3_os_init =
+      _sqlite3_os_init_ptr.asFunction<_dart_sqlite3_os_init>();
 
   int sqlite3_os_end() {
-    return (_sqlite3_os_end ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_os_end>>('sqlite3_os_end')
-            .asFunction<_dart_sqlite3_os_end>())();
+    return _sqlite3_os_end();
   }
 
-  _dart_sqlite3_os_end? _sqlite3_os_end;
+  late final _sqlite3_os_end_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_os_end>>('sqlite3_os_end');
+  late final _dart_sqlite3_os_end _sqlite3_os_end =
+      _sqlite3_os_end_ptr.asFunction<_dart_sqlite3_os_end>();
 
   /// CAPI3REF: Configuring The SQLite Library
   ///
@@ -426,14 +442,15 @@
   int sqlite3_config(
     int arg0,
   ) {
-    return (_sqlite3_config ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_config>>('sqlite3_config')
-            .asFunction<_dart_sqlite3_config>())(
+    return _sqlite3_config(
       arg0,
     );
   }
 
-  _dart_sqlite3_config? _sqlite3_config;
+  late final _sqlite3_config_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_config>>('sqlite3_config');
+  late final _dart_sqlite3_config _sqlite3_config =
+      _sqlite3_config_ptr.asFunction<_dart_sqlite3_config>();
 
   /// CAPI3REF: Configure database connections
   /// METHOD: sqlite3
@@ -454,15 +471,16 @@
     ffi.Pointer<sqlite3> arg0,
     int op,
   ) {
-    return (_sqlite3_db_config ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_db_config>>('sqlite3_db_config')
-            .asFunction<_dart_sqlite3_db_config>())(
+    return _sqlite3_db_config(
       arg0,
       op,
     );
   }
 
-  _dart_sqlite3_db_config? _sqlite3_db_config;
+  late final _sqlite3_db_config_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_db_config>>('sqlite3_db_config');
+  late final _dart_sqlite3_db_config _sqlite3_db_config =
+      _sqlite3_db_config_ptr.asFunction<_dart_sqlite3_db_config>();
 
   /// CAPI3REF: Enable Or Disable Extended Result Codes
   /// METHOD: sqlite3
@@ -474,16 +492,18 @@
     ffi.Pointer<sqlite3> arg0,
     int onoff,
   ) {
-    return (_sqlite3_extended_result_codes ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_extended_result_codes>>(
-                'sqlite3_extended_result_codes')
-            .asFunction<_dart_sqlite3_extended_result_codes>())(
+    return _sqlite3_extended_result_codes(
       arg0,
       onoff,
     );
   }
 
-  _dart_sqlite3_extended_result_codes? _sqlite3_extended_result_codes;
+  late final _sqlite3_extended_result_codes_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_extended_result_codes>>(
+          'sqlite3_extended_result_codes');
+  late final _dart_sqlite3_extended_result_codes
+      _sqlite3_extended_result_codes = _sqlite3_extended_result_codes_ptr
+          .asFunction<_dart_sqlite3_extended_result_codes>();
 
   /// CAPI3REF: Last Insert Rowid
   /// METHOD: sqlite3
@@ -546,15 +566,17 @@
   int sqlite3_last_insert_rowid(
     ffi.Pointer<sqlite3> arg0,
   ) {
-    return (_sqlite3_last_insert_rowid ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_last_insert_rowid>>(
-                'sqlite3_last_insert_rowid')
-            .asFunction<_dart_sqlite3_last_insert_rowid>())(
+    return _sqlite3_last_insert_rowid(
       arg0,
     );
   }
 
-  _dart_sqlite3_last_insert_rowid? _sqlite3_last_insert_rowid;
+  late final _sqlite3_last_insert_rowid_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_last_insert_rowid>>(
+          'sqlite3_last_insert_rowid');
+  late final _dart_sqlite3_last_insert_rowid _sqlite3_last_insert_rowid =
+      _sqlite3_last_insert_rowid_ptr
+          .asFunction<_dart_sqlite3_last_insert_rowid>();
 
   /// CAPI3REF: Set the Last Insert Rowid value.
   /// METHOD: sqlite3
@@ -566,16 +588,18 @@
     ffi.Pointer<sqlite3> arg0,
     int arg1,
   ) {
-    return (_sqlite3_set_last_insert_rowid ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_set_last_insert_rowid>>(
-                'sqlite3_set_last_insert_rowid')
-            .asFunction<_dart_sqlite3_set_last_insert_rowid>())(
+    return _sqlite3_set_last_insert_rowid(
       arg0,
       arg1,
     );
   }
 
-  _dart_sqlite3_set_last_insert_rowid? _sqlite3_set_last_insert_rowid;
+  late final _sqlite3_set_last_insert_rowid_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_set_last_insert_rowid>>(
+          'sqlite3_set_last_insert_rowid');
+  late final _dart_sqlite3_set_last_insert_rowid
+      _sqlite3_set_last_insert_rowid = _sqlite3_set_last_insert_rowid_ptr
+          .asFunction<_dart_sqlite3_set_last_insert_rowid>();
 
   /// CAPI3REF: Count The Number Of Rows Modified
   /// METHOD: sqlite3
@@ -634,14 +658,15 @@
   int sqlite3_changes(
     ffi.Pointer<sqlite3> arg0,
   ) {
-    return (_sqlite3_changes ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_changes>>('sqlite3_changes')
-            .asFunction<_dart_sqlite3_changes>())(
+    return _sqlite3_changes(
       arg0,
     );
   }
 
-  _dart_sqlite3_changes? _sqlite3_changes;
+  late final _sqlite3_changes_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_changes>>('sqlite3_changes');
+  late final _dart_sqlite3_changes _sqlite3_changes =
+      _sqlite3_changes_ptr.asFunction<_dart_sqlite3_changes>();
 
   /// CAPI3REF: Total Number Of Rows Modified
   /// METHOD: sqlite3
@@ -679,15 +704,16 @@
   int sqlite3_total_changes(
     ffi.Pointer<sqlite3> arg0,
   ) {
-    return (_sqlite3_total_changes ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_total_changes>>(
-                'sqlite3_total_changes')
-            .asFunction<_dart_sqlite3_total_changes>())(
+    return _sqlite3_total_changes(
       arg0,
     );
   }
 
-  _dart_sqlite3_total_changes? _sqlite3_total_changes;
+  late final _sqlite3_total_changes_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_total_changes>>(
+          'sqlite3_total_changes');
+  late final _dart_sqlite3_total_changes _sqlite3_total_changes =
+      _sqlite3_total_changes_ptr.asFunction<_dart_sqlite3_total_changes>();
 
   /// CAPI3REF: Interrupt A Long-Running Query
   /// METHOD: sqlite3
@@ -725,14 +751,15 @@
   void sqlite3_interrupt(
     ffi.Pointer<sqlite3> arg0,
   ) {
-    return (_sqlite3_interrupt ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_interrupt>>('sqlite3_interrupt')
-            .asFunction<_dart_sqlite3_interrupt>())(
+    return _sqlite3_interrupt(
       arg0,
     );
   }
 
-  _dart_sqlite3_interrupt? _sqlite3_interrupt;
+  late final _sqlite3_interrupt_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_interrupt>>('sqlite3_interrupt');
+  late final _dart_sqlite3_interrupt _sqlite3_interrupt =
+      _sqlite3_interrupt_ptr.asFunction<_dart_sqlite3_interrupt>();
 
   /// CAPI3REF: Determine If An SQL Statement Is Complete
   ///
@@ -768,26 +795,28 @@
   int sqlite3_complete(
     ffi.Pointer<ffi.Int8> sql,
   ) {
-    return (_sqlite3_complete ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_complete>>('sqlite3_complete')
-            .asFunction<_dart_sqlite3_complete>())(
+    return _sqlite3_complete(
       sql,
     );
   }
 
-  _dart_sqlite3_complete? _sqlite3_complete;
+  late final _sqlite3_complete_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_complete>>('sqlite3_complete');
+  late final _dart_sqlite3_complete _sqlite3_complete =
+      _sqlite3_complete_ptr.asFunction<_dart_sqlite3_complete>();
 
   int sqlite3_complete16(
     ffi.Pointer<ffi.Void> sql,
   ) {
-    return (_sqlite3_complete16 ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_complete16>>('sqlite3_complete16')
-            .asFunction<_dart_sqlite3_complete16>())(
+    return _sqlite3_complete16(
       sql,
     );
   }
 
-  _dart_sqlite3_complete16? _sqlite3_complete16;
+  late final _sqlite3_complete16_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_complete16>>('sqlite3_complete16');
+  late final _dart_sqlite3_complete16 _sqlite3_complete16 =
+      _sqlite3_complete16_ptr.asFunction<_dart_sqlite3_complete16>();
 
   /// CAPI3REF: Register A Callback To Handle SQLITE_BUSY Errors
   /// KEYWORDS: {busy-handler callback} {busy handler}
@@ -851,17 +880,18 @@
     ffi.Pointer<ffi.NativeFunction<_typedefC_20>> arg1,
     ffi.Pointer<ffi.Void> arg2,
   ) {
-    return (_sqlite3_busy_handler ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_busy_handler>>(
-                'sqlite3_busy_handler')
-            .asFunction<_dart_sqlite3_busy_handler>())(
+    return _sqlite3_busy_handler(
       arg0,
       arg1,
       arg2,
     );
   }
 
-  _dart_sqlite3_busy_handler? _sqlite3_busy_handler;
+  late final _sqlite3_busy_handler_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_busy_handler>>(
+          'sqlite3_busy_handler');
+  late final _dart_sqlite3_busy_handler _sqlite3_busy_handler =
+      _sqlite3_busy_handler_ptr.asFunction<_dart_sqlite3_busy_handler>();
 
   /// CAPI3REF: Set A Busy Timeout
   /// METHOD: sqlite3
@@ -886,16 +916,17 @@
     ffi.Pointer<sqlite3> arg0,
     int ms,
   ) {
-    return (_sqlite3_busy_timeout ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_busy_timeout>>(
-                'sqlite3_busy_timeout')
-            .asFunction<_dart_sqlite3_busy_timeout>())(
+    return _sqlite3_busy_timeout(
       arg0,
       ms,
     );
   }
 
-  _dart_sqlite3_busy_timeout? _sqlite3_busy_timeout;
+  late final _sqlite3_busy_timeout_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_busy_timeout>>(
+          'sqlite3_busy_timeout');
+  late final _dart_sqlite3_busy_timeout _sqlite3_busy_timeout =
+      _sqlite3_busy_timeout_ptr.asFunction<_dart_sqlite3_busy_timeout>();
 
   /// CAPI3REF: Convenience Routines For Running Queries
   /// METHOD: sqlite3
@@ -976,9 +1007,7 @@
     ffi.Pointer<ffi.Int32> pnColumn,
     ffi.Pointer<ffi.Pointer<ffi.Int8>> pzErrmsg,
   ) {
-    return (_sqlite3_get_table ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_get_table>>('sqlite3_get_table')
-            .asFunction<_dart_sqlite3_get_table>())(
+    return _sqlite3_get_table(
       db,
       zSql,
       pazResult,
@@ -988,19 +1017,23 @@
     );
   }
 
-  _dart_sqlite3_get_table? _sqlite3_get_table;
+  late final _sqlite3_get_table_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_get_table>>('sqlite3_get_table');
+  late final _dart_sqlite3_get_table _sqlite3_get_table =
+      _sqlite3_get_table_ptr.asFunction<_dart_sqlite3_get_table>();
 
   void sqlite3_free_table(
     ffi.Pointer<ffi.Pointer<ffi.Int8>> result,
   ) {
-    return (_sqlite3_free_table ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_free_table>>('sqlite3_free_table')
-            .asFunction<_dart_sqlite3_free_table>())(
+    return _sqlite3_free_table(
       result,
     );
   }
 
-  _dart_sqlite3_free_table? _sqlite3_free_table;
+  late final _sqlite3_free_table_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_free_table>>('sqlite3_free_table');
+  late final _dart_sqlite3_free_table _sqlite3_free_table =
+      _sqlite3_free_table_ptr.asFunction<_dart_sqlite3_free_table>();
 
   /// CAPI3REF: Formatted String Printing Functions
   ///
@@ -1043,30 +1076,32 @@
   ffi.Pointer<ffi.Int8> sqlite3_mprintf(
     ffi.Pointer<ffi.Int8> arg0,
   ) {
-    return (_sqlite3_mprintf ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_mprintf>>('sqlite3_mprintf')
-            .asFunction<_dart_sqlite3_mprintf>())(
+    return _sqlite3_mprintf(
       arg0,
     );
   }
 
-  _dart_sqlite3_mprintf? _sqlite3_mprintf;
+  late final _sqlite3_mprintf_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_mprintf>>('sqlite3_mprintf');
+  late final _dart_sqlite3_mprintf _sqlite3_mprintf =
+      _sqlite3_mprintf_ptr.asFunction<_dart_sqlite3_mprintf>();
 
   ffi.Pointer<ffi.Int8> sqlite3_snprintf(
     int arg0,
     ffi.Pointer<ffi.Int8> arg1,
     ffi.Pointer<ffi.Int8> arg2,
   ) {
-    return (_sqlite3_snprintf ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_snprintf>>('sqlite3_snprintf')
-            .asFunction<_dart_sqlite3_snprintf>())(
+    return _sqlite3_snprintf(
       arg0,
       arg1,
       arg2,
     );
   }
 
-  _dart_sqlite3_snprintf? _sqlite3_snprintf;
+  late final _sqlite3_snprintf_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_snprintf>>('sqlite3_snprintf');
+  late final _dart_sqlite3_snprintf _sqlite3_snprintf =
+      _sqlite3_snprintf_ptr.asFunction<_dart_sqlite3_snprintf>();
 
   /// CAPI3REF: Memory Allocation Subsystem
   ///
@@ -1144,78 +1179,84 @@
   ffi.Pointer<ffi.Void> sqlite3_malloc(
     int arg0,
   ) {
-    return (_sqlite3_malloc ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_malloc>>('sqlite3_malloc')
-            .asFunction<_dart_sqlite3_malloc>())(
+    return _sqlite3_malloc(
       arg0,
     );
   }
 
-  _dart_sqlite3_malloc? _sqlite3_malloc;
+  late final _sqlite3_malloc_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_malloc>>('sqlite3_malloc');
+  late final _dart_sqlite3_malloc _sqlite3_malloc =
+      _sqlite3_malloc_ptr.asFunction<_dart_sqlite3_malloc>();
 
   ffi.Pointer<ffi.Void> sqlite3_malloc64(
     int arg0,
   ) {
-    return (_sqlite3_malloc64 ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_malloc64>>('sqlite3_malloc64')
-            .asFunction<_dart_sqlite3_malloc64>())(
+    return _sqlite3_malloc64(
       arg0,
     );
   }
 
-  _dart_sqlite3_malloc64? _sqlite3_malloc64;
+  late final _sqlite3_malloc64_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_malloc64>>('sqlite3_malloc64');
+  late final _dart_sqlite3_malloc64 _sqlite3_malloc64 =
+      _sqlite3_malloc64_ptr.asFunction<_dart_sqlite3_malloc64>();
 
   ffi.Pointer<ffi.Void> sqlite3_realloc(
     ffi.Pointer<ffi.Void> arg0,
     int arg1,
   ) {
-    return (_sqlite3_realloc ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_realloc>>('sqlite3_realloc')
-            .asFunction<_dart_sqlite3_realloc>())(
+    return _sqlite3_realloc(
       arg0,
       arg1,
     );
   }
 
-  _dart_sqlite3_realloc? _sqlite3_realloc;
+  late final _sqlite3_realloc_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_realloc>>('sqlite3_realloc');
+  late final _dart_sqlite3_realloc _sqlite3_realloc =
+      _sqlite3_realloc_ptr.asFunction<_dart_sqlite3_realloc>();
 
   ffi.Pointer<ffi.Void> sqlite3_realloc64(
     ffi.Pointer<ffi.Void> arg0,
     int arg1,
   ) {
-    return (_sqlite3_realloc64 ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_realloc64>>('sqlite3_realloc64')
-            .asFunction<_dart_sqlite3_realloc64>())(
+    return _sqlite3_realloc64(
       arg0,
       arg1,
     );
   }
 
-  _dart_sqlite3_realloc64? _sqlite3_realloc64;
+  late final _sqlite3_realloc64_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_realloc64>>('sqlite3_realloc64');
+  late final _dart_sqlite3_realloc64 _sqlite3_realloc64 =
+      _sqlite3_realloc64_ptr.asFunction<_dart_sqlite3_realloc64>();
 
   void sqlite3_free(
     ffi.Pointer<ffi.Void> arg0,
   ) {
-    return (_sqlite3_free ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_free>>('sqlite3_free')
-            .asFunction<_dart_sqlite3_free>())(
+    return _sqlite3_free(
       arg0,
     );
   }
 
-  _dart_sqlite3_free? _sqlite3_free;
+  late final _sqlite3_free_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_free>>('sqlite3_free');
+  late final _dart_sqlite3_free _sqlite3_free =
+      _sqlite3_free_ptr.asFunction<_dart_sqlite3_free>();
 
   int sqlite3_msize(
     ffi.Pointer<ffi.Void> arg0,
   ) {
-    return (_sqlite3_msize ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_msize>>('sqlite3_msize')
-            .asFunction<_dart_sqlite3_msize>())(
+    return _sqlite3_msize(
       arg0,
     );
   }
 
-  _dart_sqlite3_msize? _sqlite3_msize;
+  late final _sqlite3_msize_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_msize>>('sqlite3_msize');
+  late final _dart_sqlite3_msize _sqlite3_msize =
+      _sqlite3_msize_ptr.asFunction<_dart_sqlite3_msize>();
 
   /// CAPI3REF: Memory Allocator Statistics
   ///
@@ -1239,26 +1280,29 @@
   /// by [sqlite3_memory_highwater(1)] is the high-water mark
   /// prior to the reset.
   int sqlite3_memory_used() {
-    return (_sqlite3_memory_used ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_memory_used>>(
-                'sqlite3_memory_used')
-            .asFunction<_dart_sqlite3_memory_used>())();
+    return _sqlite3_memory_used();
   }
 
-  _dart_sqlite3_memory_used? _sqlite3_memory_used;
+  late final _sqlite3_memory_used_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_memory_used>>(
+          'sqlite3_memory_used');
+  late final _dart_sqlite3_memory_used _sqlite3_memory_used =
+      _sqlite3_memory_used_ptr.asFunction<_dart_sqlite3_memory_used>();
 
   int sqlite3_memory_highwater(
     int resetFlag,
   ) {
-    return (_sqlite3_memory_highwater ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_memory_highwater>>(
-                'sqlite3_memory_highwater')
-            .asFunction<_dart_sqlite3_memory_highwater>())(
+    return _sqlite3_memory_highwater(
       resetFlag,
     );
   }
 
-  _dart_sqlite3_memory_highwater? _sqlite3_memory_highwater;
+  late final _sqlite3_memory_highwater_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_memory_highwater>>(
+          'sqlite3_memory_highwater');
+  late final _dart_sqlite3_memory_highwater _sqlite3_memory_highwater =
+      _sqlite3_memory_highwater_ptr
+          .asFunction<_dart_sqlite3_memory_highwater>();
 
   /// CAPI3REF: Pseudo-Random Number Generator
   ///
@@ -1283,15 +1327,16 @@
     int N,
     ffi.Pointer<ffi.Void> P,
   ) {
-    return (_sqlite3_randomness ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_randomness>>('sqlite3_randomness')
-            .asFunction<_dart_sqlite3_randomness>())(
+    return _sqlite3_randomness(
       N,
       P,
     );
   }
 
-  _dart_sqlite3_randomness? _sqlite3_randomness;
+  late final _sqlite3_randomness_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_randomness>>('sqlite3_randomness');
+  late final _dart_sqlite3_randomness _sqlite3_randomness =
+      _sqlite3_randomness_ptr.asFunction<_dart_sqlite3_randomness>();
 
   /// CAPI3REF: Compile-Time Authorization Callbacks
   /// METHOD: sqlite3
@@ -1385,17 +1430,18 @@
     ffi.Pointer<ffi.NativeFunction<_typedefC_21>> xAuth,
     ffi.Pointer<ffi.Void> pUserData,
   ) {
-    return (_sqlite3_set_authorizer ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_set_authorizer>>(
-                'sqlite3_set_authorizer')
-            .asFunction<_dart_sqlite3_set_authorizer>())(
+    return _sqlite3_set_authorizer(
       arg0,
       xAuth,
       pUserData,
     );
   }
 
-  _dart_sqlite3_set_authorizer? _sqlite3_set_authorizer;
+  late final _sqlite3_set_authorizer_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_set_authorizer>>(
+          'sqlite3_set_authorizer');
+  late final _dart_sqlite3_set_authorizer _sqlite3_set_authorizer =
+      _sqlite3_set_authorizer_ptr.asFunction<_dart_sqlite3_set_authorizer>();
 
   /// CAPI3REF: Tracing And Profiling Functions
   /// METHOD: sqlite3
@@ -1432,32 +1478,34 @@
     ffi.Pointer<ffi.NativeFunction<_typedefC_22>> xTrace,
     ffi.Pointer<ffi.Void> arg2,
   ) {
-    return (_sqlite3_trace ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_trace>>('sqlite3_trace')
-            .asFunction<_dart_sqlite3_trace>())(
+    return _sqlite3_trace(
       arg0,
       xTrace,
       arg2,
     );
   }
 
-  _dart_sqlite3_trace? _sqlite3_trace;
+  late final _sqlite3_trace_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_trace>>('sqlite3_trace');
+  late final _dart_sqlite3_trace _sqlite3_trace =
+      _sqlite3_trace_ptr.asFunction<_dart_sqlite3_trace>();
 
   ffi.Pointer<ffi.Void> sqlite3_profile(
     ffi.Pointer<sqlite3> arg0,
     ffi.Pointer<ffi.NativeFunction<_typedefC_23>> xProfile,
     ffi.Pointer<ffi.Void> arg2,
   ) {
-    return (_sqlite3_profile ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_profile>>('sqlite3_profile')
-            .asFunction<_dart_sqlite3_profile>())(
+    return _sqlite3_profile(
       arg0,
       xProfile,
       arg2,
     );
   }
 
-  _dart_sqlite3_profile? _sqlite3_profile;
+  late final _sqlite3_profile_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_profile>>('sqlite3_profile');
+  late final _dart_sqlite3_profile _sqlite3_profile =
+      _sqlite3_profile_ptr.asFunction<_dart_sqlite3_profile>();
 
   /// CAPI3REF: SQL Trace Hook
   /// METHOD: sqlite3
@@ -1492,9 +1540,7 @@
     ffi.Pointer<ffi.NativeFunction<_typedefC_24>> xCallback,
     ffi.Pointer<ffi.Void> pCtx,
   ) {
-    return (_sqlite3_trace_v2 ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_trace_v2>>('sqlite3_trace_v2')
-            .asFunction<_dart_sqlite3_trace_v2>())(
+    return _sqlite3_trace_v2(
       arg0,
       uMask,
       xCallback,
@@ -1502,7 +1548,10 @@
     );
   }
 
-  _dart_sqlite3_trace_v2? _sqlite3_trace_v2;
+  late final _sqlite3_trace_v2_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_trace_v2>>('sqlite3_trace_v2');
+  late final _dart_sqlite3_trace_v2 _sqlite3_trace_v2 =
+      _sqlite3_trace_v2_ptr.asFunction<_dart_sqlite3_trace_v2>();
 
   /// CAPI3REF: Query Progress Callbacks
   /// METHOD: sqlite3
@@ -1539,10 +1588,7 @@
     ffi.Pointer<ffi.NativeFunction<_typedefC_25>> arg2,
     ffi.Pointer<ffi.Void> arg3,
   ) {
-    return (_sqlite3_progress_handler ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_progress_handler>>(
-                'sqlite3_progress_handler')
-            .asFunction<_dart_sqlite3_progress_handler>())(
+    return _sqlite3_progress_handler(
       arg0,
       arg1,
       arg2,
@@ -1550,7 +1596,12 @@
     );
   }
 
-  _dart_sqlite3_progress_handler? _sqlite3_progress_handler;
+  late final _sqlite3_progress_handler_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_progress_handler>>(
+          'sqlite3_progress_handler');
+  late final _dart_sqlite3_progress_handler _sqlite3_progress_handler =
+      _sqlite3_progress_handler_ptr
+          .asFunction<_dart_sqlite3_progress_handler>();
 
   /// CAPI3REF: Opening A New Database Connection
   /// CONSTRUCTOR: sqlite3
@@ -1807,29 +1858,31 @@
     ffi.Pointer<ffi.Int8> filename,
     ffi.Pointer<ffi.Pointer<sqlite3>> ppDb,
   ) {
-    return (_sqlite3_open ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_open>>('sqlite3_open')
-            .asFunction<_dart_sqlite3_open>())(
+    return _sqlite3_open(
       filename,
       ppDb,
     );
   }
 
-  _dart_sqlite3_open? _sqlite3_open;
+  late final _sqlite3_open_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_open>>('sqlite3_open');
+  late final _dart_sqlite3_open _sqlite3_open =
+      _sqlite3_open_ptr.asFunction<_dart_sqlite3_open>();
 
   int sqlite3_open16(
     ffi.Pointer<ffi.Void> filename,
     ffi.Pointer<ffi.Pointer<sqlite3>> ppDb,
   ) {
-    return (_sqlite3_open16 ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_open16>>('sqlite3_open16')
-            .asFunction<_dart_sqlite3_open16>())(
+    return _sqlite3_open16(
       filename,
       ppDb,
     );
   }
 
-  _dart_sqlite3_open16? _sqlite3_open16;
+  late final _sqlite3_open16_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_open16>>('sqlite3_open16');
+  late final _dart_sqlite3_open16 _sqlite3_open16 =
+      _sqlite3_open16_ptr.asFunction<_dart_sqlite3_open16>();
 
   int sqlite3_open_v2(
     ffi.Pointer<ffi.Int8> filename,
@@ -1837,9 +1890,7 @@
     int flags,
     ffi.Pointer<ffi.Int8> zVfs,
   ) {
-    return (_sqlite3_open_v2 ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_open_v2>>('sqlite3_open_v2')
-            .asFunction<_dart_sqlite3_open_v2>())(
+    return _sqlite3_open_v2(
       filename,
       ppDb,
       flags,
@@ -1847,7 +1898,10 @@
     );
   }
 
-  _dart_sqlite3_open_v2? _sqlite3_open_v2;
+  late final _sqlite3_open_v2_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_open_v2>>('sqlite3_open_v2');
+  late final _dart_sqlite3_open_v2 _sqlite3_open_v2 =
+      _sqlite3_open_v2_ptr.asFunction<_dart_sqlite3_open_v2>();
 
   /// CAPI3REF: Obtain Values For URI Parameters
   ///
@@ -1917,63 +1971,67 @@
     ffi.Pointer<ffi.Int8> zFilename,
     ffi.Pointer<ffi.Int8> zParam,
   ) {
-    return (_sqlite3_uri_parameter ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_uri_parameter>>(
-                'sqlite3_uri_parameter')
-            .asFunction<_dart_sqlite3_uri_parameter>())(
+    return _sqlite3_uri_parameter(
       zFilename,
       zParam,
     );
   }
 
-  _dart_sqlite3_uri_parameter? _sqlite3_uri_parameter;
+  late final _sqlite3_uri_parameter_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_uri_parameter>>(
+          'sqlite3_uri_parameter');
+  late final _dart_sqlite3_uri_parameter _sqlite3_uri_parameter =
+      _sqlite3_uri_parameter_ptr.asFunction<_dart_sqlite3_uri_parameter>();
 
   int sqlite3_uri_boolean(
     ffi.Pointer<ffi.Int8> zFile,
     ffi.Pointer<ffi.Int8> zParam,
     int bDefault,
   ) {
-    return (_sqlite3_uri_boolean ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_uri_boolean>>(
-                'sqlite3_uri_boolean')
-            .asFunction<_dart_sqlite3_uri_boolean>())(
+    return _sqlite3_uri_boolean(
       zFile,
       zParam,
       bDefault,
     );
   }
 
-  _dart_sqlite3_uri_boolean? _sqlite3_uri_boolean;
+  late final _sqlite3_uri_boolean_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_uri_boolean>>(
+          'sqlite3_uri_boolean');
+  late final _dart_sqlite3_uri_boolean _sqlite3_uri_boolean =
+      _sqlite3_uri_boolean_ptr.asFunction<_dart_sqlite3_uri_boolean>();
 
   int sqlite3_uri_int64(
     ffi.Pointer<ffi.Int8> arg0,
     ffi.Pointer<ffi.Int8> arg1,
     int arg2,
   ) {
-    return (_sqlite3_uri_int64 ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_uri_int64>>('sqlite3_uri_int64')
-            .asFunction<_dart_sqlite3_uri_int64>())(
+    return _sqlite3_uri_int64(
       arg0,
       arg1,
       arg2,
     );
   }
 
-  _dart_sqlite3_uri_int64? _sqlite3_uri_int64;
+  late final _sqlite3_uri_int64_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_uri_int64>>('sqlite3_uri_int64');
+  late final _dart_sqlite3_uri_int64 _sqlite3_uri_int64 =
+      _sqlite3_uri_int64_ptr.asFunction<_dart_sqlite3_uri_int64>();
 
   ffi.Pointer<ffi.Int8> sqlite3_uri_key(
     ffi.Pointer<ffi.Int8> zFilename,
     int N,
   ) {
-    return (_sqlite3_uri_key ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_uri_key>>('sqlite3_uri_key')
-            .asFunction<_dart_sqlite3_uri_key>())(
+    return _sqlite3_uri_key(
       zFilename,
       N,
     );
   }
 
-  _dart_sqlite3_uri_key? _sqlite3_uri_key;
+  late final _sqlite3_uri_key_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_uri_key>>('sqlite3_uri_key');
+  late final _dart_sqlite3_uri_key _sqlite3_uri_key =
+      _sqlite3_uri_key_ptr.asFunction<_dart_sqlite3_uri_key>();
 
   /// CAPI3REF:  Translate filenames
   ///
@@ -2003,41 +2061,46 @@
   ffi.Pointer<ffi.Int8> sqlite3_filename_database(
     ffi.Pointer<ffi.Int8> arg0,
   ) {
-    return (_sqlite3_filename_database ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_filename_database>>(
-                'sqlite3_filename_database')
-            .asFunction<_dart_sqlite3_filename_database>())(
+    return _sqlite3_filename_database(
       arg0,
     );
   }
 
-  _dart_sqlite3_filename_database? _sqlite3_filename_database;
+  late final _sqlite3_filename_database_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_filename_database>>(
+          'sqlite3_filename_database');
+  late final _dart_sqlite3_filename_database _sqlite3_filename_database =
+      _sqlite3_filename_database_ptr
+          .asFunction<_dart_sqlite3_filename_database>();
 
   ffi.Pointer<ffi.Int8> sqlite3_filename_journal(
     ffi.Pointer<ffi.Int8> arg0,
   ) {
-    return (_sqlite3_filename_journal ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_filename_journal>>(
-                'sqlite3_filename_journal')
-            .asFunction<_dart_sqlite3_filename_journal>())(
+    return _sqlite3_filename_journal(
       arg0,
     );
   }
 
-  _dart_sqlite3_filename_journal? _sqlite3_filename_journal;
+  late final _sqlite3_filename_journal_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_filename_journal>>(
+          'sqlite3_filename_journal');
+  late final _dart_sqlite3_filename_journal _sqlite3_filename_journal =
+      _sqlite3_filename_journal_ptr
+          .asFunction<_dart_sqlite3_filename_journal>();
 
   ffi.Pointer<ffi.Int8> sqlite3_filename_wal(
     ffi.Pointer<ffi.Int8> arg0,
   ) {
-    return (_sqlite3_filename_wal ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_filename_wal>>(
-                'sqlite3_filename_wal')
-            .asFunction<_dart_sqlite3_filename_wal>())(
+    return _sqlite3_filename_wal(
       arg0,
     );
   }
 
-  _dart_sqlite3_filename_wal? _sqlite3_filename_wal;
+  late final _sqlite3_filename_wal_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_filename_wal>>(
+          'sqlite3_filename_wal');
+  late final _dart_sqlite3_filename_wal _sqlite3_filename_wal =
+      _sqlite3_filename_wal_ptr.asFunction<_dart_sqlite3_filename_wal>();
 
   /// CAPI3REF:  Database File Corresponding To A Journal
   ///
@@ -2057,15 +2120,17 @@
   ffi.Pointer<sqlite3_file> sqlite3_database_file_object(
     ffi.Pointer<ffi.Int8> arg0,
   ) {
-    return (_sqlite3_database_file_object ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_database_file_object>>(
-                'sqlite3_database_file_object')
-            .asFunction<_dart_sqlite3_database_file_object>())(
+    return _sqlite3_database_file_object(
       arg0,
     );
   }
 
-  _dart_sqlite3_database_file_object? _sqlite3_database_file_object;
+  late final _sqlite3_database_file_object_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_database_file_object>>(
+          'sqlite3_database_file_object');
+  late final _dart_sqlite3_database_file_object _sqlite3_database_file_object =
+      _sqlite3_database_file_object_ptr
+          .asFunction<_dart_sqlite3_database_file_object>();
 
   /// CAPI3REF: Create and Destroy VFS Filenames
   ///
@@ -2117,10 +2182,7 @@
     int nParam,
     ffi.Pointer<ffi.Pointer<ffi.Int8>> azParam,
   ) {
-    return (_sqlite3_create_filename ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_create_filename>>(
-                'sqlite3_create_filename')
-            .asFunction<_dart_sqlite3_create_filename>())(
+    return _sqlite3_create_filename(
       zDatabase,
       zJournal,
       zWal,
@@ -2129,20 +2191,25 @@
     );
   }
 
-  _dart_sqlite3_create_filename? _sqlite3_create_filename;
+  late final _sqlite3_create_filename_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_create_filename>>(
+          'sqlite3_create_filename');
+  late final _dart_sqlite3_create_filename _sqlite3_create_filename =
+      _sqlite3_create_filename_ptr.asFunction<_dart_sqlite3_create_filename>();
 
   void sqlite3_free_filename(
     ffi.Pointer<ffi.Int8> arg0,
   ) {
-    return (_sqlite3_free_filename ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_free_filename>>(
-                'sqlite3_free_filename')
-            .asFunction<_dart_sqlite3_free_filename>())(
+    return _sqlite3_free_filename(
       arg0,
     );
   }
 
-  _dart_sqlite3_free_filename? _sqlite3_free_filename;
+  late final _sqlite3_free_filename_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_free_filename>>(
+          'sqlite3_free_filename');
+  late final _dart_sqlite3_free_filename _sqlite3_free_filename =
+      _sqlite3_free_filename_ptr.asFunction<_dart_sqlite3_free_filename>();
 
   /// CAPI3REF: Error Codes And Messages
   /// METHOD: sqlite3
@@ -2197,63 +2264,69 @@
   int sqlite3_errcode(
     ffi.Pointer<sqlite3> db,
   ) {
-    return (_sqlite3_errcode ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_errcode>>('sqlite3_errcode')
-            .asFunction<_dart_sqlite3_errcode>())(
+    return _sqlite3_errcode(
       db,
     );
   }
 
-  _dart_sqlite3_errcode? _sqlite3_errcode;
+  late final _sqlite3_errcode_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_errcode>>('sqlite3_errcode');
+  late final _dart_sqlite3_errcode _sqlite3_errcode =
+      _sqlite3_errcode_ptr.asFunction<_dart_sqlite3_errcode>();
 
   int sqlite3_extended_errcode(
     ffi.Pointer<sqlite3> db,
   ) {
-    return (_sqlite3_extended_errcode ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_extended_errcode>>(
-                'sqlite3_extended_errcode')
-            .asFunction<_dart_sqlite3_extended_errcode>())(
+    return _sqlite3_extended_errcode(
       db,
     );
   }
 
-  _dart_sqlite3_extended_errcode? _sqlite3_extended_errcode;
+  late final _sqlite3_extended_errcode_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_extended_errcode>>(
+          'sqlite3_extended_errcode');
+  late final _dart_sqlite3_extended_errcode _sqlite3_extended_errcode =
+      _sqlite3_extended_errcode_ptr
+          .asFunction<_dart_sqlite3_extended_errcode>();
 
   ffi.Pointer<ffi.Int8> sqlite3_errmsg(
     ffi.Pointer<sqlite3> arg0,
   ) {
-    return (_sqlite3_errmsg ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_errmsg>>('sqlite3_errmsg')
-            .asFunction<_dart_sqlite3_errmsg>())(
+    return _sqlite3_errmsg(
       arg0,
     );
   }
 
-  _dart_sqlite3_errmsg? _sqlite3_errmsg;
+  late final _sqlite3_errmsg_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_errmsg>>('sqlite3_errmsg');
+  late final _dart_sqlite3_errmsg _sqlite3_errmsg =
+      _sqlite3_errmsg_ptr.asFunction<_dart_sqlite3_errmsg>();
 
   ffi.Pointer<ffi.Void> sqlite3_errmsg16(
     ffi.Pointer<sqlite3> arg0,
   ) {
-    return (_sqlite3_errmsg16 ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_errmsg16>>('sqlite3_errmsg16')
-            .asFunction<_dart_sqlite3_errmsg16>())(
+    return _sqlite3_errmsg16(
       arg0,
     );
   }
 
-  _dart_sqlite3_errmsg16? _sqlite3_errmsg16;
+  late final _sqlite3_errmsg16_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_errmsg16>>('sqlite3_errmsg16');
+  late final _dart_sqlite3_errmsg16 _sqlite3_errmsg16 =
+      _sqlite3_errmsg16_ptr.asFunction<_dart_sqlite3_errmsg16>();
 
   ffi.Pointer<ffi.Int8> sqlite3_errstr(
     int arg0,
   ) {
-    return (_sqlite3_errstr ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_errstr>>('sqlite3_errstr')
-            .asFunction<_dart_sqlite3_errstr>())(
+    return _sqlite3_errstr(
       arg0,
     );
   }
 
-  _dart_sqlite3_errstr? _sqlite3_errstr;
+  late final _sqlite3_errstr_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_errstr>>('sqlite3_errstr');
+  late final _dart_sqlite3_errstr _sqlite3_errstr =
+      _sqlite3_errstr_ptr.asFunction<_dart_sqlite3_errstr>();
 
   /// CAPI3REF: Run-time Limits
   /// METHOD: sqlite3
@@ -2298,16 +2371,17 @@
     int id,
     int newVal,
   ) {
-    return (_sqlite3_limit ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_limit>>('sqlite3_limit')
-            .asFunction<_dart_sqlite3_limit>())(
+    return _sqlite3_limit(
       arg0,
       id,
       newVal,
     );
   }
 
-  _dart_sqlite3_limit? _sqlite3_limit;
+  late final _sqlite3_limit_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_limit>>('sqlite3_limit');
+  late final _dart_sqlite3_limit _sqlite3_limit =
+      _sqlite3_limit_ptr.asFunction<_dart_sqlite3_limit>();
 
   /// CAPI3REF: Compiling An SQL Statement
   /// KEYWORDS: {SQL statement compiler}
@@ -2414,9 +2488,7 @@
     ffi.Pointer<ffi.Pointer<sqlite3_stmt>> ppStmt,
     ffi.Pointer<ffi.Pointer<ffi.Int8>> pzTail,
   ) {
-    return (_sqlite3_prepare ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_prepare>>('sqlite3_prepare')
-            .asFunction<_dart_sqlite3_prepare>())(
+    return _sqlite3_prepare(
       db,
       zSql,
       nByte,
@@ -2425,7 +2497,10 @@
     );
   }
 
-  _dart_sqlite3_prepare? _sqlite3_prepare;
+  late final _sqlite3_prepare_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_prepare>>('sqlite3_prepare');
+  late final _dart_sqlite3_prepare _sqlite3_prepare =
+      _sqlite3_prepare_ptr.asFunction<_dart_sqlite3_prepare>();
 
   int sqlite3_prepare_v2(
     ffi.Pointer<sqlite3> db,
@@ -2434,9 +2509,7 @@
     ffi.Pointer<ffi.Pointer<sqlite3_stmt>> ppStmt,
     ffi.Pointer<ffi.Pointer<ffi.Int8>> pzTail,
   ) {
-    return (_sqlite3_prepare_v2 ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_prepare_v2>>('sqlite3_prepare_v2')
-            .asFunction<_dart_sqlite3_prepare_v2>())(
+    return _sqlite3_prepare_v2(
       db,
       zSql,
       nByte,
@@ -2445,7 +2518,10 @@
     );
   }
 
-  _dart_sqlite3_prepare_v2? _sqlite3_prepare_v2;
+  late final _sqlite3_prepare_v2_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_prepare_v2>>('sqlite3_prepare_v2');
+  late final _dart_sqlite3_prepare_v2 _sqlite3_prepare_v2 =
+      _sqlite3_prepare_v2_ptr.asFunction<_dart_sqlite3_prepare_v2>();
 
   int sqlite3_prepare_v3(
     ffi.Pointer<sqlite3> db,
@@ -2455,9 +2531,7 @@
     ffi.Pointer<ffi.Pointer<sqlite3_stmt>> ppStmt,
     ffi.Pointer<ffi.Pointer<ffi.Int8>> pzTail,
   ) {
-    return (_sqlite3_prepare_v3 ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_prepare_v3>>('sqlite3_prepare_v3')
-            .asFunction<_dart_sqlite3_prepare_v3>())(
+    return _sqlite3_prepare_v3(
       db,
       zSql,
       nByte,
@@ -2467,7 +2541,10 @@
     );
   }
 
-  _dart_sqlite3_prepare_v3? _sqlite3_prepare_v3;
+  late final _sqlite3_prepare_v3_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_prepare_v3>>('sqlite3_prepare_v3');
+  late final _dart_sqlite3_prepare_v3 _sqlite3_prepare_v3 =
+      _sqlite3_prepare_v3_ptr.asFunction<_dart_sqlite3_prepare_v3>();
 
   int sqlite3_prepare16(
     ffi.Pointer<sqlite3> db,
@@ -2476,9 +2553,7 @@
     ffi.Pointer<ffi.Pointer<sqlite3_stmt>> ppStmt,
     ffi.Pointer<ffi.Pointer<ffi.Void>> pzTail,
   ) {
-    return (_sqlite3_prepare16 ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_prepare16>>('sqlite3_prepare16')
-            .asFunction<_dart_sqlite3_prepare16>())(
+    return _sqlite3_prepare16(
       db,
       zSql,
       nByte,
@@ -2487,7 +2562,10 @@
     );
   }
 
-  _dart_sqlite3_prepare16? _sqlite3_prepare16;
+  late final _sqlite3_prepare16_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_prepare16>>('sqlite3_prepare16');
+  late final _dart_sqlite3_prepare16 _sqlite3_prepare16 =
+      _sqlite3_prepare16_ptr.asFunction<_dart_sqlite3_prepare16>();
 
   int sqlite3_prepare16_v2(
     ffi.Pointer<sqlite3> db,
@@ -2496,10 +2574,7 @@
     ffi.Pointer<ffi.Pointer<sqlite3_stmt>> ppStmt,
     ffi.Pointer<ffi.Pointer<ffi.Void>> pzTail,
   ) {
-    return (_sqlite3_prepare16_v2 ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_prepare16_v2>>(
-                'sqlite3_prepare16_v2')
-            .asFunction<_dart_sqlite3_prepare16_v2>())(
+    return _sqlite3_prepare16_v2(
       db,
       zSql,
       nByte,
@@ -2508,7 +2583,11 @@
     );
   }
 
-  _dart_sqlite3_prepare16_v2? _sqlite3_prepare16_v2;
+  late final _sqlite3_prepare16_v2_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_prepare16_v2>>(
+          'sqlite3_prepare16_v2');
+  late final _dart_sqlite3_prepare16_v2 _sqlite3_prepare16_v2 =
+      _sqlite3_prepare16_v2_ptr.asFunction<_dart_sqlite3_prepare16_v2>();
 
   int sqlite3_prepare16_v3(
     ffi.Pointer<sqlite3> db,
@@ -2518,10 +2597,7 @@
     ffi.Pointer<ffi.Pointer<sqlite3_stmt>> ppStmt,
     ffi.Pointer<ffi.Pointer<ffi.Void>> pzTail,
   ) {
-    return (_sqlite3_prepare16_v3 ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_prepare16_v3>>(
-                'sqlite3_prepare16_v3')
-            .asFunction<_dart_sqlite3_prepare16_v3>())(
+    return _sqlite3_prepare16_v3(
       db,
       zSql,
       nByte,
@@ -2531,7 +2607,11 @@
     );
   }
 
-  _dart_sqlite3_prepare16_v3? _sqlite3_prepare16_v3;
+  late final _sqlite3_prepare16_v3_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_prepare16_v3>>(
+          'sqlite3_prepare16_v3');
+  late final _dart_sqlite3_prepare16_v3 _sqlite3_prepare16_v3 =
+      _sqlite3_prepare16_v3_ptr.asFunction<_dart_sqlite3_prepare16_v3>();
 
   /// CAPI3REF: Retrieving Statement SQL
   /// METHOD: sqlite3_stmt
@@ -2572,40 +2652,43 @@
   ffi.Pointer<ffi.Int8> sqlite3_sql(
     ffi.Pointer<sqlite3_stmt> pStmt,
   ) {
-    return (_sqlite3_sql ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_sql>>('sqlite3_sql')
-            .asFunction<_dart_sqlite3_sql>())(
+    return _sqlite3_sql(
       pStmt,
     );
   }
 
-  _dart_sqlite3_sql? _sqlite3_sql;
+  late final _sqlite3_sql_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_sql>>('sqlite3_sql');
+  late final _dart_sqlite3_sql _sqlite3_sql =
+      _sqlite3_sql_ptr.asFunction<_dart_sqlite3_sql>();
 
   ffi.Pointer<ffi.Int8> sqlite3_expanded_sql(
     ffi.Pointer<sqlite3_stmt> pStmt,
   ) {
-    return (_sqlite3_expanded_sql ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_expanded_sql>>(
-                'sqlite3_expanded_sql')
-            .asFunction<_dart_sqlite3_expanded_sql>())(
+    return _sqlite3_expanded_sql(
       pStmt,
     );
   }
 
-  _dart_sqlite3_expanded_sql? _sqlite3_expanded_sql;
+  late final _sqlite3_expanded_sql_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_expanded_sql>>(
+          'sqlite3_expanded_sql');
+  late final _dart_sqlite3_expanded_sql _sqlite3_expanded_sql =
+      _sqlite3_expanded_sql_ptr.asFunction<_dart_sqlite3_expanded_sql>();
 
   ffi.Pointer<ffi.Int8> sqlite3_normalized_sql(
     ffi.Pointer<sqlite3_stmt> pStmt,
   ) {
-    return (_sqlite3_normalized_sql ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_normalized_sql>>(
-                'sqlite3_normalized_sql')
-            .asFunction<_dart_sqlite3_normalized_sql>())(
+    return _sqlite3_normalized_sql(
       pStmt,
     );
   }
 
-  _dart_sqlite3_normalized_sql? _sqlite3_normalized_sql;
+  late final _sqlite3_normalized_sql_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_normalized_sql>>(
+          'sqlite3_normalized_sql');
+  late final _dart_sqlite3_normalized_sql _sqlite3_normalized_sql =
+      _sqlite3_normalized_sql_ptr.asFunction<_dart_sqlite3_normalized_sql>();
 
   /// CAPI3REF: Determine If An SQL Statement Writes The Database
   /// METHOD: sqlite3_stmt
@@ -2642,15 +2725,16 @@
   int sqlite3_stmt_readonly(
     ffi.Pointer<sqlite3_stmt> pStmt,
   ) {
-    return (_sqlite3_stmt_readonly ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_stmt_readonly>>(
-                'sqlite3_stmt_readonly')
-            .asFunction<_dart_sqlite3_stmt_readonly>())(
+    return _sqlite3_stmt_readonly(
       pStmt,
     );
   }
 
-  _dart_sqlite3_stmt_readonly? _sqlite3_stmt_readonly;
+  late final _sqlite3_stmt_readonly_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_stmt_readonly>>(
+          'sqlite3_stmt_readonly');
+  late final _dart_sqlite3_stmt_readonly _sqlite3_stmt_readonly =
+      _sqlite3_stmt_readonly_ptr.asFunction<_dart_sqlite3_stmt_readonly>();
 
   /// CAPI3REF: Query The EXPLAIN Setting For A Prepared Statement
   /// METHOD: sqlite3_stmt
@@ -2663,15 +2747,16 @@
   int sqlite3_stmt_isexplain(
     ffi.Pointer<sqlite3_stmt> pStmt,
   ) {
-    return (_sqlite3_stmt_isexplain ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_stmt_isexplain>>(
-                'sqlite3_stmt_isexplain')
-            .asFunction<_dart_sqlite3_stmt_isexplain>())(
+    return _sqlite3_stmt_isexplain(
       pStmt,
     );
   }
 
-  _dart_sqlite3_stmt_isexplain? _sqlite3_stmt_isexplain;
+  late final _sqlite3_stmt_isexplain_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_stmt_isexplain>>(
+          'sqlite3_stmt_isexplain');
+  late final _dart_sqlite3_stmt_isexplain _sqlite3_stmt_isexplain =
+      _sqlite3_stmt_isexplain_ptr.asFunction<_dart_sqlite3_stmt_isexplain>();
 
   /// CAPI3REF: Determine If A Prepared Statement Has Been Reset
   /// METHOD: sqlite3_stmt
@@ -2693,14 +2778,15 @@
   int sqlite3_stmt_busy(
     ffi.Pointer<sqlite3_stmt> arg0,
   ) {
-    return (_sqlite3_stmt_busy ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_stmt_busy>>('sqlite3_stmt_busy')
-            .asFunction<_dart_sqlite3_stmt_busy>())(
+    return _sqlite3_stmt_busy(
       arg0,
     );
   }
 
-  _dart_sqlite3_stmt_busy? _sqlite3_stmt_busy;
+  late final _sqlite3_stmt_busy_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_stmt_busy>>('sqlite3_stmt_busy');
+  late final _dart_sqlite3_stmt_busy _sqlite3_stmt_busy =
+      _sqlite3_stmt_busy_ptr.asFunction<_dart_sqlite3_stmt_busy>();
 
   /// CAPI3REF: Binding Values To Prepared Statements
   /// KEYWORDS: {host parameter} {host parameters} {host parameter name}
@@ -2843,9 +2929,7 @@
     int n,
     ffi.Pointer<ffi.NativeFunction<_typedefC_26>> arg4,
   ) {
-    return (_sqlite3_bind_blob ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_bind_blob>>('sqlite3_bind_blob')
-            .asFunction<_dart_sqlite3_bind_blob>())(
+    return _sqlite3_bind_blob(
       arg0,
       arg1,
       arg2,
@@ -2854,7 +2938,10 @@
     );
   }
 
-  _dart_sqlite3_bind_blob? _sqlite3_bind_blob;
+  late final _sqlite3_bind_blob_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_bind_blob>>('sqlite3_bind_blob');
+  late final _dart_sqlite3_bind_blob _sqlite3_bind_blob =
+      _sqlite3_bind_blob_ptr.asFunction<_dart_sqlite3_bind_blob>();
 
   int sqlite3_bind_blob64(
     ffi.Pointer<sqlite3_stmt> arg0,
@@ -2863,10 +2950,7 @@
     int arg3,
     ffi.Pointer<ffi.NativeFunction<_typedefC_27>> arg4,
   ) {
-    return (_sqlite3_bind_blob64 ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_bind_blob64>>(
-                'sqlite3_bind_blob64')
-            .asFunction<_dart_sqlite3_bind_blob64>())(
+    return _sqlite3_bind_blob64(
       arg0,
       arg1,
       arg2,
@@ -2875,70 +2959,78 @@
     );
   }
 
-  _dart_sqlite3_bind_blob64? _sqlite3_bind_blob64;
+  late final _sqlite3_bind_blob64_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_bind_blob64>>(
+          'sqlite3_bind_blob64');
+  late final _dart_sqlite3_bind_blob64 _sqlite3_bind_blob64 =
+      _sqlite3_bind_blob64_ptr.asFunction<_dart_sqlite3_bind_blob64>();
 
   int sqlite3_bind_double(
     ffi.Pointer<sqlite3_stmt> arg0,
     int arg1,
     double arg2,
   ) {
-    return (_sqlite3_bind_double ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_bind_double>>(
-                'sqlite3_bind_double')
-            .asFunction<_dart_sqlite3_bind_double>())(
+    return _sqlite3_bind_double(
       arg0,
       arg1,
       arg2,
     );
   }
 
-  _dart_sqlite3_bind_double? _sqlite3_bind_double;
+  late final _sqlite3_bind_double_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_bind_double>>(
+          'sqlite3_bind_double');
+  late final _dart_sqlite3_bind_double _sqlite3_bind_double =
+      _sqlite3_bind_double_ptr.asFunction<_dart_sqlite3_bind_double>();
 
   int sqlite3_bind_int(
     ffi.Pointer<sqlite3_stmt> arg0,
     int arg1,
     int arg2,
   ) {
-    return (_sqlite3_bind_int ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_bind_int>>('sqlite3_bind_int')
-            .asFunction<_dart_sqlite3_bind_int>())(
+    return _sqlite3_bind_int(
       arg0,
       arg1,
       arg2,
     );
   }
 
-  _dart_sqlite3_bind_int? _sqlite3_bind_int;
+  late final _sqlite3_bind_int_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_bind_int>>('sqlite3_bind_int');
+  late final _dart_sqlite3_bind_int _sqlite3_bind_int =
+      _sqlite3_bind_int_ptr.asFunction<_dart_sqlite3_bind_int>();
 
   int sqlite3_bind_int64(
     ffi.Pointer<sqlite3_stmt> arg0,
     int arg1,
     int arg2,
   ) {
-    return (_sqlite3_bind_int64 ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_bind_int64>>('sqlite3_bind_int64')
-            .asFunction<_dart_sqlite3_bind_int64>())(
+    return _sqlite3_bind_int64(
       arg0,
       arg1,
       arg2,
     );
   }
 
-  _dart_sqlite3_bind_int64? _sqlite3_bind_int64;
+  late final _sqlite3_bind_int64_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_bind_int64>>('sqlite3_bind_int64');
+  late final _dart_sqlite3_bind_int64 _sqlite3_bind_int64 =
+      _sqlite3_bind_int64_ptr.asFunction<_dart_sqlite3_bind_int64>();
 
   int sqlite3_bind_null(
     ffi.Pointer<sqlite3_stmt> arg0,
     int arg1,
   ) {
-    return (_sqlite3_bind_null ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_bind_null>>('sqlite3_bind_null')
-            .asFunction<_dart_sqlite3_bind_null>())(
+    return _sqlite3_bind_null(
       arg0,
       arg1,
     );
   }
 
-  _dart_sqlite3_bind_null? _sqlite3_bind_null;
+  late final _sqlite3_bind_null_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_bind_null>>('sqlite3_bind_null');
+  late final _dart_sqlite3_bind_null _sqlite3_bind_null =
+      _sqlite3_bind_null_ptr.asFunction<_dart_sqlite3_bind_null>();
 
   int sqlite3_bind_text(
     ffi.Pointer<sqlite3_stmt> arg0,
@@ -2947,9 +3039,7 @@
     int arg3,
     ffi.Pointer<ffi.NativeFunction<_typedefC_28>> arg4,
   ) {
-    return (_sqlite3_bind_text ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_bind_text>>('sqlite3_bind_text')
-            .asFunction<_dart_sqlite3_bind_text>())(
+    return _sqlite3_bind_text(
       arg0,
       arg1,
       arg2,
@@ -2958,7 +3048,10 @@
     );
   }
 
-  _dart_sqlite3_bind_text? _sqlite3_bind_text;
+  late final _sqlite3_bind_text_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_bind_text>>('sqlite3_bind_text');
+  late final _dart_sqlite3_bind_text _sqlite3_bind_text =
+      _sqlite3_bind_text_ptr.asFunction<_dart_sqlite3_bind_text>();
 
   int sqlite3_bind_text16(
     ffi.Pointer<sqlite3_stmt> arg0,
@@ -2967,10 +3060,7 @@
     int arg3,
     ffi.Pointer<ffi.NativeFunction<_typedefC_29>> arg4,
   ) {
-    return (_sqlite3_bind_text16 ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_bind_text16>>(
-                'sqlite3_bind_text16')
-            .asFunction<_dart_sqlite3_bind_text16>())(
+    return _sqlite3_bind_text16(
       arg0,
       arg1,
       arg2,
@@ -2979,7 +3069,11 @@
     );
   }
 
-  _dart_sqlite3_bind_text16? _sqlite3_bind_text16;
+  late final _sqlite3_bind_text16_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_bind_text16>>(
+          'sqlite3_bind_text16');
+  late final _dart_sqlite3_bind_text16 _sqlite3_bind_text16 =
+      _sqlite3_bind_text16_ptr.asFunction<_dart_sqlite3_bind_text16>();
 
   int sqlite3_bind_text64(
     ffi.Pointer<sqlite3_stmt> arg0,
@@ -2989,10 +3083,7 @@
     ffi.Pointer<ffi.NativeFunction<_typedefC_30>> arg4,
     int encoding,
   ) {
-    return (_sqlite3_bind_text64 ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_bind_text64>>(
-                'sqlite3_bind_text64')
-            .asFunction<_dart_sqlite3_bind_text64>())(
+    return _sqlite3_bind_text64(
       arg0,
       arg1,
       arg2,
@@ -3002,23 +3093,28 @@
     );
   }
 
-  _dart_sqlite3_bind_text64? _sqlite3_bind_text64;
+  late final _sqlite3_bind_text64_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_bind_text64>>(
+          'sqlite3_bind_text64');
+  late final _dart_sqlite3_bind_text64 _sqlite3_bind_text64 =
+      _sqlite3_bind_text64_ptr.asFunction<_dart_sqlite3_bind_text64>();
 
   int sqlite3_bind_value(
     ffi.Pointer<sqlite3_stmt> arg0,
     int arg1,
     ffi.Pointer<sqlite3_value> arg2,
   ) {
-    return (_sqlite3_bind_value ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_bind_value>>('sqlite3_bind_value')
-            .asFunction<_dart_sqlite3_bind_value>())(
+    return _sqlite3_bind_value(
       arg0,
       arg1,
       arg2,
     );
   }
 
-  _dart_sqlite3_bind_value? _sqlite3_bind_value;
+  late final _sqlite3_bind_value_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_bind_value>>('sqlite3_bind_value');
+  late final _dart_sqlite3_bind_value _sqlite3_bind_value =
+      _sqlite3_bind_value_ptr.asFunction<_dart_sqlite3_bind_value>();
 
   int sqlite3_bind_pointer(
     ffi.Pointer<sqlite3_stmt> arg0,
@@ -3027,10 +3123,7 @@
     ffi.Pointer<ffi.Int8> arg3,
     ffi.Pointer<ffi.NativeFunction<_typedefC_31>> arg4,
   ) {
-    return (_sqlite3_bind_pointer ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_bind_pointer>>(
-                'sqlite3_bind_pointer')
-            .asFunction<_dart_sqlite3_bind_pointer>())(
+    return _sqlite3_bind_pointer(
       arg0,
       arg1,
       arg2,
@@ -3039,41 +3132,47 @@
     );
   }
 
-  _dart_sqlite3_bind_pointer? _sqlite3_bind_pointer;
+  late final _sqlite3_bind_pointer_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_bind_pointer>>(
+          'sqlite3_bind_pointer');
+  late final _dart_sqlite3_bind_pointer _sqlite3_bind_pointer =
+      _sqlite3_bind_pointer_ptr.asFunction<_dart_sqlite3_bind_pointer>();
 
   int sqlite3_bind_zeroblob(
     ffi.Pointer<sqlite3_stmt> arg0,
     int arg1,
     int n,
   ) {
-    return (_sqlite3_bind_zeroblob ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_bind_zeroblob>>(
-                'sqlite3_bind_zeroblob')
-            .asFunction<_dart_sqlite3_bind_zeroblob>())(
+    return _sqlite3_bind_zeroblob(
       arg0,
       arg1,
       n,
     );
   }
 
-  _dart_sqlite3_bind_zeroblob? _sqlite3_bind_zeroblob;
+  late final _sqlite3_bind_zeroblob_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_bind_zeroblob>>(
+          'sqlite3_bind_zeroblob');
+  late final _dart_sqlite3_bind_zeroblob _sqlite3_bind_zeroblob =
+      _sqlite3_bind_zeroblob_ptr.asFunction<_dart_sqlite3_bind_zeroblob>();
 
   int sqlite3_bind_zeroblob64(
     ffi.Pointer<sqlite3_stmt> arg0,
     int arg1,
     int arg2,
   ) {
-    return (_sqlite3_bind_zeroblob64 ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_bind_zeroblob64>>(
-                'sqlite3_bind_zeroblob64')
-            .asFunction<_dart_sqlite3_bind_zeroblob64>())(
+    return _sqlite3_bind_zeroblob64(
       arg0,
       arg1,
       arg2,
     );
   }
 
-  _dart_sqlite3_bind_zeroblob64? _sqlite3_bind_zeroblob64;
+  late final _sqlite3_bind_zeroblob64_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_bind_zeroblob64>>(
+          'sqlite3_bind_zeroblob64');
+  late final _dart_sqlite3_bind_zeroblob64 _sqlite3_bind_zeroblob64 =
+      _sqlite3_bind_zeroblob64_ptr.asFunction<_dart_sqlite3_bind_zeroblob64>();
 
   /// CAPI3REF: Number Of SQL Parameters
   /// METHOD: sqlite3_stmt
@@ -3095,15 +3194,17 @@
   int sqlite3_bind_parameter_count(
     ffi.Pointer<sqlite3_stmt> arg0,
   ) {
-    return (_sqlite3_bind_parameter_count ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_bind_parameter_count>>(
-                'sqlite3_bind_parameter_count')
-            .asFunction<_dart_sqlite3_bind_parameter_count>())(
+    return _sqlite3_bind_parameter_count(
       arg0,
     );
   }
 
-  _dart_sqlite3_bind_parameter_count? _sqlite3_bind_parameter_count;
+  late final _sqlite3_bind_parameter_count_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_bind_parameter_count>>(
+          'sqlite3_bind_parameter_count');
+  late final _dart_sqlite3_bind_parameter_count _sqlite3_bind_parameter_count =
+      _sqlite3_bind_parameter_count_ptr
+          .asFunction<_dart_sqlite3_bind_parameter_count>();
 
   /// CAPI3REF: Name Of A Host Parameter
   /// METHOD: sqlite3_stmt
@@ -3133,16 +3234,18 @@
     ffi.Pointer<sqlite3_stmt> arg0,
     int arg1,
   ) {
-    return (_sqlite3_bind_parameter_name ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_bind_parameter_name>>(
-                'sqlite3_bind_parameter_name')
-            .asFunction<_dart_sqlite3_bind_parameter_name>())(
+    return _sqlite3_bind_parameter_name(
       arg0,
       arg1,
     );
   }
 
-  _dart_sqlite3_bind_parameter_name? _sqlite3_bind_parameter_name;
+  late final _sqlite3_bind_parameter_name_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_bind_parameter_name>>(
+          'sqlite3_bind_parameter_name');
+  late final _dart_sqlite3_bind_parameter_name _sqlite3_bind_parameter_name =
+      _sqlite3_bind_parameter_name_ptr
+          .asFunction<_dart_sqlite3_bind_parameter_name>();
 
   /// CAPI3REF: Index Of A Parameter With A Given Name
   /// METHOD: sqlite3_stmt
@@ -3162,16 +3265,18 @@
     ffi.Pointer<sqlite3_stmt> arg0,
     ffi.Pointer<ffi.Int8> zName,
   ) {
-    return (_sqlite3_bind_parameter_index ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_bind_parameter_index>>(
-                'sqlite3_bind_parameter_index')
-            .asFunction<_dart_sqlite3_bind_parameter_index>())(
+    return _sqlite3_bind_parameter_index(
       arg0,
       zName,
     );
   }
 
-  _dart_sqlite3_bind_parameter_index? _sqlite3_bind_parameter_index;
+  late final _sqlite3_bind_parameter_index_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_bind_parameter_index>>(
+          'sqlite3_bind_parameter_index');
+  late final _dart_sqlite3_bind_parameter_index _sqlite3_bind_parameter_index =
+      _sqlite3_bind_parameter_index_ptr
+          .asFunction<_dart_sqlite3_bind_parameter_index>();
 
   /// CAPI3REF: Reset All Bindings On A Prepared Statement
   /// METHOD: sqlite3_stmt
@@ -3182,15 +3287,16 @@
   int sqlite3_clear_bindings(
     ffi.Pointer<sqlite3_stmt> arg0,
   ) {
-    return (_sqlite3_clear_bindings ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_clear_bindings>>(
-                'sqlite3_clear_bindings')
-            .asFunction<_dart_sqlite3_clear_bindings>())(
+    return _sqlite3_clear_bindings(
       arg0,
     );
   }
 
-  _dart_sqlite3_clear_bindings? _sqlite3_clear_bindings;
+  late final _sqlite3_clear_bindings_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_clear_bindings>>(
+          'sqlite3_clear_bindings');
+  late final _dart_sqlite3_clear_bindings _sqlite3_clear_bindings =
+      _sqlite3_clear_bindings_ptr.asFunction<_dart_sqlite3_clear_bindings>();
 
   /// CAPI3REF: Number Of Columns In A Result Set
   /// METHOD: sqlite3_stmt
@@ -3207,15 +3313,16 @@
   int sqlite3_column_count(
     ffi.Pointer<sqlite3_stmt> pStmt,
   ) {
-    return (_sqlite3_column_count ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_column_count>>(
-                'sqlite3_column_count')
-            .asFunction<_dart_sqlite3_column_count>())(
+    return _sqlite3_column_count(
       pStmt,
     );
   }
 
-  _dart_sqlite3_column_count? _sqlite3_column_count;
+  late final _sqlite3_column_count_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_column_count>>(
+          'sqlite3_column_count');
+  late final _dart_sqlite3_column_count _sqlite3_column_count =
+      _sqlite3_column_count_ptr.asFunction<_dart_sqlite3_column_count>();
 
   /// CAPI3REF: Column Names In A Result Set
   /// METHOD: sqlite3_stmt
@@ -3246,31 +3353,33 @@
     ffi.Pointer<sqlite3_stmt> arg0,
     int N,
   ) {
-    return (_sqlite3_column_name ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_column_name>>(
-                'sqlite3_column_name')
-            .asFunction<_dart_sqlite3_column_name>())(
+    return _sqlite3_column_name(
       arg0,
       N,
     );
   }
 
-  _dart_sqlite3_column_name? _sqlite3_column_name;
+  late final _sqlite3_column_name_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_column_name>>(
+          'sqlite3_column_name');
+  late final _dart_sqlite3_column_name _sqlite3_column_name =
+      _sqlite3_column_name_ptr.asFunction<_dart_sqlite3_column_name>();
 
   ffi.Pointer<ffi.Void> sqlite3_column_name16(
     ffi.Pointer<sqlite3_stmt> arg0,
     int N,
   ) {
-    return (_sqlite3_column_name16 ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_column_name16>>(
-                'sqlite3_column_name16')
-            .asFunction<_dart_sqlite3_column_name16>())(
+    return _sqlite3_column_name16(
       arg0,
       N,
     );
   }
 
-  _dart_sqlite3_column_name16? _sqlite3_column_name16;
+  late final _sqlite3_column_name16_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_column_name16>>(
+          'sqlite3_column_name16');
+  late final _dart_sqlite3_column_name16 _sqlite3_column_name16 =
+      _sqlite3_column_name16_ptr.asFunction<_dart_sqlite3_column_name16>();
 
   /// CAPI3REF: Source Of Data In A Query Result
   /// METHOD: sqlite3_stmt
@@ -3316,91 +3425,103 @@
     ffi.Pointer<sqlite3_stmt> arg0,
     int arg1,
   ) {
-    return (_sqlite3_column_database_name ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_column_database_name>>(
-                'sqlite3_column_database_name')
-            .asFunction<_dart_sqlite3_column_database_name>())(
+    return _sqlite3_column_database_name(
       arg0,
       arg1,
     );
   }
 
-  _dart_sqlite3_column_database_name? _sqlite3_column_database_name;
+  late final _sqlite3_column_database_name_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_column_database_name>>(
+          'sqlite3_column_database_name');
+  late final _dart_sqlite3_column_database_name _sqlite3_column_database_name =
+      _sqlite3_column_database_name_ptr
+          .asFunction<_dart_sqlite3_column_database_name>();
 
   ffi.Pointer<ffi.Void> sqlite3_column_database_name16(
     ffi.Pointer<sqlite3_stmt> arg0,
     int arg1,
   ) {
-    return (_sqlite3_column_database_name16 ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_column_database_name16>>(
-                'sqlite3_column_database_name16')
-            .asFunction<_dart_sqlite3_column_database_name16>())(
+    return _sqlite3_column_database_name16(
       arg0,
       arg1,
     );
   }
 
-  _dart_sqlite3_column_database_name16? _sqlite3_column_database_name16;
+  late final _sqlite3_column_database_name16_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_column_database_name16>>(
+          'sqlite3_column_database_name16');
+  late final _dart_sqlite3_column_database_name16
+      _sqlite3_column_database_name16 = _sqlite3_column_database_name16_ptr
+          .asFunction<_dart_sqlite3_column_database_name16>();
 
   ffi.Pointer<ffi.Int8> sqlite3_column_table_name(
     ffi.Pointer<sqlite3_stmt> arg0,
     int arg1,
   ) {
-    return (_sqlite3_column_table_name ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_column_table_name>>(
-                'sqlite3_column_table_name')
-            .asFunction<_dart_sqlite3_column_table_name>())(
+    return _sqlite3_column_table_name(
       arg0,
       arg1,
     );
   }
 
-  _dart_sqlite3_column_table_name? _sqlite3_column_table_name;
+  late final _sqlite3_column_table_name_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_column_table_name>>(
+          'sqlite3_column_table_name');
+  late final _dart_sqlite3_column_table_name _sqlite3_column_table_name =
+      _sqlite3_column_table_name_ptr
+          .asFunction<_dart_sqlite3_column_table_name>();
 
   ffi.Pointer<ffi.Void> sqlite3_column_table_name16(
     ffi.Pointer<sqlite3_stmt> arg0,
     int arg1,
   ) {
-    return (_sqlite3_column_table_name16 ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_column_table_name16>>(
-                'sqlite3_column_table_name16')
-            .asFunction<_dart_sqlite3_column_table_name16>())(
+    return _sqlite3_column_table_name16(
       arg0,
       arg1,
     );
   }
 
-  _dart_sqlite3_column_table_name16? _sqlite3_column_table_name16;
+  late final _sqlite3_column_table_name16_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_column_table_name16>>(
+          'sqlite3_column_table_name16');
+  late final _dart_sqlite3_column_table_name16 _sqlite3_column_table_name16 =
+      _sqlite3_column_table_name16_ptr
+          .asFunction<_dart_sqlite3_column_table_name16>();
 
   ffi.Pointer<ffi.Int8> sqlite3_column_origin_name(
     ffi.Pointer<sqlite3_stmt> arg0,
     int arg1,
   ) {
-    return (_sqlite3_column_origin_name ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_column_origin_name>>(
-                'sqlite3_column_origin_name')
-            .asFunction<_dart_sqlite3_column_origin_name>())(
+    return _sqlite3_column_origin_name(
       arg0,
       arg1,
     );
   }
 
-  _dart_sqlite3_column_origin_name? _sqlite3_column_origin_name;
+  late final _sqlite3_column_origin_name_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_column_origin_name>>(
+          'sqlite3_column_origin_name');
+  late final _dart_sqlite3_column_origin_name _sqlite3_column_origin_name =
+      _sqlite3_column_origin_name_ptr
+          .asFunction<_dart_sqlite3_column_origin_name>();
 
   ffi.Pointer<ffi.Void> sqlite3_column_origin_name16(
     ffi.Pointer<sqlite3_stmt> arg0,
     int arg1,
   ) {
-    return (_sqlite3_column_origin_name16 ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_column_origin_name16>>(
-                'sqlite3_column_origin_name16')
-            .asFunction<_dart_sqlite3_column_origin_name16>())(
+    return _sqlite3_column_origin_name16(
       arg0,
       arg1,
     );
   }
 
-  _dart_sqlite3_column_origin_name16? _sqlite3_column_origin_name16;
+  late final _sqlite3_column_origin_name16_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_column_origin_name16>>(
+          'sqlite3_column_origin_name16');
+  late final _dart_sqlite3_column_origin_name16 _sqlite3_column_origin_name16 =
+      _sqlite3_column_origin_name16_ptr
+          .asFunction<_dart_sqlite3_column_origin_name16>();
 
   /// CAPI3REF: Declared Datatype Of A Query Result
   /// METHOD: sqlite3_stmt
@@ -3434,31 +3555,34 @@
     ffi.Pointer<sqlite3_stmt> arg0,
     int arg1,
   ) {
-    return (_sqlite3_column_decltype ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_column_decltype>>(
-                'sqlite3_column_decltype')
-            .asFunction<_dart_sqlite3_column_decltype>())(
+    return _sqlite3_column_decltype(
       arg0,
       arg1,
     );
   }
 
-  _dart_sqlite3_column_decltype? _sqlite3_column_decltype;
+  late final _sqlite3_column_decltype_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_column_decltype>>(
+          'sqlite3_column_decltype');
+  late final _dart_sqlite3_column_decltype _sqlite3_column_decltype =
+      _sqlite3_column_decltype_ptr.asFunction<_dart_sqlite3_column_decltype>();
 
   ffi.Pointer<ffi.Void> sqlite3_column_decltype16(
     ffi.Pointer<sqlite3_stmt> arg0,
     int arg1,
   ) {
-    return (_sqlite3_column_decltype16 ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_column_decltype16>>(
-                'sqlite3_column_decltype16')
-            .asFunction<_dart_sqlite3_column_decltype16>())(
+    return _sqlite3_column_decltype16(
       arg0,
       arg1,
     );
   }
 
-  _dart_sqlite3_column_decltype16? _sqlite3_column_decltype16;
+  late final _sqlite3_column_decltype16_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_column_decltype16>>(
+          'sqlite3_column_decltype16');
+  late final _dart_sqlite3_column_decltype16 _sqlite3_column_decltype16 =
+      _sqlite3_column_decltype16_ptr
+          .asFunction<_dart_sqlite3_column_decltype16>();
 
   /// CAPI3REF: Evaluate An SQL Statement
   /// METHOD: sqlite3_stmt
@@ -3543,14 +3667,15 @@
   int sqlite3_step(
     ffi.Pointer<sqlite3_stmt> arg0,
   ) {
-    return (_sqlite3_step ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_step>>('sqlite3_step')
-            .asFunction<_dart_sqlite3_step>())(
+    return _sqlite3_step(
       arg0,
     );
   }
 
-  _dart_sqlite3_step? _sqlite3_step;
+  late final _sqlite3_step_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_step>>('sqlite3_step');
+  late final _dart_sqlite3_step _sqlite3_step =
+      _sqlite3_step_ptr.asFunction<_dart_sqlite3_step>();
 
   /// CAPI3REF: Number of columns in a result set
   /// METHOD: sqlite3_stmt
@@ -3572,14 +3697,15 @@
   int sqlite3_data_count(
     ffi.Pointer<sqlite3_stmt> pStmt,
   ) {
-    return (_sqlite3_data_count ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_data_count>>('sqlite3_data_count')
-            .asFunction<_dart_sqlite3_data_count>())(
+    return _sqlite3_data_count(
       pStmt,
     );
   }
 
-  _dart_sqlite3_data_count? _sqlite3_data_count;
+  late final _sqlite3_data_count_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_data_count>>('sqlite3_data_count');
+  late final _dart_sqlite3_data_count _sqlite3_data_count =
+      _sqlite3_data_count_ptr.asFunction<_dart_sqlite3_data_count>();
 
   /// CAPI3REF: Result Values From A Query
   /// KEYWORDS: {column access functions}
@@ -3792,150 +3918,160 @@
     ffi.Pointer<sqlite3_stmt> arg0,
     int iCol,
   ) {
-    return (_sqlite3_column_blob ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_column_blob>>(
-                'sqlite3_column_blob')
-            .asFunction<_dart_sqlite3_column_blob>())(
+    return _sqlite3_column_blob(
       arg0,
       iCol,
     );
   }
 
-  _dart_sqlite3_column_blob? _sqlite3_column_blob;
+  late final _sqlite3_column_blob_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_column_blob>>(
+          'sqlite3_column_blob');
+  late final _dart_sqlite3_column_blob _sqlite3_column_blob =
+      _sqlite3_column_blob_ptr.asFunction<_dart_sqlite3_column_blob>();
 
   double sqlite3_column_double(
     ffi.Pointer<sqlite3_stmt> arg0,
     int iCol,
   ) {
-    return (_sqlite3_column_double ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_column_double>>(
-                'sqlite3_column_double')
-            .asFunction<_dart_sqlite3_column_double>())(
+    return _sqlite3_column_double(
       arg0,
       iCol,
     );
   }
 
-  _dart_sqlite3_column_double? _sqlite3_column_double;
+  late final _sqlite3_column_double_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_column_double>>(
+          'sqlite3_column_double');
+  late final _dart_sqlite3_column_double _sqlite3_column_double =
+      _sqlite3_column_double_ptr.asFunction<_dart_sqlite3_column_double>();
 
   int sqlite3_column_int(
     ffi.Pointer<sqlite3_stmt> arg0,
     int iCol,
   ) {
-    return (_sqlite3_column_int ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_column_int>>('sqlite3_column_int')
-            .asFunction<_dart_sqlite3_column_int>())(
+    return _sqlite3_column_int(
       arg0,
       iCol,
     );
   }
 
-  _dart_sqlite3_column_int? _sqlite3_column_int;
+  late final _sqlite3_column_int_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_column_int>>('sqlite3_column_int');
+  late final _dart_sqlite3_column_int _sqlite3_column_int =
+      _sqlite3_column_int_ptr.asFunction<_dart_sqlite3_column_int>();
 
   int sqlite3_column_int64(
     ffi.Pointer<sqlite3_stmt> arg0,
     int iCol,
   ) {
-    return (_sqlite3_column_int64 ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_column_int64>>(
-                'sqlite3_column_int64')
-            .asFunction<_dart_sqlite3_column_int64>())(
+    return _sqlite3_column_int64(
       arg0,
       iCol,
     );
   }
 
-  _dart_sqlite3_column_int64? _sqlite3_column_int64;
+  late final _sqlite3_column_int64_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_column_int64>>(
+          'sqlite3_column_int64');
+  late final _dart_sqlite3_column_int64 _sqlite3_column_int64 =
+      _sqlite3_column_int64_ptr.asFunction<_dart_sqlite3_column_int64>();
 
   ffi.Pointer<ffi.Uint8> sqlite3_column_text(
     ffi.Pointer<sqlite3_stmt> arg0,
     int iCol,
   ) {
-    return (_sqlite3_column_text ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_column_text>>(
-                'sqlite3_column_text')
-            .asFunction<_dart_sqlite3_column_text>())(
+    return _sqlite3_column_text(
       arg0,
       iCol,
     );
   }
 
-  _dart_sqlite3_column_text? _sqlite3_column_text;
+  late final _sqlite3_column_text_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_column_text>>(
+          'sqlite3_column_text');
+  late final _dart_sqlite3_column_text _sqlite3_column_text =
+      _sqlite3_column_text_ptr.asFunction<_dart_sqlite3_column_text>();
 
   ffi.Pointer<ffi.Void> sqlite3_column_text16(
     ffi.Pointer<sqlite3_stmt> arg0,
     int iCol,
   ) {
-    return (_sqlite3_column_text16 ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_column_text16>>(
-                'sqlite3_column_text16')
-            .asFunction<_dart_sqlite3_column_text16>())(
+    return _sqlite3_column_text16(
       arg0,
       iCol,
     );
   }
 
-  _dart_sqlite3_column_text16? _sqlite3_column_text16;
+  late final _sqlite3_column_text16_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_column_text16>>(
+          'sqlite3_column_text16');
+  late final _dart_sqlite3_column_text16 _sqlite3_column_text16 =
+      _sqlite3_column_text16_ptr.asFunction<_dart_sqlite3_column_text16>();
 
   ffi.Pointer<sqlite3_value> sqlite3_column_value(
     ffi.Pointer<sqlite3_stmt> arg0,
     int iCol,
   ) {
-    return (_sqlite3_column_value ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_column_value>>(
-                'sqlite3_column_value')
-            .asFunction<_dart_sqlite3_column_value>())(
+    return _sqlite3_column_value(
       arg0,
       iCol,
     );
   }
 
-  _dart_sqlite3_column_value? _sqlite3_column_value;
+  late final _sqlite3_column_value_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_column_value>>(
+          'sqlite3_column_value');
+  late final _dart_sqlite3_column_value _sqlite3_column_value =
+      _sqlite3_column_value_ptr.asFunction<_dart_sqlite3_column_value>();
 
   int sqlite3_column_bytes(
     ffi.Pointer<sqlite3_stmt> arg0,
     int iCol,
   ) {
-    return (_sqlite3_column_bytes ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_column_bytes>>(
-                'sqlite3_column_bytes')
-            .asFunction<_dart_sqlite3_column_bytes>())(
+    return _sqlite3_column_bytes(
       arg0,
       iCol,
     );
   }
 
-  _dart_sqlite3_column_bytes? _sqlite3_column_bytes;
+  late final _sqlite3_column_bytes_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_column_bytes>>(
+          'sqlite3_column_bytes');
+  late final _dart_sqlite3_column_bytes _sqlite3_column_bytes =
+      _sqlite3_column_bytes_ptr.asFunction<_dart_sqlite3_column_bytes>();
 
   int sqlite3_column_bytes16(
     ffi.Pointer<sqlite3_stmt> arg0,
     int iCol,
   ) {
-    return (_sqlite3_column_bytes16 ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_column_bytes16>>(
-                'sqlite3_column_bytes16')
-            .asFunction<_dart_sqlite3_column_bytes16>())(
+    return _sqlite3_column_bytes16(
       arg0,
       iCol,
     );
   }
 
-  _dart_sqlite3_column_bytes16? _sqlite3_column_bytes16;
+  late final _sqlite3_column_bytes16_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_column_bytes16>>(
+          'sqlite3_column_bytes16');
+  late final _dart_sqlite3_column_bytes16 _sqlite3_column_bytes16 =
+      _sqlite3_column_bytes16_ptr.asFunction<_dart_sqlite3_column_bytes16>();
 
   int sqlite3_column_type(
     ffi.Pointer<sqlite3_stmt> arg0,
     int iCol,
   ) {
-    return (_sqlite3_column_type ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_column_type>>(
-                'sqlite3_column_type')
-            .asFunction<_dart_sqlite3_column_type>())(
+    return _sqlite3_column_type(
       arg0,
       iCol,
     );
   }
 
-  _dart_sqlite3_column_type? _sqlite3_column_type;
+  late final _sqlite3_column_type_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_column_type>>(
+          'sqlite3_column_type');
+  late final _dart_sqlite3_column_type _sqlite3_column_type =
+      _sqlite3_column_type_ptr.asFunction<_dart_sqlite3_column_type>();
 
   /// CAPI3REF: Destroy A Prepared Statement Object
   /// DESTRUCTOR: sqlite3_stmt
@@ -3964,14 +4100,15 @@
   int sqlite3_finalize(
     ffi.Pointer<sqlite3_stmt> pStmt,
   ) {
-    return (_sqlite3_finalize ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_finalize>>('sqlite3_finalize')
-            .asFunction<_dart_sqlite3_finalize>())(
+    return _sqlite3_finalize(
       pStmt,
     );
   }
 
-  _dart_sqlite3_finalize? _sqlite3_finalize;
+  late final _sqlite3_finalize_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_finalize>>('sqlite3_finalize');
+  late final _dart_sqlite3_finalize _sqlite3_finalize =
+      _sqlite3_finalize_ptr.asFunction<_dart_sqlite3_finalize>();
 
   /// CAPI3REF: Reset A Prepared Statement Object
   /// METHOD: sqlite3_stmt
@@ -3999,14 +4136,15 @@
   int sqlite3_reset(
     ffi.Pointer<sqlite3_stmt> pStmt,
   ) {
-    return (_sqlite3_reset ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_reset>>('sqlite3_reset')
-            .asFunction<_dart_sqlite3_reset>())(
+    return _sqlite3_reset(
       pStmt,
     );
   }
 
-  _dart_sqlite3_reset? _sqlite3_reset;
+  late final _sqlite3_reset_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_reset>>('sqlite3_reset');
+  late final _dart_sqlite3_reset _sqlite3_reset =
+      _sqlite3_reset_ptr.asFunction<_dart_sqlite3_reset>();
 
   /// CAPI3REF: Create Or Redefine SQL Functions
   /// KEYWORDS: {function creation routines}
@@ -4141,10 +4279,7 @@
     ffi.Pointer<ffi.NativeFunction<_typedefC_33>> xStep,
     ffi.Pointer<ffi.NativeFunction<_typedefC_34>> xFinal,
   ) {
-    return (_sqlite3_create_function ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_create_function>>(
-                'sqlite3_create_function')
-            .asFunction<_dart_sqlite3_create_function>())(
+    return _sqlite3_create_function(
       db,
       zFunctionName,
       nArg,
@@ -4156,7 +4291,11 @@
     );
   }
 
-  _dart_sqlite3_create_function? _sqlite3_create_function;
+  late final _sqlite3_create_function_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_create_function>>(
+          'sqlite3_create_function');
+  late final _dart_sqlite3_create_function _sqlite3_create_function =
+      _sqlite3_create_function_ptr.asFunction<_dart_sqlite3_create_function>();
 
   int sqlite3_create_function16(
     ffi.Pointer<sqlite3> db,
@@ -4168,10 +4307,7 @@
     ffi.Pointer<ffi.NativeFunction<_typedefC_36>> xStep,
     ffi.Pointer<ffi.NativeFunction<_typedefC_37>> xFinal,
   ) {
-    return (_sqlite3_create_function16 ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_create_function16>>(
-                'sqlite3_create_function16')
-            .asFunction<_dart_sqlite3_create_function16>())(
+    return _sqlite3_create_function16(
       db,
       zFunctionName,
       nArg,
@@ -4183,7 +4319,12 @@
     );
   }
 
-  _dart_sqlite3_create_function16? _sqlite3_create_function16;
+  late final _sqlite3_create_function16_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_create_function16>>(
+          'sqlite3_create_function16');
+  late final _dart_sqlite3_create_function16 _sqlite3_create_function16 =
+      _sqlite3_create_function16_ptr
+          .asFunction<_dart_sqlite3_create_function16>();
 
   int sqlite3_create_function_v2(
     ffi.Pointer<sqlite3> db,
@@ -4196,10 +4337,7 @@
     ffi.Pointer<ffi.NativeFunction<_typedefC_40>> xFinal,
     ffi.Pointer<ffi.NativeFunction<_typedefC_41>> xDestroy,
   ) {
-    return (_sqlite3_create_function_v2 ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_create_function_v2>>(
-                'sqlite3_create_function_v2')
-            .asFunction<_dart_sqlite3_create_function_v2>())(
+    return _sqlite3_create_function_v2(
       db,
       zFunctionName,
       nArg,
@@ -4212,7 +4350,12 @@
     );
   }
 
-  _dart_sqlite3_create_function_v2? _sqlite3_create_function_v2;
+  late final _sqlite3_create_function_v2_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_create_function_v2>>(
+          'sqlite3_create_function_v2');
+  late final _dart_sqlite3_create_function_v2 _sqlite3_create_function_v2 =
+      _sqlite3_create_function_v2_ptr
+          .asFunction<_dart_sqlite3_create_function_v2>();
 
   int sqlite3_create_window_function(
     ffi.Pointer<sqlite3> db,
@@ -4226,10 +4369,7 @@
     ffi.Pointer<ffi.NativeFunction<_typedefC_45>> xInverse,
     ffi.Pointer<ffi.NativeFunction<_typedefC_46>> xDestroy,
   ) {
-    return (_sqlite3_create_window_function ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_create_window_function>>(
-                'sqlite3_create_window_function')
-            .asFunction<_dart_sqlite3_create_window_function>())(
+    return _sqlite3_create_window_function(
       db,
       zFunctionName,
       nArg,
@@ -4243,82 +4383,94 @@
     );
   }
 
-  _dart_sqlite3_create_window_function? _sqlite3_create_window_function;
+  late final _sqlite3_create_window_function_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_create_window_function>>(
+          'sqlite3_create_window_function');
+  late final _dart_sqlite3_create_window_function
+      _sqlite3_create_window_function = _sqlite3_create_window_function_ptr
+          .asFunction<_dart_sqlite3_create_window_function>();
 
   int sqlite3_aggregate_count(
     ffi.Pointer<sqlite3_context> arg0,
   ) {
-    return (_sqlite3_aggregate_count ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_aggregate_count>>(
-                'sqlite3_aggregate_count')
-            .asFunction<_dart_sqlite3_aggregate_count>())(
+    return _sqlite3_aggregate_count(
       arg0,
     );
   }
 
-  _dart_sqlite3_aggregate_count? _sqlite3_aggregate_count;
+  late final _sqlite3_aggregate_count_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_aggregate_count>>(
+          'sqlite3_aggregate_count');
+  late final _dart_sqlite3_aggregate_count _sqlite3_aggregate_count =
+      _sqlite3_aggregate_count_ptr.asFunction<_dart_sqlite3_aggregate_count>();
 
   int sqlite3_expired(
     ffi.Pointer<sqlite3_stmt> arg0,
   ) {
-    return (_sqlite3_expired ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_expired>>('sqlite3_expired')
-            .asFunction<_dart_sqlite3_expired>())(
+    return _sqlite3_expired(
       arg0,
     );
   }
 
-  _dart_sqlite3_expired? _sqlite3_expired;
+  late final _sqlite3_expired_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_expired>>('sqlite3_expired');
+  late final _dart_sqlite3_expired _sqlite3_expired =
+      _sqlite3_expired_ptr.asFunction<_dart_sqlite3_expired>();
 
   int sqlite3_transfer_bindings(
     ffi.Pointer<sqlite3_stmt> arg0,
     ffi.Pointer<sqlite3_stmt> arg1,
   ) {
-    return (_sqlite3_transfer_bindings ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_transfer_bindings>>(
-                'sqlite3_transfer_bindings')
-            .asFunction<_dart_sqlite3_transfer_bindings>())(
+    return _sqlite3_transfer_bindings(
       arg0,
       arg1,
     );
   }
 
-  _dart_sqlite3_transfer_bindings? _sqlite3_transfer_bindings;
+  late final _sqlite3_transfer_bindings_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_transfer_bindings>>(
+          'sqlite3_transfer_bindings');
+  late final _dart_sqlite3_transfer_bindings _sqlite3_transfer_bindings =
+      _sqlite3_transfer_bindings_ptr
+          .asFunction<_dart_sqlite3_transfer_bindings>();
 
   int sqlite3_global_recover() {
-    return (_sqlite3_global_recover ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_global_recover>>(
-                'sqlite3_global_recover')
-            .asFunction<_dart_sqlite3_global_recover>())();
+    return _sqlite3_global_recover();
   }
 
-  _dart_sqlite3_global_recover? _sqlite3_global_recover;
+  late final _sqlite3_global_recover_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_global_recover>>(
+          'sqlite3_global_recover');
+  late final _dart_sqlite3_global_recover _sqlite3_global_recover =
+      _sqlite3_global_recover_ptr.asFunction<_dart_sqlite3_global_recover>();
 
   void sqlite3_thread_cleanup() {
-    return (_sqlite3_thread_cleanup ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_thread_cleanup>>(
-                'sqlite3_thread_cleanup')
-            .asFunction<_dart_sqlite3_thread_cleanup>())();
+    return _sqlite3_thread_cleanup();
   }
 
-  _dart_sqlite3_thread_cleanup? _sqlite3_thread_cleanup;
+  late final _sqlite3_thread_cleanup_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_thread_cleanup>>(
+          'sqlite3_thread_cleanup');
+  late final _dart_sqlite3_thread_cleanup _sqlite3_thread_cleanup =
+      _sqlite3_thread_cleanup_ptr.asFunction<_dart_sqlite3_thread_cleanup>();
 
   int sqlite3_memory_alarm(
     ffi.Pointer<ffi.NativeFunction<_typedefC_47>> arg0,
     ffi.Pointer<ffi.Void> arg1,
     int arg2,
   ) {
-    return (_sqlite3_memory_alarm ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_memory_alarm>>(
-                'sqlite3_memory_alarm')
-            .asFunction<_dart_sqlite3_memory_alarm>())(
+    return _sqlite3_memory_alarm(
       arg0,
       arg1,
       arg2,
     );
   }
 
-  _dart_sqlite3_memory_alarm? _sqlite3_memory_alarm;
+  late final _sqlite3_memory_alarm_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_memory_alarm>>(
+          'sqlite3_memory_alarm');
+  late final _dart_sqlite3_memory_alarm _sqlite3_memory_alarm =
+      _sqlite3_memory_alarm_ptr.asFunction<_dart_sqlite3_memory_alarm>();
 
   /// CAPI3REF: Obtaining SQL Values
   /// METHOD: sqlite3_value
@@ -4449,195 +4601,211 @@
   ffi.Pointer<ffi.Void> sqlite3_value_blob(
     ffi.Pointer<sqlite3_value> arg0,
   ) {
-    return (_sqlite3_value_blob ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_value_blob>>('sqlite3_value_blob')
-            .asFunction<_dart_sqlite3_value_blob>())(
+    return _sqlite3_value_blob(
       arg0,
     );
   }
 
-  _dart_sqlite3_value_blob? _sqlite3_value_blob;
+  late final _sqlite3_value_blob_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_value_blob>>('sqlite3_value_blob');
+  late final _dart_sqlite3_value_blob _sqlite3_value_blob =
+      _sqlite3_value_blob_ptr.asFunction<_dart_sqlite3_value_blob>();
 
   double sqlite3_value_double(
     ffi.Pointer<sqlite3_value> arg0,
   ) {
-    return (_sqlite3_value_double ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_value_double>>(
-                'sqlite3_value_double')
-            .asFunction<_dart_sqlite3_value_double>())(
+    return _sqlite3_value_double(
       arg0,
     );
   }
 
-  _dart_sqlite3_value_double? _sqlite3_value_double;
+  late final _sqlite3_value_double_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_value_double>>(
+          'sqlite3_value_double');
+  late final _dart_sqlite3_value_double _sqlite3_value_double =
+      _sqlite3_value_double_ptr.asFunction<_dart_sqlite3_value_double>();
 
   int sqlite3_value_int(
     ffi.Pointer<sqlite3_value> arg0,
   ) {
-    return (_sqlite3_value_int ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_value_int>>('sqlite3_value_int')
-            .asFunction<_dart_sqlite3_value_int>())(
+    return _sqlite3_value_int(
       arg0,
     );
   }
 
-  _dart_sqlite3_value_int? _sqlite3_value_int;
+  late final _sqlite3_value_int_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_value_int>>('sqlite3_value_int');
+  late final _dart_sqlite3_value_int _sqlite3_value_int =
+      _sqlite3_value_int_ptr.asFunction<_dart_sqlite3_value_int>();
 
   int sqlite3_value_int64(
     ffi.Pointer<sqlite3_value> arg0,
   ) {
-    return (_sqlite3_value_int64 ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_value_int64>>(
-                'sqlite3_value_int64')
-            .asFunction<_dart_sqlite3_value_int64>())(
+    return _sqlite3_value_int64(
       arg0,
     );
   }
 
-  _dart_sqlite3_value_int64? _sqlite3_value_int64;
+  late final _sqlite3_value_int64_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_value_int64>>(
+          'sqlite3_value_int64');
+  late final _dart_sqlite3_value_int64 _sqlite3_value_int64 =
+      _sqlite3_value_int64_ptr.asFunction<_dart_sqlite3_value_int64>();
 
   ffi.Pointer<ffi.Void> sqlite3_value_pointer(
     ffi.Pointer<sqlite3_value> arg0,
     ffi.Pointer<ffi.Int8> arg1,
   ) {
-    return (_sqlite3_value_pointer ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_value_pointer>>(
-                'sqlite3_value_pointer')
-            .asFunction<_dart_sqlite3_value_pointer>())(
+    return _sqlite3_value_pointer(
       arg0,
       arg1,
     );
   }
 
-  _dart_sqlite3_value_pointer? _sqlite3_value_pointer;
+  late final _sqlite3_value_pointer_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_value_pointer>>(
+          'sqlite3_value_pointer');
+  late final _dart_sqlite3_value_pointer _sqlite3_value_pointer =
+      _sqlite3_value_pointer_ptr.asFunction<_dart_sqlite3_value_pointer>();
 
   ffi.Pointer<ffi.Uint8> sqlite3_value_text(
     ffi.Pointer<sqlite3_value> arg0,
   ) {
-    return (_sqlite3_value_text ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_value_text>>('sqlite3_value_text')
-            .asFunction<_dart_sqlite3_value_text>())(
+    return _sqlite3_value_text(
       arg0,
     );
   }
 
-  _dart_sqlite3_value_text? _sqlite3_value_text;
+  late final _sqlite3_value_text_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_value_text>>('sqlite3_value_text');
+  late final _dart_sqlite3_value_text _sqlite3_value_text =
+      _sqlite3_value_text_ptr.asFunction<_dart_sqlite3_value_text>();
 
   ffi.Pointer<ffi.Void> sqlite3_value_text16(
     ffi.Pointer<sqlite3_value> arg0,
   ) {
-    return (_sqlite3_value_text16 ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_value_text16>>(
-                'sqlite3_value_text16')
-            .asFunction<_dart_sqlite3_value_text16>())(
+    return _sqlite3_value_text16(
       arg0,
     );
   }
 
-  _dart_sqlite3_value_text16? _sqlite3_value_text16;
+  late final _sqlite3_value_text16_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_value_text16>>(
+          'sqlite3_value_text16');
+  late final _dart_sqlite3_value_text16 _sqlite3_value_text16 =
+      _sqlite3_value_text16_ptr.asFunction<_dart_sqlite3_value_text16>();
 
   ffi.Pointer<ffi.Void> sqlite3_value_text16le(
     ffi.Pointer<sqlite3_value> arg0,
   ) {
-    return (_sqlite3_value_text16le ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_value_text16le>>(
-                'sqlite3_value_text16le')
-            .asFunction<_dart_sqlite3_value_text16le>())(
+    return _sqlite3_value_text16le(
       arg0,
     );
   }
 
-  _dart_sqlite3_value_text16le? _sqlite3_value_text16le;
+  late final _sqlite3_value_text16le_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_value_text16le>>(
+          'sqlite3_value_text16le');
+  late final _dart_sqlite3_value_text16le _sqlite3_value_text16le =
+      _sqlite3_value_text16le_ptr.asFunction<_dart_sqlite3_value_text16le>();
 
   ffi.Pointer<ffi.Void> sqlite3_value_text16be(
     ffi.Pointer<sqlite3_value> arg0,
   ) {
-    return (_sqlite3_value_text16be ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_value_text16be>>(
-                'sqlite3_value_text16be')
-            .asFunction<_dart_sqlite3_value_text16be>())(
+    return _sqlite3_value_text16be(
       arg0,
     );
   }
 
-  _dart_sqlite3_value_text16be? _sqlite3_value_text16be;
+  late final _sqlite3_value_text16be_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_value_text16be>>(
+          'sqlite3_value_text16be');
+  late final _dart_sqlite3_value_text16be _sqlite3_value_text16be =
+      _sqlite3_value_text16be_ptr.asFunction<_dart_sqlite3_value_text16be>();
 
   int sqlite3_value_bytes(
     ffi.Pointer<sqlite3_value> arg0,
   ) {
-    return (_sqlite3_value_bytes ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_value_bytes>>(
-                'sqlite3_value_bytes')
-            .asFunction<_dart_sqlite3_value_bytes>())(
+    return _sqlite3_value_bytes(
       arg0,
     );
   }
 
-  _dart_sqlite3_value_bytes? _sqlite3_value_bytes;
+  late final _sqlite3_value_bytes_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_value_bytes>>(
+          'sqlite3_value_bytes');
+  late final _dart_sqlite3_value_bytes _sqlite3_value_bytes =
+      _sqlite3_value_bytes_ptr.asFunction<_dart_sqlite3_value_bytes>();
 
   int sqlite3_value_bytes16(
     ffi.Pointer<sqlite3_value> arg0,
   ) {
-    return (_sqlite3_value_bytes16 ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_value_bytes16>>(
-                'sqlite3_value_bytes16')
-            .asFunction<_dart_sqlite3_value_bytes16>())(
+    return _sqlite3_value_bytes16(
       arg0,
     );
   }
 
-  _dart_sqlite3_value_bytes16? _sqlite3_value_bytes16;
+  late final _sqlite3_value_bytes16_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_value_bytes16>>(
+          'sqlite3_value_bytes16');
+  late final _dart_sqlite3_value_bytes16 _sqlite3_value_bytes16 =
+      _sqlite3_value_bytes16_ptr.asFunction<_dart_sqlite3_value_bytes16>();
 
   int sqlite3_value_type(
     ffi.Pointer<sqlite3_value> arg0,
   ) {
-    return (_sqlite3_value_type ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_value_type>>('sqlite3_value_type')
-            .asFunction<_dart_sqlite3_value_type>())(
+    return _sqlite3_value_type(
       arg0,
     );
   }
 
-  _dart_sqlite3_value_type? _sqlite3_value_type;
+  late final _sqlite3_value_type_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_value_type>>('sqlite3_value_type');
+  late final _dart_sqlite3_value_type _sqlite3_value_type =
+      _sqlite3_value_type_ptr.asFunction<_dart_sqlite3_value_type>();
 
   int sqlite3_value_numeric_type(
     ffi.Pointer<sqlite3_value> arg0,
   ) {
-    return (_sqlite3_value_numeric_type ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_value_numeric_type>>(
-                'sqlite3_value_numeric_type')
-            .asFunction<_dart_sqlite3_value_numeric_type>())(
+    return _sqlite3_value_numeric_type(
       arg0,
     );
   }
 
-  _dart_sqlite3_value_numeric_type? _sqlite3_value_numeric_type;
+  late final _sqlite3_value_numeric_type_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_value_numeric_type>>(
+          'sqlite3_value_numeric_type');
+  late final _dart_sqlite3_value_numeric_type _sqlite3_value_numeric_type =
+      _sqlite3_value_numeric_type_ptr
+          .asFunction<_dart_sqlite3_value_numeric_type>();
 
   int sqlite3_value_nochange(
     ffi.Pointer<sqlite3_value> arg0,
   ) {
-    return (_sqlite3_value_nochange ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_value_nochange>>(
-                'sqlite3_value_nochange')
-            .asFunction<_dart_sqlite3_value_nochange>())(
+    return _sqlite3_value_nochange(
       arg0,
     );
   }
 
-  _dart_sqlite3_value_nochange? _sqlite3_value_nochange;
+  late final _sqlite3_value_nochange_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_value_nochange>>(
+          'sqlite3_value_nochange');
+  late final _dart_sqlite3_value_nochange _sqlite3_value_nochange =
+      _sqlite3_value_nochange_ptr.asFunction<_dart_sqlite3_value_nochange>();
 
   int sqlite3_value_frombind(
     ffi.Pointer<sqlite3_value> arg0,
   ) {
-    return (_sqlite3_value_frombind ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_value_frombind>>(
-                'sqlite3_value_frombind')
-            .asFunction<_dart_sqlite3_value_frombind>())(
+    return _sqlite3_value_frombind(
       arg0,
     );
   }
 
-  _dart_sqlite3_value_frombind? _sqlite3_value_frombind;
+  late final _sqlite3_value_frombind_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_value_frombind>>(
+          'sqlite3_value_frombind');
+  late final _dart_sqlite3_value_frombind _sqlite3_value_frombind =
+      _sqlite3_value_frombind_ptr.asFunction<_dart_sqlite3_value_frombind>();
 
   /// CAPI3REF: Finding The Subtype Of SQL Values
   /// METHOD: sqlite3_value
@@ -4650,15 +4818,16 @@
   int sqlite3_value_subtype(
     ffi.Pointer<sqlite3_value> arg0,
   ) {
-    return (_sqlite3_value_subtype ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_value_subtype>>(
-                'sqlite3_value_subtype')
-            .asFunction<_dart_sqlite3_value_subtype>())(
+    return _sqlite3_value_subtype(
       arg0,
     );
   }
 
-  _dart_sqlite3_value_subtype? _sqlite3_value_subtype;
+  late final _sqlite3_value_subtype_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_value_subtype>>(
+          'sqlite3_value_subtype');
+  late final _dart_sqlite3_value_subtype _sqlite3_value_subtype =
+      _sqlite3_value_subtype_ptr.asFunction<_dart_sqlite3_value_subtype>();
 
   /// CAPI3REF: Copy And Free SQL Values
   /// METHOD: sqlite3_value
@@ -4675,26 +4844,28 @@
   ffi.Pointer<sqlite3_value> sqlite3_value_dup(
     ffi.Pointer<sqlite3_value> arg0,
   ) {
-    return (_sqlite3_value_dup ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_value_dup>>('sqlite3_value_dup')
-            .asFunction<_dart_sqlite3_value_dup>())(
+    return _sqlite3_value_dup(
       arg0,
     );
   }
 
-  _dart_sqlite3_value_dup? _sqlite3_value_dup;
+  late final _sqlite3_value_dup_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_value_dup>>('sqlite3_value_dup');
+  late final _dart_sqlite3_value_dup _sqlite3_value_dup =
+      _sqlite3_value_dup_ptr.asFunction<_dart_sqlite3_value_dup>();
 
   void sqlite3_value_free(
     ffi.Pointer<sqlite3_value> arg0,
   ) {
-    return (_sqlite3_value_free ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_value_free>>('sqlite3_value_free')
-            .asFunction<_dart_sqlite3_value_free>())(
+    return _sqlite3_value_free(
       arg0,
     );
   }
 
-  _dart_sqlite3_value_free? _sqlite3_value_free;
+  late final _sqlite3_value_free_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_value_free>>('sqlite3_value_free');
+  late final _dart_sqlite3_value_free _sqlite3_value_free =
+      _sqlite3_value_free_ptr.asFunction<_dart_sqlite3_value_free>();
 
   /// CAPI3REF: Obtain Aggregate Function Context
   /// METHOD: sqlite3_context
@@ -4741,16 +4912,18 @@
     ffi.Pointer<sqlite3_context> arg0,
     int nBytes,
   ) {
-    return (_sqlite3_aggregate_context ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_aggregate_context>>(
-                'sqlite3_aggregate_context')
-            .asFunction<_dart_sqlite3_aggregate_context>())(
+    return _sqlite3_aggregate_context(
       arg0,
       nBytes,
     );
   }
 
-  _dart_sqlite3_aggregate_context? _sqlite3_aggregate_context;
+  late final _sqlite3_aggregate_context_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_aggregate_context>>(
+          'sqlite3_aggregate_context');
+  late final _dart_sqlite3_aggregate_context _sqlite3_aggregate_context =
+      _sqlite3_aggregate_context_ptr
+          .asFunction<_dart_sqlite3_aggregate_context>();
 
   /// CAPI3REF: User Data For Functions
   /// METHOD: sqlite3_context
@@ -4766,14 +4939,15 @@
   ffi.Pointer<ffi.Void> sqlite3_user_data(
     ffi.Pointer<sqlite3_context> arg0,
   ) {
-    return (_sqlite3_user_data ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_user_data>>('sqlite3_user_data')
-            .asFunction<_dart_sqlite3_user_data>())(
+    return _sqlite3_user_data(
       arg0,
     );
   }
 
-  _dart_sqlite3_user_data? _sqlite3_user_data;
+  late final _sqlite3_user_data_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_user_data>>('sqlite3_user_data');
+  late final _dart_sqlite3_user_data _sqlite3_user_data =
+      _sqlite3_user_data_ptr.asFunction<_dart_sqlite3_user_data>();
 
   /// CAPI3REF: Database Connection For Functions
   /// METHOD: sqlite3_context
@@ -4786,15 +4960,17 @@
   ffi.Pointer<sqlite3> sqlite3_context_db_handle(
     ffi.Pointer<sqlite3_context> arg0,
   ) {
-    return (_sqlite3_context_db_handle ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_context_db_handle>>(
-                'sqlite3_context_db_handle')
-            .asFunction<_dart_sqlite3_context_db_handle>())(
+    return _sqlite3_context_db_handle(
       arg0,
     );
   }
 
-  _dart_sqlite3_context_db_handle? _sqlite3_context_db_handle;
+  late final _sqlite3_context_db_handle_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_context_db_handle>>(
+          'sqlite3_context_db_handle');
+  late final _dart_sqlite3_context_db_handle _sqlite3_context_db_handle =
+      _sqlite3_context_db_handle_ptr
+          .asFunction<_dart_sqlite3_context_db_handle>();
 
   /// CAPI3REF: Function Auxiliary Data
   /// METHOD: sqlite3_context
@@ -4855,16 +5031,17 @@
     ffi.Pointer<sqlite3_context> arg0,
     int N,
   ) {
-    return (_sqlite3_get_auxdata ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_get_auxdata>>(
-                'sqlite3_get_auxdata')
-            .asFunction<_dart_sqlite3_get_auxdata>())(
+    return _sqlite3_get_auxdata(
       arg0,
       N,
     );
   }
 
-  _dart_sqlite3_get_auxdata? _sqlite3_get_auxdata;
+  late final _sqlite3_get_auxdata_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_get_auxdata>>(
+          'sqlite3_get_auxdata');
+  late final _dart_sqlite3_get_auxdata _sqlite3_get_auxdata =
+      _sqlite3_get_auxdata_ptr.asFunction<_dart_sqlite3_get_auxdata>();
 
   void sqlite3_set_auxdata(
     ffi.Pointer<sqlite3_context> arg0,
@@ -4872,10 +5049,7 @@
     ffi.Pointer<ffi.Void> arg2,
     ffi.Pointer<ffi.NativeFunction<_typedefC_48>> arg3,
   ) {
-    return (_sqlite3_set_auxdata ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_set_auxdata>>(
-                'sqlite3_set_auxdata')
-            .asFunction<_dart_sqlite3_set_auxdata>())(
+    return _sqlite3_set_auxdata(
       arg0,
       N,
       arg2,
@@ -4883,7 +5057,11 @@
     );
   }
 
-  _dart_sqlite3_set_auxdata? _sqlite3_set_auxdata;
+  late final _sqlite3_set_auxdata_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_set_auxdata>>(
+          'sqlite3_set_auxdata');
+  late final _dart_sqlite3_set_auxdata _sqlite3_set_auxdata =
+      _sqlite3_set_auxdata_ptr.asFunction<_dart_sqlite3_set_auxdata>();
 
   /// CAPI3REF: Setting The Result Of An SQL Function
   /// METHOD: sqlite3_context
@@ -5035,10 +5213,7 @@
     int arg2,
     ffi.Pointer<ffi.NativeFunction<_typedefC_49>> arg3,
   ) {
-    return (_sqlite3_result_blob ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_result_blob>>(
-                'sqlite3_result_blob')
-            .asFunction<_dart_sqlite3_result_blob>())(
+    return _sqlite3_result_blob(
       arg0,
       arg1,
       arg2,
@@ -5046,7 +5221,11 @@
     );
   }
 
-  _dart_sqlite3_result_blob? _sqlite3_result_blob;
+  late final _sqlite3_result_blob_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_result_blob>>(
+          'sqlite3_result_blob');
+  late final _dart_sqlite3_result_blob _sqlite3_result_blob =
+      _sqlite3_result_blob_ptr.asFunction<_dart_sqlite3_result_blob>();
 
   void sqlite3_result_blob64(
     ffi.Pointer<sqlite3_context> arg0,
@@ -5054,10 +5233,7 @@
     int arg2,
     ffi.Pointer<ffi.NativeFunction<_typedefC_50>> arg3,
   ) {
-    return (_sqlite3_result_blob64 ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_result_blob64>>(
-                'sqlite3_result_blob64')
-            .asFunction<_dart_sqlite3_result_blob64>())(
+    return _sqlite3_result_blob64(
       arg0,
       arg1,
       arg2,
@@ -5065,139 +5241,155 @@
     );
   }
 
-  _dart_sqlite3_result_blob64? _sqlite3_result_blob64;
+  late final _sqlite3_result_blob64_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_result_blob64>>(
+          'sqlite3_result_blob64');
+  late final _dart_sqlite3_result_blob64 _sqlite3_result_blob64 =
+      _sqlite3_result_blob64_ptr.asFunction<_dart_sqlite3_result_blob64>();
 
   void sqlite3_result_double(
     ffi.Pointer<sqlite3_context> arg0,
     double arg1,
   ) {
-    return (_sqlite3_result_double ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_result_double>>(
-                'sqlite3_result_double')
-            .asFunction<_dart_sqlite3_result_double>())(
+    return _sqlite3_result_double(
       arg0,
       arg1,
     );
   }
 
-  _dart_sqlite3_result_double? _sqlite3_result_double;
+  late final _sqlite3_result_double_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_result_double>>(
+          'sqlite3_result_double');
+  late final _dart_sqlite3_result_double _sqlite3_result_double =
+      _sqlite3_result_double_ptr.asFunction<_dart_sqlite3_result_double>();
 
   void sqlite3_result_error(
     ffi.Pointer<sqlite3_context> arg0,
     ffi.Pointer<ffi.Int8> arg1,
     int arg2,
   ) {
-    return (_sqlite3_result_error ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_result_error>>(
-                'sqlite3_result_error')
-            .asFunction<_dart_sqlite3_result_error>())(
+    return _sqlite3_result_error(
       arg0,
       arg1,
       arg2,
     );
   }
 
-  _dart_sqlite3_result_error? _sqlite3_result_error;
+  late final _sqlite3_result_error_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_result_error>>(
+          'sqlite3_result_error');
+  late final _dart_sqlite3_result_error _sqlite3_result_error =
+      _sqlite3_result_error_ptr.asFunction<_dart_sqlite3_result_error>();
 
   void sqlite3_result_error16(
     ffi.Pointer<sqlite3_context> arg0,
     ffi.Pointer<ffi.Void> arg1,
     int arg2,
   ) {
-    return (_sqlite3_result_error16 ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_result_error16>>(
-                'sqlite3_result_error16')
-            .asFunction<_dart_sqlite3_result_error16>())(
+    return _sqlite3_result_error16(
       arg0,
       arg1,
       arg2,
     );
   }
 
-  _dart_sqlite3_result_error16? _sqlite3_result_error16;
+  late final _sqlite3_result_error16_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_result_error16>>(
+          'sqlite3_result_error16');
+  late final _dart_sqlite3_result_error16 _sqlite3_result_error16 =
+      _sqlite3_result_error16_ptr.asFunction<_dart_sqlite3_result_error16>();
 
   void sqlite3_result_error_toobig(
     ffi.Pointer<sqlite3_context> arg0,
   ) {
-    return (_sqlite3_result_error_toobig ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_result_error_toobig>>(
-                'sqlite3_result_error_toobig')
-            .asFunction<_dart_sqlite3_result_error_toobig>())(
+    return _sqlite3_result_error_toobig(
       arg0,
     );
   }
 
-  _dart_sqlite3_result_error_toobig? _sqlite3_result_error_toobig;
+  late final _sqlite3_result_error_toobig_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_result_error_toobig>>(
+          'sqlite3_result_error_toobig');
+  late final _dart_sqlite3_result_error_toobig _sqlite3_result_error_toobig =
+      _sqlite3_result_error_toobig_ptr
+          .asFunction<_dart_sqlite3_result_error_toobig>();
 
   void sqlite3_result_error_nomem(
     ffi.Pointer<sqlite3_context> arg0,
   ) {
-    return (_sqlite3_result_error_nomem ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_result_error_nomem>>(
-                'sqlite3_result_error_nomem')
-            .asFunction<_dart_sqlite3_result_error_nomem>())(
+    return _sqlite3_result_error_nomem(
       arg0,
     );
   }
 
-  _dart_sqlite3_result_error_nomem? _sqlite3_result_error_nomem;
+  late final _sqlite3_result_error_nomem_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_result_error_nomem>>(
+          'sqlite3_result_error_nomem');
+  late final _dart_sqlite3_result_error_nomem _sqlite3_result_error_nomem =
+      _sqlite3_result_error_nomem_ptr
+          .asFunction<_dart_sqlite3_result_error_nomem>();
 
   void sqlite3_result_error_code(
     ffi.Pointer<sqlite3_context> arg0,
     int arg1,
   ) {
-    return (_sqlite3_result_error_code ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_result_error_code>>(
-                'sqlite3_result_error_code')
-            .asFunction<_dart_sqlite3_result_error_code>())(
+    return _sqlite3_result_error_code(
       arg0,
       arg1,
     );
   }
 
-  _dart_sqlite3_result_error_code? _sqlite3_result_error_code;
+  late final _sqlite3_result_error_code_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_result_error_code>>(
+          'sqlite3_result_error_code');
+  late final _dart_sqlite3_result_error_code _sqlite3_result_error_code =
+      _sqlite3_result_error_code_ptr
+          .asFunction<_dart_sqlite3_result_error_code>();
 
   void sqlite3_result_int(
     ffi.Pointer<sqlite3_context> arg0,
     int arg1,
   ) {
-    return (_sqlite3_result_int ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_result_int>>('sqlite3_result_int')
-            .asFunction<_dart_sqlite3_result_int>())(
+    return _sqlite3_result_int(
       arg0,
       arg1,
     );
   }
 
-  _dart_sqlite3_result_int? _sqlite3_result_int;
+  late final _sqlite3_result_int_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_result_int>>('sqlite3_result_int');
+  late final _dart_sqlite3_result_int _sqlite3_result_int =
+      _sqlite3_result_int_ptr.asFunction<_dart_sqlite3_result_int>();
 
   void sqlite3_result_int64(
     ffi.Pointer<sqlite3_context> arg0,
     int arg1,
   ) {
-    return (_sqlite3_result_int64 ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_result_int64>>(
-                'sqlite3_result_int64')
-            .asFunction<_dart_sqlite3_result_int64>())(
+    return _sqlite3_result_int64(
       arg0,
       arg1,
     );
   }
 
-  _dart_sqlite3_result_int64? _sqlite3_result_int64;
+  late final _sqlite3_result_int64_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_result_int64>>(
+          'sqlite3_result_int64');
+  late final _dart_sqlite3_result_int64 _sqlite3_result_int64 =
+      _sqlite3_result_int64_ptr.asFunction<_dart_sqlite3_result_int64>();
 
   void sqlite3_result_null(
     ffi.Pointer<sqlite3_context> arg0,
   ) {
-    return (_sqlite3_result_null ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_result_null>>(
-                'sqlite3_result_null')
-            .asFunction<_dart_sqlite3_result_null>())(
+    return _sqlite3_result_null(
       arg0,
     );
   }
 
-  _dart_sqlite3_result_null? _sqlite3_result_null;
+  late final _sqlite3_result_null_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_result_null>>(
+          'sqlite3_result_null');
+  late final _dart_sqlite3_result_null _sqlite3_result_null =
+      _sqlite3_result_null_ptr.asFunction<_dart_sqlite3_result_null>();
 
   void sqlite3_result_text(
     ffi.Pointer<sqlite3_context> arg0,
@@ -5205,10 +5397,7 @@
     int arg2,
     ffi.Pointer<ffi.NativeFunction<_typedefC_51>> arg3,
   ) {
-    return (_sqlite3_result_text ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_result_text>>(
-                'sqlite3_result_text')
-            .asFunction<_dart_sqlite3_result_text>())(
+    return _sqlite3_result_text(
       arg0,
       arg1,
       arg2,
@@ -5216,7 +5405,11 @@
     );
   }
 
-  _dart_sqlite3_result_text? _sqlite3_result_text;
+  late final _sqlite3_result_text_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_result_text>>(
+          'sqlite3_result_text');
+  late final _dart_sqlite3_result_text _sqlite3_result_text =
+      _sqlite3_result_text_ptr.asFunction<_dart_sqlite3_result_text>();
 
   void sqlite3_result_text64(
     ffi.Pointer<sqlite3_context> arg0,
@@ -5225,10 +5418,7 @@
     ffi.Pointer<ffi.NativeFunction<_typedefC_52>> arg3,
     int encoding,
   ) {
-    return (_sqlite3_result_text64 ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_result_text64>>(
-                'sqlite3_result_text64')
-            .asFunction<_dart_sqlite3_result_text64>())(
+    return _sqlite3_result_text64(
       arg0,
       arg1,
       arg2,
@@ -5237,7 +5427,11 @@
     );
   }
 
-  _dart_sqlite3_result_text64? _sqlite3_result_text64;
+  late final _sqlite3_result_text64_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_result_text64>>(
+          'sqlite3_result_text64');
+  late final _dart_sqlite3_result_text64 _sqlite3_result_text64 =
+      _sqlite3_result_text64_ptr.asFunction<_dart_sqlite3_result_text64>();
 
   void sqlite3_result_text16(
     ffi.Pointer<sqlite3_context> arg0,
@@ -5245,10 +5439,7 @@
     int arg2,
     ffi.Pointer<ffi.NativeFunction<_typedefC_53>> arg3,
   ) {
-    return (_sqlite3_result_text16 ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_result_text16>>(
-                'sqlite3_result_text16')
-            .asFunction<_dart_sqlite3_result_text16>())(
+    return _sqlite3_result_text16(
       arg0,
       arg1,
       arg2,
@@ -5256,7 +5447,11 @@
     );
   }
 
-  _dart_sqlite3_result_text16? _sqlite3_result_text16;
+  late final _sqlite3_result_text16_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_result_text16>>(
+          'sqlite3_result_text16');
+  late final _dart_sqlite3_result_text16 _sqlite3_result_text16 =
+      _sqlite3_result_text16_ptr.asFunction<_dart_sqlite3_result_text16>();
 
   void sqlite3_result_text16le(
     ffi.Pointer<sqlite3_context> arg0,
@@ -5264,10 +5459,7 @@
     int arg2,
     ffi.Pointer<ffi.NativeFunction<_typedefC_54>> arg3,
   ) {
-    return (_sqlite3_result_text16le ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_result_text16le>>(
-                'sqlite3_result_text16le')
-            .asFunction<_dart_sqlite3_result_text16le>())(
+    return _sqlite3_result_text16le(
       arg0,
       arg1,
       arg2,
@@ -5275,7 +5467,11 @@
     );
   }
 
-  _dart_sqlite3_result_text16le? _sqlite3_result_text16le;
+  late final _sqlite3_result_text16le_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_result_text16le>>(
+          'sqlite3_result_text16le');
+  late final _dart_sqlite3_result_text16le _sqlite3_result_text16le =
+      _sqlite3_result_text16le_ptr.asFunction<_dart_sqlite3_result_text16le>();
 
   void sqlite3_result_text16be(
     ffi.Pointer<sqlite3_context> arg0,
@@ -5283,10 +5479,7 @@
     int arg2,
     ffi.Pointer<ffi.NativeFunction<_typedefC_55>> arg3,
   ) {
-    return (_sqlite3_result_text16be ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_result_text16be>>(
-                'sqlite3_result_text16be')
-            .asFunction<_dart_sqlite3_result_text16be>())(
+    return _sqlite3_result_text16be(
       arg0,
       arg1,
       arg2,
@@ -5294,22 +5487,27 @@
     );
   }
 
-  _dart_sqlite3_result_text16be? _sqlite3_result_text16be;
+  late final _sqlite3_result_text16be_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_result_text16be>>(
+          'sqlite3_result_text16be');
+  late final _dart_sqlite3_result_text16be _sqlite3_result_text16be =
+      _sqlite3_result_text16be_ptr.asFunction<_dart_sqlite3_result_text16be>();
 
   void sqlite3_result_value(
     ffi.Pointer<sqlite3_context> arg0,
     ffi.Pointer<sqlite3_value> arg1,
   ) {
-    return (_sqlite3_result_value ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_result_value>>(
-                'sqlite3_result_value')
-            .asFunction<_dart_sqlite3_result_value>())(
+    return _sqlite3_result_value(
       arg0,
       arg1,
     );
   }
 
-  _dart_sqlite3_result_value? _sqlite3_result_value;
+  late final _sqlite3_result_value_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_result_value>>(
+          'sqlite3_result_value');
+  late final _dart_sqlite3_result_value _sqlite3_result_value =
+      _sqlite3_result_value_ptr.asFunction<_dart_sqlite3_result_value>();
 
   void sqlite3_result_pointer(
     ffi.Pointer<sqlite3_context> arg0,
@@ -5317,10 +5515,7 @@
     ffi.Pointer<ffi.Int8> arg2,
     ffi.Pointer<ffi.NativeFunction<_typedefC_56>> arg3,
   ) {
-    return (_sqlite3_result_pointer ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_result_pointer>>(
-                'sqlite3_result_pointer')
-            .asFunction<_dart_sqlite3_result_pointer>())(
+    return _sqlite3_result_pointer(
       arg0,
       arg1,
       arg2,
@@ -5328,37 +5523,44 @@
     );
   }
 
-  _dart_sqlite3_result_pointer? _sqlite3_result_pointer;
+  late final _sqlite3_result_pointer_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_result_pointer>>(
+          'sqlite3_result_pointer');
+  late final _dart_sqlite3_result_pointer _sqlite3_result_pointer =
+      _sqlite3_result_pointer_ptr.asFunction<_dart_sqlite3_result_pointer>();
 
   void sqlite3_result_zeroblob(
     ffi.Pointer<sqlite3_context> arg0,
     int n,
   ) {
-    return (_sqlite3_result_zeroblob ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_result_zeroblob>>(
-                'sqlite3_result_zeroblob')
-            .asFunction<_dart_sqlite3_result_zeroblob>())(
+    return _sqlite3_result_zeroblob(
       arg0,
       n,
     );
   }
 
-  _dart_sqlite3_result_zeroblob? _sqlite3_result_zeroblob;
+  late final _sqlite3_result_zeroblob_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_result_zeroblob>>(
+          'sqlite3_result_zeroblob');
+  late final _dart_sqlite3_result_zeroblob _sqlite3_result_zeroblob =
+      _sqlite3_result_zeroblob_ptr.asFunction<_dart_sqlite3_result_zeroblob>();
 
   int sqlite3_result_zeroblob64(
     ffi.Pointer<sqlite3_context> arg0,
     int n,
   ) {
-    return (_sqlite3_result_zeroblob64 ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_result_zeroblob64>>(
-                'sqlite3_result_zeroblob64')
-            .asFunction<_dart_sqlite3_result_zeroblob64>())(
+    return _sqlite3_result_zeroblob64(
       arg0,
       n,
     );
   }
 
-  _dart_sqlite3_result_zeroblob64? _sqlite3_result_zeroblob64;
+  late final _sqlite3_result_zeroblob64_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_result_zeroblob64>>(
+          'sqlite3_result_zeroblob64');
+  late final _dart_sqlite3_result_zeroblob64 _sqlite3_result_zeroblob64 =
+      _sqlite3_result_zeroblob64_ptr
+          .asFunction<_dart_sqlite3_result_zeroblob64>();
 
   /// CAPI3REF: Setting The Subtype Of An SQL Function
   /// METHOD: sqlite3_context
@@ -5374,16 +5576,17 @@
     ffi.Pointer<sqlite3_context> arg0,
     int arg1,
   ) {
-    return (_sqlite3_result_subtype ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_result_subtype>>(
-                'sqlite3_result_subtype')
-            .asFunction<_dart_sqlite3_result_subtype>())(
+    return _sqlite3_result_subtype(
       arg0,
       arg1,
     );
   }
 
-  _dart_sqlite3_result_subtype? _sqlite3_result_subtype;
+  late final _sqlite3_result_subtype_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_result_subtype>>(
+          'sqlite3_result_subtype');
+  late final _dart_sqlite3_result_subtype _sqlite3_result_subtype =
+      _sqlite3_result_subtype_ptr.asFunction<_dart_sqlite3_result_subtype>();
 
   /// CAPI3REF: Define New Collating Sequences
   /// METHOD: sqlite3
@@ -5471,10 +5674,7 @@
     ffi.Pointer<ffi.Void> pArg,
     ffi.Pointer<ffi.NativeFunction<_typedefC_57>> xCompare,
   ) {
-    return (_sqlite3_create_collation ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_create_collation>>(
-                'sqlite3_create_collation')
-            .asFunction<_dart_sqlite3_create_collation>())(
+    return _sqlite3_create_collation(
       arg0,
       zName,
       eTextRep,
@@ -5483,7 +5683,12 @@
     );
   }
 
-  _dart_sqlite3_create_collation? _sqlite3_create_collation;
+  late final _sqlite3_create_collation_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_create_collation>>(
+          'sqlite3_create_collation');
+  late final _dart_sqlite3_create_collation _sqlite3_create_collation =
+      _sqlite3_create_collation_ptr
+          .asFunction<_dart_sqlite3_create_collation>();
 
   int sqlite3_create_collation_v2(
     ffi.Pointer<sqlite3> arg0,
@@ -5493,10 +5698,7 @@
     ffi.Pointer<ffi.NativeFunction<_typedefC_58>> xCompare,
     ffi.Pointer<ffi.NativeFunction<_typedefC_59>> xDestroy,
   ) {
-    return (_sqlite3_create_collation_v2 ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_create_collation_v2>>(
-                'sqlite3_create_collation_v2')
-            .asFunction<_dart_sqlite3_create_collation_v2>())(
+    return _sqlite3_create_collation_v2(
       arg0,
       zName,
       eTextRep,
@@ -5506,7 +5708,12 @@
     );
   }
 
-  _dart_sqlite3_create_collation_v2? _sqlite3_create_collation_v2;
+  late final _sqlite3_create_collation_v2_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_create_collation_v2>>(
+          'sqlite3_create_collation_v2');
+  late final _dart_sqlite3_create_collation_v2 _sqlite3_create_collation_v2 =
+      _sqlite3_create_collation_v2_ptr
+          .asFunction<_dart_sqlite3_create_collation_v2>();
 
   int sqlite3_create_collation16(
     ffi.Pointer<sqlite3> arg0,
@@ -5515,10 +5722,7 @@
     ffi.Pointer<ffi.Void> pArg,
     ffi.Pointer<ffi.NativeFunction<_typedefC_60>> xCompare,
   ) {
-    return (_sqlite3_create_collation16 ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_create_collation16>>(
-                'sqlite3_create_collation16')
-            .asFunction<_dart_sqlite3_create_collation16>())(
+    return _sqlite3_create_collation16(
       arg0,
       zName,
       eTextRep,
@@ -5527,7 +5731,12 @@
     );
   }
 
-  _dart_sqlite3_create_collation16? _sqlite3_create_collation16;
+  late final _sqlite3_create_collation16_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_create_collation16>>(
+          'sqlite3_create_collation16');
+  late final _dart_sqlite3_create_collation16 _sqlite3_create_collation16 =
+      _sqlite3_create_collation16_ptr
+          .asFunction<_dart_sqlite3_create_collation16>();
 
   /// CAPI3REF: Collation Needed Callbacks
   /// METHOD: sqlite3
@@ -5559,34 +5768,38 @@
     ffi.Pointer<ffi.Void> arg1,
     ffi.Pointer<ffi.NativeFunction<_typedefC_61>> arg2,
   ) {
-    return (_sqlite3_collation_needed ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_collation_needed>>(
-                'sqlite3_collation_needed')
-            .asFunction<_dart_sqlite3_collation_needed>())(
+    return _sqlite3_collation_needed(
       arg0,
       arg1,
       arg2,
     );
   }
 
-  _dart_sqlite3_collation_needed? _sqlite3_collation_needed;
+  late final _sqlite3_collation_needed_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_collation_needed>>(
+          'sqlite3_collation_needed');
+  late final _dart_sqlite3_collation_needed _sqlite3_collation_needed =
+      _sqlite3_collation_needed_ptr
+          .asFunction<_dart_sqlite3_collation_needed>();
 
   int sqlite3_collation_needed16(
     ffi.Pointer<sqlite3> arg0,
     ffi.Pointer<ffi.Void> arg1,
     ffi.Pointer<ffi.NativeFunction<_typedefC_62>> arg2,
   ) {
-    return (_sqlite3_collation_needed16 ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_collation_needed16>>(
-                'sqlite3_collation_needed16')
-            .asFunction<_dart_sqlite3_collation_needed16>())(
+    return _sqlite3_collation_needed16(
       arg0,
       arg1,
       arg2,
     );
   }
 
-  _dart_sqlite3_collation_needed16? _sqlite3_collation_needed16;
+  late final _sqlite3_collation_needed16_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_collation_needed16>>(
+          'sqlite3_collation_needed16');
+  late final _dart_sqlite3_collation_needed16 _sqlite3_collation_needed16 =
+      _sqlite3_collation_needed16_ptr
+          .asFunction<_dart_sqlite3_collation_needed16>();
 
   /// CAPI3REF: Suspend Execution For A Short Time
   ///
@@ -5606,14 +5819,15 @@
   int sqlite3_sleep(
     int arg0,
   ) {
-    return (_sqlite3_sleep ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_sleep>>('sqlite3_sleep')
-            .asFunction<_dart_sqlite3_sleep>())(
+    return _sqlite3_sleep(
       arg0,
     );
   }
 
-  _dart_sqlite3_sleep? _sqlite3_sleep;
+  late final _sqlite3_sleep_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_sleep>>('sqlite3_sleep');
+  late final _dart_sqlite3_sleep _sqlite3_sleep =
+      _sqlite3_sleep_ptr.asFunction<_dart_sqlite3_sleep>();
 
   /// CAPI3REF: Name Of The Folder Holding Temporary Files
   ///
@@ -5741,46 +5955,52 @@
     int type,
     ffi.Pointer<ffi.Void> zValue,
   ) {
-    return (_sqlite3_win32_set_directory ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_win32_set_directory>>(
-                'sqlite3_win32_set_directory')
-            .asFunction<_dart_sqlite3_win32_set_directory>())(
+    return _sqlite3_win32_set_directory(
       type,
       zValue,
     );
   }
 
-  _dart_sqlite3_win32_set_directory? _sqlite3_win32_set_directory;
+  late final _sqlite3_win32_set_directory_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_win32_set_directory>>(
+          'sqlite3_win32_set_directory');
+  late final _dart_sqlite3_win32_set_directory _sqlite3_win32_set_directory =
+      _sqlite3_win32_set_directory_ptr
+          .asFunction<_dart_sqlite3_win32_set_directory>();
 
   int sqlite3_win32_set_directory8(
     int type,
     ffi.Pointer<ffi.Int8> zValue,
   ) {
-    return (_sqlite3_win32_set_directory8 ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_win32_set_directory8>>(
-                'sqlite3_win32_set_directory8')
-            .asFunction<_dart_sqlite3_win32_set_directory8>())(
+    return _sqlite3_win32_set_directory8(
       type,
       zValue,
     );
   }
 
-  _dart_sqlite3_win32_set_directory8? _sqlite3_win32_set_directory8;
+  late final _sqlite3_win32_set_directory8_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_win32_set_directory8>>(
+          'sqlite3_win32_set_directory8');
+  late final _dart_sqlite3_win32_set_directory8 _sqlite3_win32_set_directory8 =
+      _sqlite3_win32_set_directory8_ptr
+          .asFunction<_dart_sqlite3_win32_set_directory8>();
 
   int sqlite3_win32_set_directory16(
     int type,
     ffi.Pointer<ffi.Void> zValue,
   ) {
-    return (_sqlite3_win32_set_directory16 ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_win32_set_directory16>>(
-                'sqlite3_win32_set_directory16')
-            .asFunction<_dart_sqlite3_win32_set_directory16>())(
+    return _sqlite3_win32_set_directory16(
       type,
       zValue,
     );
   }
 
-  _dart_sqlite3_win32_set_directory16? _sqlite3_win32_set_directory16;
+  late final _sqlite3_win32_set_directory16_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_win32_set_directory16>>(
+          'sqlite3_win32_set_directory16');
+  late final _dart_sqlite3_win32_set_directory16
+      _sqlite3_win32_set_directory16 = _sqlite3_win32_set_directory16_ptr
+          .asFunction<_dart_sqlite3_win32_set_directory16>();
 
   /// CAPI3REF: Test For Auto-Commit Mode
   /// KEYWORDS: {autocommit mode}
@@ -5805,15 +6025,16 @@
   int sqlite3_get_autocommit(
     ffi.Pointer<sqlite3> arg0,
   ) {
-    return (_sqlite3_get_autocommit ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_get_autocommit>>(
-                'sqlite3_get_autocommit')
-            .asFunction<_dart_sqlite3_get_autocommit>())(
+    return _sqlite3_get_autocommit(
       arg0,
     );
   }
 
-  _dart_sqlite3_get_autocommit? _sqlite3_get_autocommit;
+  late final _sqlite3_get_autocommit_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_get_autocommit>>(
+          'sqlite3_get_autocommit');
+  late final _dart_sqlite3_get_autocommit _sqlite3_get_autocommit =
+      _sqlite3_get_autocommit_ptr.asFunction<_dart_sqlite3_get_autocommit>();
 
   /// CAPI3REF: Find The Database Handle Of A Prepared Statement
   /// METHOD: sqlite3_stmt
@@ -5827,14 +6048,15 @@
   ffi.Pointer<sqlite3> sqlite3_db_handle(
     ffi.Pointer<sqlite3_stmt> arg0,
   ) {
-    return (_sqlite3_db_handle ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_db_handle>>('sqlite3_db_handle')
-            .asFunction<_dart_sqlite3_db_handle>())(
+    return _sqlite3_db_handle(
       arg0,
     );
   }
 
-  _dart_sqlite3_db_handle? _sqlite3_db_handle;
+  late final _sqlite3_db_handle_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_db_handle>>('sqlite3_db_handle');
+  late final _dart_sqlite3_db_handle _sqlite3_db_handle =
+      _sqlite3_db_handle_ptr.asFunction<_dart_sqlite3_db_handle>();
 
   /// CAPI3REF: Return The Filename For A Database Connection
   /// METHOD: sqlite3
@@ -5868,16 +6090,17 @@
     ffi.Pointer<sqlite3> db,
     ffi.Pointer<ffi.Int8> zDbName,
   ) {
-    return (_sqlite3_db_filename ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_db_filename>>(
-                'sqlite3_db_filename')
-            .asFunction<_dart_sqlite3_db_filename>())(
+    return _sqlite3_db_filename(
       db,
       zDbName,
     );
   }
 
-  _dart_sqlite3_db_filename? _sqlite3_db_filename;
+  late final _sqlite3_db_filename_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_db_filename>>(
+          'sqlite3_db_filename');
+  late final _dart_sqlite3_db_filename _sqlite3_db_filename =
+      _sqlite3_db_filename_ptr.asFunction<_dart_sqlite3_db_filename>();
 
   /// CAPI3REF: Determine if a database is read-only
   /// METHOD: sqlite3
@@ -5889,16 +6112,17 @@
     ffi.Pointer<sqlite3> db,
     ffi.Pointer<ffi.Int8> zDbName,
   ) {
-    return (_sqlite3_db_readonly ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_db_readonly>>(
-                'sqlite3_db_readonly')
-            .asFunction<_dart_sqlite3_db_readonly>())(
+    return _sqlite3_db_readonly(
       db,
       zDbName,
     );
   }
 
-  _dart_sqlite3_db_readonly? _sqlite3_db_readonly;
+  late final _sqlite3_db_readonly_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_db_readonly>>(
+          'sqlite3_db_readonly');
+  late final _dart_sqlite3_db_readonly _sqlite3_db_readonly =
+      _sqlite3_db_readonly_ptr.asFunction<_dart_sqlite3_db_readonly>();
 
   /// CAPI3REF: Find the next prepared statement
   /// METHOD: sqlite3
@@ -5916,15 +6140,16 @@
     ffi.Pointer<sqlite3> pDb,
     ffi.Pointer<sqlite3_stmt> pStmt,
   ) {
-    return (_sqlite3_next_stmt ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_next_stmt>>('sqlite3_next_stmt')
-            .asFunction<_dart_sqlite3_next_stmt>())(
+    return _sqlite3_next_stmt(
       pDb,
       pStmt,
     );
   }
 
-  _dart_sqlite3_next_stmt? _sqlite3_next_stmt;
+  late final _sqlite3_next_stmt_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_next_stmt>>('sqlite3_next_stmt');
+  late final _dart_sqlite3_next_stmt _sqlite3_next_stmt =
+      _sqlite3_next_stmt_ptr.asFunction<_dart_sqlite3_next_stmt>();
 
   /// CAPI3REF: Commit And Rollback Notification Callbacks
   /// METHOD: sqlite3
@@ -5976,34 +6201,36 @@
     ffi.Pointer<ffi.NativeFunction<_typedefC_63>> arg1,
     ffi.Pointer<ffi.Void> arg2,
   ) {
-    return (_sqlite3_commit_hook ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_commit_hook>>(
-                'sqlite3_commit_hook')
-            .asFunction<_dart_sqlite3_commit_hook>())(
+    return _sqlite3_commit_hook(
       arg0,
       arg1,
       arg2,
     );
   }
 
-  _dart_sqlite3_commit_hook? _sqlite3_commit_hook;
+  late final _sqlite3_commit_hook_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_commit_hook>>(
+          'sqlite3_commit_hook');
+  late final _dart_sqlite3_commit_hook _sqlite3_commit_hook =
+      _sqlite3_commit_hook_ptr.asFunction<_dart_sqlite3_commit_hook>();
 
   ffi.Pointer<ffi.Void> sqlite3_rollback_hook(
     ffi.Pointer<sqlite3> arg0,
     ffi.Pointer<ffi.NativeFunction<_typedefC_64>> arg1,
     ffi.Pointer<ffi.Void> arg2,
   ) {
-    return (_sqlite3_rollback_hook ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_rollback_hook>>(
-                'sqlite3_rollback_hook')
-            .asFunction<_dart_sqlite3_rollback_hook>())(
+    return _sqlite3_rollback_hook(
       arg0,
       arg1,
       arg2,
     );
   }
 
-  _dart_sqlite3_rollback_hook? _sqlite3_rollback_hook;
+  late final _sqlite3_rollback_hook_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_rollback_hook>>(
+          'sqlite3_rollback_hook');
+  late final _dart_sqlite3_rollback_hook _sqlite3_rollback_hook =
+      _sqlite3_rollback_hook_ptr.asFunction<_dart_sqlite3_rollback_hook>();
 
   /// CAPI3REF: Data Change Notification Callbacks
   /// METHOD: sqlite3
@@ -6057,17 +6284,18 @@
     ffi.Pointer<ffi.NativeFunction<_typedefC_65>> arg1,
     ffi.Pointer<ffi.Void> arg2,
   ) {
-    return (_sqlite3_update_hook ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_update_hook>>(
-                'sqlite3_update_hook')
-            .asFunction<_dart_sqlite3_update_hook>())(
+    return _sqlite3_update_hook(
       arg0,
       arg1,
       arg2,
     );
   }
 
-  _dart_sqlite3_update_hook? _sqlite3_update_hook;
+  late final _sqlite3_update_hook_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_update_hook>>(
+          'sqlite3_update_hook');
+  late final _dart_sqlite3_update_hook _sqlite3_update_hook =
+      _sqlite3_update_hook_ptr.asFunction<_dart_sqlite3_update_hook>();
 
   /// CAPI3REF: Enable Or Disable Shared Pager Cache
   ///
@@ -6109,15 +6337,17 @@
   int sqlite3_enable_shared_cache(
     int arg0,
   ) {
-    return (_sqlite3_enable_shared_cache ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_enable_shared_cache>>(
-                'sqlite3_enable_shared_cache')
-            .asFunction<_dart_sqlite3_enable_shared_cache>())(
+    return _sqlite3_enable_shared_cache(
       arg0,
     );
   }
 
-  _dart_sqlite3_enable_shared_cache? _sqlite3_enable_shared_cache;
+  late final _sqlite3_enable_shared_cache_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_enable_shared_cache>>(
+          'sqlite3_enable_shared_cache');
+  late final _dart_sqlite3_enable_shared_cache _sqlite3_enable_shared_cache =
+      _sqlite3_enable_shared_cache_ptr
+          .asFunction<_dart_sqlite3_enable_shared_cache>();
 
   /// CAPI3REF: Attempt To Free Heap Memory
   ///
@@ -6134,15 +6364,16 @@
   int sqlite3_release_memory(
     int arg0,
   ) {
-    return (_sqlite3_release_memory ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_release_memory>>(
-                'sqlite3_release_memory')
-            .asFunction<_dart_sqlite3_release_memory>())(
+    return _sqlite3_release_memory(
       arg0,
     );
   }
 
-  _dart_sqlite3_release_memory? _sqlite3_release_memory;
+  late final _sqlite3_release_memory_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_release_memory>>(
+          'sqlite3_release_memory');
+  late final _dart_sqlite3_release_memory _sqlite3_release_memory =
+      _sqlite3_release_memory_ptr.asFunction<_dart_sqlite3_release_memory>();
 
   /// CAPI3REF: Free Memory Used By A Database Connection
   /// METHOD: sqlite3
@@ -6157,15 +6388,17 @@
   int sqlite3_db_release_memory(
     ffi.Pointer<sqlite3> arg0,
   ) {
-    return (_sqlite3_db_release_memory ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_db_release_memory>>(
-                'sqlite3_db_release_memory')
-            .asFunction<_dart_sqlite3_db_release_memory>())(
+    return _sqlite3_db_release_memory(
       arg0,
     );
   }
 
-  _dart_sqlite3_db_release_memory? _sqlite3_db_release_memory;
+  late final _sqlite3_db_release_memory_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_db_release_memory>>(
+          'sqlite3_db_release_memory');
+  late final _dart_sqlite3_db_release_memory _sqlite3_db_release_memory =
+      _sqlite3_db_release_memory_ptr
+          .asFunction<_dart_sqlite3_db_release_memory>();
 
   /// CAPI3REF: Impose A Limit On Heap Size
   ///
@@ -6232,28 +6465,32 @@
   int sqlite3_soft_heap_limit64(
     int N,
   ) {
-    return (_sqlite3_soft_heap_limit64 ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_soft_heap_limit64>>(
-                'sqlite3_soft_heap_limit64')
-            .asFunction<_dart_sqlite3_soft_heap_limit64>())(
+    return _sqlite3_soft_heap_limit64(
       N,
     );
   }
 
-  _dart_sqlite3_soft_heap_limit64? _sqlite3_soft_heap_limit64;
+  late final _sqlite3_soft_heap_limit64_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_soft_heap_limit64>>(
+          'sqlite3_soft_heap_limit64');
+  late final _dart_sqlite3_soft_heap_limit64 _sqlite3_soft_heap_limit64 =
+      _sqlite3_soft_heap_limit64_ptr
+          .asFunction<_dart_sqlite3_soft_heap_limit64>();
 
   int sqlite3_hard_heap_limit64(
     int N,
   ) {
-    return (_sqlite3_hard_heap_limit64 ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_hard_heap_limit64>>(
-                'sqlite3_hard_heap_limit64')
-            .asFunction<_dart_sqlite3_hard_heap_limit64>())(
+    return _sqlite3_hard_heap_limit64(
       N,
     );
   }
 
-  _dart_sqlite3_hard_heap_limit64? _sqlite3_hard_heap_limit64;
+  late final _sqlite3_hard_heap_limit64_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_hard_heap_limit64>>(
+          'sqlite3_hard_heap_limit64');
+  late final _dart_sqlite3_hard_heap_limit64 _sqlite3_hard_heap_limit64 =
+      _sqlite3_hard_heap_limit64_ptr
+          .asFunction<_dart_sqlite3_hard_heap_limit64>();
 
   /// CAPI3REF: Deprecated Soft Heap Limit Interface
   /// DEPRECATED
@@ -6265,15 +6502,16 @@
   void sqlite3_soft_heap_limit(
     int N,
   ) {
-    return (_sqlite3_soft_heap_limit ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_soft_heap_limit>>(
-                'sqlite3_soft_heap_limit')
-            .asFunction<_dart_sqlite3_soft_heap_limit>())(
+    return _sqlite3_soft_heap_limit(
       N,
     );
   }
 
-  _dart_sqlite3_soft_heap_limit? _sqlite3_soft_heap_limit;
+  late final _sqlite3_soft_heap_limit_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_soft_heap_limit>>(
+          'sqlite3_soft_heap_limit');
+  late final _dart_sqlite3_soft_heap_limit _sqlite3_soft_heap_limit =
+      _sqlite3_soft_heap_limit_ptr.asFunction<_dart_sqlite3_soft_heap_limit>();
 
   /// CAPI3REF: Extract Metadata About A Column Of A Table
   /// METHOD: sqlite3
@@ -6353,10 +6591,7 @@
     ffi.Pointer<ffi.Int32> pPrimaryKey,
     ffi.Pointer<ffi.Int32> pAutoinc,
   ) {
-    return (_sqlite3_table_column_metadata ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_table_column_metadata>>(
-                'sqlite3_table_column_metadata')
-            .asFunction<_dart_sqlite3_table_column_metadata>())(
+    return _sqlite3_table_column_metadata(
       db,
       zDbName,
       zTableName,
@@ -6369,7 +6604,12 @@
     );
   }
 
-  _dart_sqlite3_table_column_metadata? _sqlite3_table_column_metadata;
+  late final _sqlite3_table_column_metadata_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_table_column_metadata>>(
+          'sqlite3_table_column_metadata');
+  late final _dart_sqlite3_table_column_metadata
+      _sqlite3_table_column_metadata = _sqlite3_table_column_metadata_ptr
+          .asFunction<_dart_sqlite3_table_column_metadata>();
 
   /// CAPI3REF: Load An Extension
   /// METHOD: sqlite3
@@ -6419,10 +6659,7 @@
     ffi.Pointer<ffi.Int8> zProc,
     ffi.Pointer<ffi.Pointer<ffi.Int8>> pzErrMsg,
   ) {
-    return (_sqlite3_load_extension ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_load_extension>>(
-                'sqlite3_load_extension')
-            .asFunction<_dart_sqlite3_load_extension>())(
+    return _sqlite3_load_extension(
       db,
       zFile,
       zProc,
@@ -6430,7 +6667,11 @@
     );
   }
 
-  _dart_sqlite3_load_extension? _sqlite3_load_extension;
+  late final _sqlite3_load_extension_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_load_extension>>(
+          'sqlite3_load_extension');
+  late final _dart_sqlite3_load_extension _sqlite3_load_extension =
+      _sqlite3_load_extension_ptr.asFunction<_dart_sqlite3_load_extension>();
 
   /// CAPI3REF: Enable Or Disable Extension Loading
   /// METHOD: sqlite3
@@ -6459,16 +6700,18 @@
     ffi.Pointer<sqlite3> db,
     int onoff,
   ) {
-    return (_sqlite3_enable_load_extension ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_enable_load_extension>>(
-                'sqlite3_enable_load_extension')
-            .asFunction<_dart_sqlite3_enable_load_extension>())(
+    return _sqlite3_enable_load_extension(
       db,
       onoff,
     );
   }
 
-  _dart_sqlite3_enable_load_extension? _sqlite3_enable_load_extension;
+  late final _sqlite3_enable_load_extension_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_enable_load_extension>>(
+          'sqlite3_enable_load_extension');
+  late final _dart_sqlite3_enable_load_extension
+      _sqlite3_enable_load_extension = _sqlite3_enable_load_extension_ptr
+          .asFunction<_dart_sqlite3_enable_load_extension>();
 
   /// CAPI3REF: Automatically Load Statically Linked Extensions
   ///
@@ -6507,15 +6750,16 @@
   int sqlite3_auto_extension(
     ffi.Pointer<ffi.NativeFunction<_typedefC_66>> xEntryPoint,
   ) {
-    return (_sqlite3_auto_extension ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_auto_extension>>(
-                'sqlite3_auto_extension')
-            .asFunction<_dart_sqlite3_auto_extension>())(
+    return _sqlite3_auto_extension(
       xEntryPoint,
     );
   }
 
-  _dart_sqlite3_auto_extension? _sqlite3_auto_extension;
+  late final _sqlite3_auto_extension_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_auto_extension>>(
+          'sqlite3_auto_extension');
+  late final _dart_sqlite3_auto_extension _sqlite3_auto_extension =
+      _sqlite3_auto_extension_ptr.asFunction<_dart_sqlite3_auto_extension>();
 
   /// CAPI3REF: Cancel Automatic Extension Loading
   ///
@@ -6528,28 +6772,32 @@
   int sqlite3_cancel_auto_extension(
     ffi.Pointer<ffi.NativeFunction<_typedefC_67>> xEntryPoint,
   ) {
-    return (_sqlite3_cancel_auto_extension ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_cancel_auto_extension>>(
-                'sqlite3_cancel_auto_extension')
-            .asFunction<_dart_sqlite3_cancel_auto_extension>())(
+    return _sqlite3_cancel_auto_extension(
       xEntryPoint,
     );
   }
 
-  _dart_sqlite3_cancel_auto_extension? _sqlite3_cancel_auto_extension;
+  late final _sqlite3_cancel_auto_extension_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_cancel_auto_extension>>(
+          'sqlite3_cancel_auto_extension');
+  late final _dart_sqlite3_cancel_auto_extension
+      _sqlite3_cancel_auto_extension = _sqlite3_cancel_auto_extension_ptr
+          .asFunction<_dart_sqlite3_cancel_auto_extension>();
 
   /// CAPI3REF: Reset Automatic Extension Loading
   ///
   /// ^This interface disables all automatic extensions previously
   /// registered using [sqlite3_auto_extension()].
   void sqlite3_reset_auto_extension() {
-    return (_sqlite3_reset_auto_extension ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_reset_auto_extension>>(
-                'sqlite3_reset_auto_extension')
-            .asFunction<_dart_sqlite3_reset_auto_extension>())();
+    return _sqlite3_reset_auto_extension();
   }
 
-  _dart_sqlite3_reset_auto_extension? _sqlite3_reset_auto_extension;
+  late final _sqlite3_reset_auto_extension_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_reset_auto_extension>>(
+          'sqlite3_reset_auto_extension');
+  late final _dart_sqlite3_reset_auto_extension _sqlite3_reset_auto_extension =
+      _sqlite3_reset_auto_extension_ptr
+          .asFunction<_dart_sqlite3_reset_auto_extension>();
 
   /// CAPI3REF: Register A Virtual Table Implementation
   /// METHOD: sqlite3
@@ -6587,10 +6835,7 @@
     ffi.Pointer<sqlite3_module> p,
     ffi.Pointer<ffi.Void> pClientData,
   ) {
-    return (_sqlite3_create_module ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_create_module>>(
-                'sqlite3_create_module')
-            .asFunction<_dart_sqlite3_create_module>())(
+    return _sqlite3_create_module(
       db,
       zName,
       p,
@@ -6598,7 +6843,11 @@
     );
   }
 
-  _dart_sqlite3_create_module? _sqlite3_create_module;
+  late final _sqlite3_create_module_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_create_module>>(
+          'sqlite3_create_module');
+  late final _dart_sqlite3_create_module _sqlite3_create_module =
+      _sqlite3_create_module_ptr.asFunction<_dart_sqlite3_create_module>();
 
   int sqlite3_create_module_v2(
     ffi.Pointer<sqlite3> db,
@@ -6607,10 +6856,7 @@
     ffi.Pointer<ffi.Void> pClientData,
     ffi.Pointer<ffi.NativeFunction<_typedefC_68>> xDestroy,
   ) {
-    return (_sqlite3_create_module_v2 ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_create_module_v2>>(
-                'sqlite3_create_module_v2')
-            .asFunction<_dart_sqlite3_create_module_v2>())(
+    return _sqlite3_create_module_v2(
       db,
       zName,
       p,
@@ -6619,7 +6865,12 @@
     );
   }
 
-  _dart_sqlite3_create_module_v2? _sqlite3_create_module_v2;
+  late final _sqlite3_create_module_v2_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_create_module_v2>>(
+          'sqlite3_create_module_v2');
+  late final _dart_sqlite3_create_module_v2 _sqlite3_create_module_v2 =
+      _sqlite3_create_module_v2_ptr
+          .asFunction<_dart_sqlite3_create_module_v2>();
 
   /// CAPI3REF: Remove Unnecessary Virtual Table Implementations
   /// METHOD: sqlite3
@@ -6635,16 +6886,17 @@
     ffi.Pointer<sqlite3> db,
     ffi.Pointer<ffi.Pointer<ffi.Int8>> azKeep,
   ) {
-    return (_sqlite3_drop_modules ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_drop_modules>>(
-                'sqlite3_drop_modules')
-            .asFunction<_dart_sqlite3_drop_modules>())(
+    return _sqlite3_drop_modules(
       db,
       azKeep,
     );
   }
 
-  _dart_sqlite3_drop_modules? _sqlite3_drop_modules;
+  late final _sqlite3_drop_modules_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_drop_modules>>(
+          'sqlite3_drop_modules');
+  late final _dart_sqlite3_drop_modules _sqlite3_drop_modules =
+      _sqlite3_drop_modules_ptr.asFunction<_dart_sqlite3_drop_modules>();
 
   /// CAPI3REF: Declare The Schema Of A Virtual Table
   ///
@@ -6656,16 +6908,17 @@
     ffi.Pointer<sqlite3> arg0,
     ffi.Pointer<ffi.Int8> zSQL,
   ) {
-    return (_sqlite3_declare_vtab ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_declare_vtab>>(
-                'sqlite3_declare_vtab')
-            .asFunction<_dart_sqlite3_declare_vtab>())(
+    return _sqlite3_declare_vtab(
       arg0,
       zSQL,
     );
   }
 
-  _dart_sqlite3_declare_vtab? _sqlite3_declare_vtab;
+  late final _sqlite3_declare_vtab_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_declare_vtab>>(
+          'sqlite3_declare_vtab');
+  late final _dart_sqlite3_declare_vtab _sqlite3_declare_vtab =
+      _sqlite3_declare_vtab_ptr.asFunction<_dart_sqlite3_declare_vtab>();
 
   /// CAPI3REF: Overload A Function For A Virtual Table
   /// METHOD: sqlite3
@@ -6687,17 +6940,19 @@
     ffi.Pointer<ffi.Int8> zFuncName,
     int nArg,
   ) {
-    return (_sqlite3_overload_function ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_overload_function>>(
-                'sqlite3_overload_function')
-            .asFunction<_dart_sqlite3_overload_function>())(
+    return _sqlite3_overload_function(
       arg0,
       zFuncName,
       nArg,
     );
   }
 
-  _dart_sqlite3_overload_function? _sqlite3_overload_function;
+  late final _sqlite3_overload_function_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_overload_function>>(
+          'sqlite3_overload_function');
+  late final _dart_sqlite3_overload_function _sqlite3_overload_function =
+      _sqlite3_overload_function_ptr
+          .asFunction<_dart_sqlite3_overload_function>();
 
   /// CAPI3REF: Open A BLOB For Incremental I/O
   /// METHOD: sqlite3
@@ -6789,9 +7044,7 @@
     int flags,
     ffi.Pointer<ffi.Pointer<sqlite3_blob>> ppBlob,
   ) {
-    return (_sqlite3_blob_open ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_blob_open>>('sqlite3_blob_open')
-            .asFunction<_dart_sqlite3_blob_open>())(
+    return _sqlite3_blob_open(
       arg0,
       zDb,
       zTable,
@@ -6802,7 +7055,10 @@
     );
   }
 
-  _dart_sqlite3_blob_open? _sqlite3_blob_open;
+  late final _sqlite3_blob_open_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_blob_open>>('sqlite3_blob_open');
+  late final _dart_sqlite3_blob_open _sqlite3_blob_open =
+      _sqlite3_blob_open_ptr.asFunction<_dart_sqlite3_blob_open>();
 
   /// CAPI3REF: Move a BLOB Handle to a New Row
   /// METHOD: sqlite3_blob
@@ -6829,16 +7085,17 @@
     ffi.Pointer<sqlite3_blob> arg0,
     int arg1,
   ) {
-    return (_sqlite3_blob_reopen ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_blob_reopen>>(
-                'sqlite3_blob_reopen')
-            .asFunction<_dart_sqlite3_blob_reopen>())(
+    return _sqlite3_blob_reopen(
       arg0,
       arg1,
     );
   }
 
-  _dart_sqlite3_blob_reopen? _sqlite3_blob_reopen;
+  late final _sqlite3_blob_reopen_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_blob_reopen>>(
+          'sqlite3_blob_reopen');
+  late final _dart_sqlite3_blob_reopen _sqlite3_blob_reopen =
+      _sqlite3_blob_reopen_ptr.asFunction<_dart_sqlite3_blob_reopen>();
 
   /// CAPI3REF: Close A BLOB Handle
   /// DESTRUCTOR: sqlite3_blob
@@ -6862,14 +7119,15 @@
   int sqlite3_blob_close(
     ffi.Pointer<sqlite3_blob> arg0,
   ) {
-    return (_sqlite3_blob_close ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_blob_close>>('sqlite3_blob_close')
-            .asFunction<_dart_sqlite3_blob_close>())(
+    return _sqlite3_blob_close(
       arg0,
     );
   }
 
-  _dart_sqlite3_blob_close? _sqlite3_blob_close;
+  late final _sqlite3_blob_close_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_blob_close>>('sqlite3_blob_close');
+  late final _dart_sqlite3_blob_close _sqlite3_blob_close =
+      _sqlite3_blob_close_ptr.asFunction<_dart_sqlite3_blob_close>();
 
   /// CAPI3REF: Return The Size Of An Open BLOB
   /// METHOD: sqlite3_blob
@@ -6886,14 +7144,15 @@
   int sqlite3_blob_bytes(
     ffi.Pointer<sqlite3_blob> arg0,
   ) {
-    return (_sqlite3_blob_bytes ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_blob_bytes>>('sqlite3_blob_bytes')
-            .asFunction<_dart_sqlite3_blob_bytes>())(
+    return _sqlite3_blob_bytes(
       arg0,
     );
   }
 
-  _dart_sqlite3_blob_bytes? _sqlite3_blob_bytes;
+  late final _sqlite3_blob_bytes_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_blob_bytes>>('sqlite3_blob_bytes');
+  late final _dart_sqlite3_blob_bytes _sqlite3_blob_bytes =
+      _sqlite3_blob_bytes_ptr.asFunction<_dart_sqlite3_blob_bytes>();
 
   /// CAPI3REF: Read Data From A BLOB Incrementally
   /// METHOD: sqlite3_blob
@@ -6926,9 +7185,7 @@
     int N,
     int iOffset,
   ) {
-    return (_sqlite3_blob_read ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_blob_read>>('sqlite3_blob_read')
-            .asFunction<_dart_sqlite3_blob_read>())(
+    return _sqlite3_blob_read(
       arg0,
       Z,
       N,
@@ -6936,7 +7193,10 @@
     );
   }
 
-  _dart_sqlite3_blob_read? _sqlite3_blob_read;
+  late final _sqlite3_blob_read_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_blob_read>>('sqlite3_blob_read');
+  late final _dart_sqlite3_blob_read _sqlite3_blob_read =
+      _sqlite3_blob_read_ptr.asFunction<_dart_sqlite3_blob_read>();
 
   /// CAPI3REF: Write Data Into A BLOB Incrementally
   /// METHOD: sqlite3_blob
@@ -6982,9 +7242,7 @@
     int n,
     int iOffset,
   ) {
-    return (_sqlite3_blob_write ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_blob_write>>('sqlite3_blob_write')
-            .asFunction<_dart_sqlite3_blob_write>())(
+    return _sqlite3_blob_write(
       arg0,
       z,
       n,
@@ -6992,7 +7250,10 @@
     );
   }
 
-  _dart_sqlite3_blob_write? _sqlite3_blob_write;
+  late final _sqlite3_blob_write_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_blob_write>>('sqlite3_blob_write');
+  late final _dart_sqlite3_blob_write _sqlite3_blob_write =
+      _sqlite3_blob_write_ptr.asFunction<_dart_sqlite3_blob_write>();
 
   /// CAPI3REF: Virtual File System Objects
   ///
@@ -7024,42 +7285,45 @@
   ffi.Pointer<sqlite3_vfs> sqlite3_vfs_find(
     ffi.Pointer<ffi.Int8> zVfsName,
   ) {
-    return (_sqlite3_vfs_find ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_vfs_find>>('sqlite3_vfs_find')
-            .asFunction<_dart_sqlite3_vfs_find>())(
+    return _sqlite3_vfs_find(
       zVfsName,
     );
   }
 
-  _dart_sqlite3_vfs_find? _sqlite3_vfs_find;
+  late final _sqlite3_vfs_find_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_vfs_find>>('sqlite3_vfs_find');
+  late final _dart_sqlite3_vfs_find _sqlite3_vfs_find =
+      _sqlite3_vfs_find_ptr.asFunction<_dart_sqlite3_vfs_find>();
 
   int sqlite3_vfs_register(
     ffi.Pointer<sqlite3_vfs> arg0,
     int makeDflt,
   ) {
-    return (_sqlite3_vfs_register ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_vfs_register>>(
-                'sqlite3_vfs_register')
-            .asFunction<_dart_sqlite3_vfs_register>())(
+    return _sqlite3_vfs_register(
       arg0,
       makeDflt,
     );
   }
 
-  _dart_sqlite3_vfs_register? _sqlite3_vfs_register;
+  late final _sqlite3_vfs_register_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_vfs_register>>(
+          'sqlite3_vfs_register');
+  late final _dart_sqlite3_vfs_register _sqlite3_vfs_register =
+      _sqlite3_vfs_register_ptr.asFunction<_dart_sqlite3_vfs_register>();
 
   int sqlite3_vfs_unregister(
     ffi.Pointer<sqlite3_vfs> arg0,
   ) {
-    return (_sqlite3_vfs_unregister ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_vfs_unregister>>(
-                'sqlite3_vfs_unregister')
-            .asFunction<_dart_sqlite3_vfs_unregister>())(
+    return _sqlite3_vfs_unregister(
       arg0,
     );
   }
 
-  _dart_sqlite3_vfs_unregister? _sqlite3_vfs_unregister;
+  late final _sqlite3_vfs_unregister_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_vfs_unregister>>(
+          'sqlite3_vfs_unregister');
+  late final _dart_sqlite3_vfs_unregister _sqlite3_vfs_unregister =
+      _sqlite3_vfs_unregister_ptr.asFunction<_dart_sqlite3_vfs_unregister>();
 
   /// CAPI3REF: Mutexes
   ///
@@ -7176,90 +7440,97 @@
   ffi.Pointer<sqlite3_mutex> sqlite3_mutex_alloc(
     int arg0,
   ) {
-    return (_sqlite3_mutex_alloc ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_mutex_alloc>>(
-                'sqlite3_mutex_alloc')
-            .asFunction<_dart_sqlite3_mutex_alloc>())(
+    return _sqlite3_mutex_alloc(
       arg0,
     );
   }
 
-  _dart_sqlite3_mutex_alloc? _sqlite3_mutex_alloc;
+  late final _sqlite3_mutex_alloc_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_mutex_alloc>>(
+          'sqlite3_mutex_alloc');
+  late final _dart_sqlite3_mutex_alloc _sqlite3_mutex_alloc =
+      _sqlite3_mutex_alloc_ptr.asFunction<_dart_sqlite3_mutex_alloc>();
 
   void sqlite3_mutex_free(
     ffi.Pointer<sqlite3_mutex> arg0,
   ) {
-    return (_sqlite3_mutex_free ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_mutex_free>>('sqlite3_mutex_free')
-            .asFunction<_dart_sqlite3_mutex_free>())(
+    return _sqlite3_mutex_free(
       arg0,
     );
   }
 
-  _dart_sqlite3_mutex_free? _sqlite3_mutex_free;
+  late final _sqlite3_mutex_free_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_mutex_free>>('sqlite3_mutex_free');
+  late final _dart_sqlite3_mutex_free _sqlite3_mutex_free =
+      _sqlite3_mutex_free_ptr.asFunction<_dart_sqlite3_mutex_free>();
 
   void sqlite3_mutex_enter(
     ffi.Pointer<sqlite3_mutex> arg0,
   ) {
-    return (_sqlite3_mutex_enter ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_mutex_enter>>(
-                'sqlite3_mutex_enter')
-            .asFunction<_dart_sqlite3_mutex_enter>())(
+    return _sqlite3_mutex_enter(
       arg0,
     );
   }
 
-  _dart_sqlite3_mutex_enter? _sqlite3_mutex_enter;
+  late final _sqlite3_mutex_enter_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_mutex_enter>>(
+          'sqlite3_mutex_enter');
+  late final _dart_sqlite3_mutex_enter _sqlite3_mutex_enter =
+      _sqlite3_mutex_enter_ptr.asFunction<_dart_sqlite3_mutex_enter>();
 
   int sqlite3_mutex_try(
     ffi.Pointer<sqlite3_mutex> arg0,
   ) {
-    return (_sqlite3_mutex_try ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_mutex_try>>('sqlite3_mutex_try')
-            .asFunction<_dart_sqlite3_mutex_try>())(
+    return _sqlite3_mutex_try(
       arg0,
     );
   }
 
-  _dart_sqlite3_mutex_try? _sqlite3_mutex_try;
+  late final _sqlite3_mutex_try_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_mutex_try>>('sqlite3_mutex_try');
+  late final _dart_sqlite3_mutex_try _sqlite3_mutex_try =
+      _sqlite3_mutex_try_ptr.asFunction<_dart_sqlite3_mutex_try>();
 
   void sqlite3_mutex_leave(
     ffi.Pointer<sqlite3_mutex> arg0,
   ) {
-    return (_sqlite3_mutex_leave ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_mutex_leave>>(
-                'sqlite3_mutex_leave')
-            .asFunction<_dart_sqlite3_mutex_leave>())(
+    return _sqlite3_mutex_leave(
       arg0,
     );
   }
 
-  _dart_sqlite3_mutex_leave? _sqlite3_mutex_leave;
+  late final _sqlite3_mutex_leave_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_mutex_leave>>(
+          'sqlite3_mutex_leave');
+  late final _dart_sqlite3_mutex_leave _sqlite3_mutex_leave =
+      _sqlite3_mutex_leave_ptr.asFunction<_dart_sqlite3_mutex_leave>();
 
   int sqlite3_mutex_held(
     ffi.Pointer<sqlite3_mutex> arg0,
   ) {
-    return (_sqlite3_mutex_held ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_mutex_held>>('sqlite3_mutex_held')
-            .asFunction<_dart_sqlite3_mutex_held>())(
+    return _sqlite3_mutex_held(
       arg0,
     );
   }
 
-  _dart_sqlite3_mutex_held? _sqlite3_mutex_held;
+  late final _sqlite3_mutex_held_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_mutex_held>>('sqlite3_mutex_held');
+  late final _dart_sqlite3_mutex_held _sqlite3_mutex_held =
+      _sqlite3_mutex_held_ptr.asFunction<_dart_sqlite3_mutex_held>();
 
   int sqlite3_mutex_notheld(
     ffi.Pointer<sqlite3_mutex> arg0,
   ) {
-    return (_sqlite3_mutex_notheld ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_mutex_notheld>>(
-                'sqlite3_mutex_notheld')
-            .asFunction<_dart_sqlite3_mutex_notheld>())(
+    return _sqlite3_mutex_notheld(
       arg0,
     );
   }
 
-  _dart_sqlite3_mutex_notheld? _sqlite3_mutex_notheld;
+  late final _sqlite3_mutex_notheld_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_mutex_notheld>>(
+          'sqlite3_mutex_notheld');
+  late final _dart_sqlite3_mutex_notheld _sqlite3_mutex_notheld =
+      _sqlite3_mutex_notheld_ptr.asFunction<_dart_sqlite3_mutex_notheld>();
 
   /// CAPI3REF: Retrieve the mutex for a database connection
   /// METHOD: sqlite3
@@ -7272,14 +7543,15 @@
   ffi.Pointer<sqlite3_mutex> sqlite3_db_mutex(
     ffi.Pointer<sqlite3> arg0,
   ) {
-    return (_sqlite3_db_mutex ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_db_mutex>>('sqlite3_db_mutex')
-            .asFunction<_dart_sqlite3_db_mutex>())(
+    return _sqlite3_db_mutex(
       arg0,
     );
   }
 
-  _dart_sqlite3_db_mutex? _sqlite3_db_mutex;
+  late final _sqlite3_db_mutex_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_db_mutex>>('sqlite3_db_mutex');
+  late final _dart_sqlite3_db_mutex _sqlite3_db_mutex =
+      _sqlite3_db_mutex_ptr.asFunction<_dart_sqlite3_db_mutex>();
 
   /// CAPI3REF: Low-Level Control Of Database Files
   /// METHOD: sqlite3
@@ -7326,10 +7598,7 @@
     int op,
     ffi.Pointer<ffi.Void> arg3,
   ) {
-    return (_sqlite3_file_control ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_file_control>>(
-                'sqlite3_file_control')
-            .asFunction<_dart_sqlite3_file_control>())(
+    return _sqlite3_file_control(
       arg0,
       zDbName,
       op,
@@ -7337,7 +7606,11 @@
     );
   }
 
-  _dart_sqlite3_file_control? _sqlite3_file_control;
+  late final _sqlite3_file_control_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_file_control>>(
+          'sqlite3_file_control');
+  late final _dart_sqlite3_file_control _sqlite3_file_control =
+      _sqlite3_file_control_ptr.asFunction<_dart_sqlite3_file_control>();
 
   /// CAPI3REF: Testing Interface
   ///
@@ -7357,15 +7630,16 @@
   int sqlite3_test_control(
     int op,
   ) {
-    return (_sqlite3_test_control ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_test_control>>(
-                'sqlite3_test_control')
-            .asFunction<_dart_sqlite3_test_control>())(
+    return _sqlite3_test_control(
       op,
     );
   }
 
-  _dart_sqlite3_test_control? _sqlite3_test_control;
+  late final _sqlite3_test_control_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_test_control>>(
+          'sqlite3_test_control');
+  late final _dart_sqlite3_test_control _sqlite3_test_control =
+      _sqlite3_test_control_ptr.asFunction<_dart_sqlite3_test_control>();
 
   /// CAPI3REF: SQL Keyword Checking
   ///
@@ -7413,45 +7687,48 @@
   /// SQLite is compiled with the [-DSQLITE_OMIT_VACUUM] option.  Also,
   /// new keywords may be added to future releases of SQLite.
   int sqlite3_keyword_count() {
-    return (_sqlite3_keyword_count ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_keyword_count>>(
-                'sqlite3_keyword_count')
-            .asFunction<_dart_sqlite3_keyword_count>())();
+    return _sqlite3_keyword_count();
   }
 
-  _dart_sqlite3_keyword_count? _sqlite3_keyword_count;
+  late final _sqlite3_keyword_count_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_keyword_count>>(
+          'sqlite3_keyword_count');
+  late final _dart_sqlite3_keyword_count _sqlite3_keyword_count =
+      _sqlite3_keyword_count_ptr.asFunction<_dart_sqlite3_keyword_count>();
 
   int sqlite3_keyword_name(
     int arg0,
     ffi.Pointer<ffi.Pointer<ffi.Int8>> arg1,
     ffi.Pointer<ffi.Int32> arg2,
   ) {
-    return (_sqlite3_keyword_name ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_keyword_name>>(
-                'sqlite3_keyword_name')
-            .asFunction<_dart_sqlite3_keyword_name>())(
+    return _sqlite3_keyword_name(
       arg0,
       arg1,
       arg2,
     );
   }
 
-  _dart_sqlite3_keyword_name? _sqlite3_keyword_name;
+  late final _sqlite3_keyword_name_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_keyword_name>>(
+          'sqlite3_keyword_name');
+  late final _dart_sqlite3_keyword_name _sqlite3_keyword_name =
+      _sqlite3_keyword_name_ptr.asFunction<_dart_sqlite3_keyword_name>();
 
   int sqlite3_keyword_check(
     ffi.Pointer<ffi.Int8> arg0,
     int arg1,
   ) {
-    return (_sqlite3_keyword_check ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_keyword_check>>(
-                'sqlite3_keyword_check')
-            .asFunction<_dart_sqlite3_keyword_check>())(
+    return _sqlite3_keyword_check(
       arg0,
       arg1,
     );
   }
 
-  _dart_sqlite3_keyword_check? _sqlite3_keyword_check;
+  late final _sqlite3_keyword_check_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_keyword_check>>(
+          'sqlite3_keyword_check');
+  late final _dart_sqlite3_keyword_check _sqlite3_keyword_check =
+      _sqlite3_keyword_check_ptr.asFunction<_dart_sqlite3_keyword_check>();
 
   /// CAPI3REF: Create A New Dynamic String Object
   /// CONSTRUCTOR: sqlite3_str
@@ -7479,14 +7756,15 @@
   ffi.Pointer<sqlite3_str> sqlite3_str_new(
     ffi.Pointer<sqlite3> arg0,
   ) {
-    return (_sqlite3_str_new ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_str_new>>('sqlite3_str_new')
-            .asFunction<_dart_sqlite3_str_new>())(
+    return _sqlite3_str_new(
       arg0,
     );
   }
 
-  _dart_sqlite3_str_new? _sqlite3_str_new;
+  late final _sqlite3_str_new_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_str_new>>('sqlite3_str_new');
+  late final _dart_sqlite3_str_new _sqlite3_str_new =
+      _sqlite3_str_new_ptr.asFunction<_dart_sqlite3_str_new>();
 
   /// CAPI3REF: Finalize A Dynamic String
   /// DESTRUCTOR: sqlite3_str
@@ -7502,14 +7780,15 @@
   ffi.Pointer<ffi.Int8> sqlite3_str_finish(
     ffi.Pointer<sqlite3_str> arg0,
   ) {
-    return (_sqlite3_str_finish ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_str_finish>>('sqlite3_str_finish')
-            .asFunction<_dart_sqlite3_str_finish>())(
+    return _sqlite3_str_finish(
       arg0,
     );
   }
 
-  _dart_sqlite3_str_finish? _sqlite3_str_finish;
+  late final _sqlite3_str_finish_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_str_finish>>('sqlite3_str_finish');
+  late final _dart_sqlite3_str_finish _sqlite3_str_finish =
+      _sqlite3_str_finish_ptr.asFunction<_dart_sqlite3_str_finish>();
 
   /// CAPI3REF: Add Content To A Dynamic String
   /// METHOD: sqlite3_str
@@ -7545,76 +7824,81 @@
     ffi.Pointer<sqlite3_str> arg0,
     ffi.Pointer<ffi.Int8> zFormat,
   ) {
-    return (_sqlite3_str_appendf ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_str_appendf>>(
-                'sqlite3_str_appendf')
-            .asFunction<_dart_sqlite3_str_appendf>())(
+    return _sqlite3_str_appendf(
       arg0,
       zFormat,
     );
   }
 
-  _dart_sqlite3_str_appendf? _sqlite3_str_appendf;
+  late final _sqlite3_str_appendf_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_str_appendf>>(
+          'sqlite3_str_appendf');
+  late final _dart_sqlite3_str_appendf _sqlite3_str_appendf =
+      _sqlite3_str_appendf_ptr.asFunction<_dart_sqlite3_str_appendf>();
 
   void sqlite3_str_append(
     ffi.Pointer<sqlite3_str> arg0,
     ffi.Pointer<ffi.Int8> zIn,
     int N,
   ) {
-    return (_sqlite3_str_append ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_str_append>>('sqlite3_str_append')
-            .asFunction<_dart_sqlite3_str_append>())(
+    return _sqlite3_str_append(
       arg0,
       zIn,
       N,
     );
   }
 
-  _dart_sqlite3_str_append? _sqlite3_str_append;
+  late final _sqlite3_str_append_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_str_append>>('sqlite3_str_append');
+  late final _dart_sqlite3_str_append _sqlite3_str_append =
+      _sqlite3_str_append_ptr.asFunction<_dart_sqlite3_str_append>();
 
   void sqlite3_str_appendall(
     ffi.Pointer<sqlite3_str> arg0,
     ffi.Pointer<ffi.Int8> zIn,
   ) {
-    return (_sqlite3_str_appendall ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_str_appendall>>(
-                'sqlite3_str_appendall')
-            .asFunction<_dart_sqlite3_str_appendall>())(
+    return _sqlite3_str_appendall(
       arg0,
       zIn,
     );
   }
 
-  _dart_sqlite3_str_appendall? _sqlite3_str_appendall;
+  late final _sqlite3_str_appendall_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_str_appendall>>(
+          'sqlite3_str_appendall');
+  late final _dart_sqlite3_str_appendall _sqlite3_str_appendall =
+      _sqlite3_str_appendall_ptr.asFunction<_dart_sqlite3_str_appendall>();
 
   void sqlite3_str_appendchar(
     ffi.Pointer<sqlite3_str> arg0,
     int N,
     int C,
   ) {
-    return (_sqlite3_str_appendchar ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_str_appendchar>>(
-                'sqlite3_str_appendchar')
-            .asFunction<_dart_sqlite3_str_appendchar>())(
+    return _sqlite3_str_appendchar(
       arg0,
       N,
       C,
     );
   }
 
-  _dart_sqlite3_str_appendchar? _sqlite3_str_appendchar;
+  late final _sqlite3_str_appendchar_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_str_appendchar>>(
+          'sqlite3_str_appendchar');
+  late final _dart_sqlite3_str_appendchar _sqlite3_str_appendchar =
+      _sqlite3_str_appendchar_ptr.asFunction<_dart_sqlite3_str_appendchar>();
 
   void sqlite3_str_reset(
     ffi.Pointer<sqlite3_str> arg0,
   ) {
-    return (_sqlite3_str_reset ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_str_reset>>('sqlite3_str_reset')
-            .asFunction<_dart_sqlite3_str_reset>())(
+    return _sqlite3_str_reset(
       arg0,
     );
   }
 
-  _dart_sqlite3_str_reset? _sqlite3_str_reset;
+  late final _sqlite3_str_reset_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_str_reset>>('sqlite3_str_reset');
+  late final _dart_sqlite3_str_reset _sqlite3_str_reset =
+      _sqlite3_str_reset_ptr.asFunction<_dart_sqlite3_str_reset>();
 
   /// CAPI3REF: Status Of A Dynamic String
   /// METHOD: sqlite3_str
@@ -7646,39 +7930,42 @@
   int sqlite3_str_errcode(
     ffi.Pointer<sqlite3_str> arg0,
   ) {
-    return (_sqlite3_str_errcode ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_str_errcode>>(
-                'sqlite3_str_errcode')
-            .asFunction<_dart_sqlite3_str_errcode>())(
+    return _sqlite3_str_errcode(
       arg0,
     );
   }
 
-  _dart_sqlite3_str_errcode? _sqlite3_str_errcode;
+  late final _sqlite3_str_errcode_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_str_errcode>>(
+          'sqlite3_str_errcode');
+  late final _dart_sqlite3_str_errcode _sqlite3_str_errcode =
+      _sqlite3_str_errcode_ptr.asFunction<_dart_sqlite3_str_errcode>();
 
   int sqlite3_str_length(
     ffi.Pointer<sqlite3_str> arg0,
   ) {
-    return (_sqlite3_str_length ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_str_length>>('sqlite3_str_length')
-            .asFunction<_dart_sqlite3_str_length>())(
+    return _sqlite3_str_length(
       arg0,
     );
   }
 
-  _dart_sqlite3_str_length? _sqlite3_str_length;
+  late final _sqlite3_str_length_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_str_length>>('sqlite3_str_length');
+  late final _dart_sqlite3_str_length _sqlite3_str_length =
+      _sqlite3_str_length_ptr.asFunction<_dart_sqlite3_str_length>();
 
   ffi.Pointer<ffi.Int8> sqlite3_str_value(
     ffi.Pointer<sqlite3_str> arg0,
   ) {
-    return (_sqlite3_str_value ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_str_value>>('sqlite3_str_value')
-            .asFunction<_dart_sqlite3_str_value>())(
+    return _sqlite3_str_value(
       arg0,
     );
   }
 
-  _dart_sqlite3_str_value? _sqlite3_str_value;
+  late final _sqlite3_str_value_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_str_value>>('sqlite3_str_value');
+  late final _dart_sqlite3_str_value _sqlite3_str_value =
+      _sqlite3_str_value_ptr.asFunction<_dart_sqlite3_str_value>();
 
   /// CAPI3REF: SQLite Runtime Status
   ///
@@ -7710,9 +7997,7 @@
     ffi.Pointer<ffi.Int32> pHighwater,
     int resetFlag,
   ) {
-    return (_sqlite3_status ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_status>>('sqlite3_status')
-            .asFunction<_dart_sqlite3_status>())(
+    return _sqlite3_status(
       op,
       pCurrent,
       pHighwater,
@@ -7720,7 +8005,10 @@
     );
   }
 
-  _dart_sqlite3_status? _sqlite3_status;
+  late final _sqlite3_status_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_status>>('sqlite3_status');
+  late final _dart_sqlite3_status _sqlite3_status =
+      _sqlite3_status_ptr.asFunction<_dart_sqlite3_status>();
 
   int sqlite3_status64(
     int op,
@@ -7728,9 +8016,7 @@
     ffi.Pointer<ffi.Int64> pHighwater,
     int resetFlag,
   ) {
-    return (_sqlite3_status64 ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_status64>>('sqlite3_status64')
-            .asFunction<_dart_sqlite3_status64>())(
+    return _sqlite3_status64(
       op,
       pCurrent,
       pHighwater,
@@ -7738,7 +8024,10 @@
     );
   }
 
-  _dart_sqlite3_status64? _sqlite3_status64;
+  late final _sqlite3_status64_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_status64>>('sqlite3_status64');
+  late final _dart_sqlite3_status64 _sqlite3_status64 =
+      _sqlite3_status64_ptr.asFunction<_dart_sqlite3_status64>();
 
   /// CAPI3REF: Database Connection Status
   /// METHOD: sqlite3
@@ -7768,9 +8057,7 @@
     ffi.Pointer<ffi.Int32> pHiwtr,
     int resetFlg,
   ) {
-    return (_sqlite3_db_status ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_db_status>>('sqlite3_db_status')
-            .asFunction<_dart_sqlite3_db_status>())(
+    return _sqlite3_db_status(
       arg0,
       op,
       pCur,
@@ -7779,7 +8066,10 @@
     );
   }
 
-  _dart_sqlite3_db_status? _sqlite3_db_status;
+  late final _sqlite3_db_status_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_db_status>>('sqlite3_db_status');
+  late final _dart_sqlite3_db_status _sqlite3_db_status =
+      _sqlite3_db_status_ptr.asFunction<_dart_sqlite3_db_status>();
 
   /// CAPI3REF: Prepared Statement Status
   /// METHOD: sqlite3_stmt
@@ -7808,17 +8098,18 @@
     int op,
     int resetFlg,
   ) {
-    return (_sqlite3_stmt_status ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_stmt_status>>(
-                'sqlite3_stmt_status')
-            .asFunction<_dart_sqlite3_stmt_status>())(
+    return _sqlite3_stmt_status(
       arg0,
       op,
       resetFlg,
     );
   }
 
-  _dart_sqlite3_stmt_status? _sqlite3_stmt_status;
+  late final _sqlite3_stmt_status_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_stmt_status>>(
+          'sqlite3_stmt_status');
+  late final _dart_sqlite3_stmt_status _sqlite3_stmt_status =
+      _sqlite3_stmt_status_ptr.asFunction<_dart_sqlite3_stmt_status>();
 
   /// CAPI3REF: Online Backup API.
   ///
@@ -8010,10 +8301,7 @@
     ffi.Pointer<sqlite3> pSource,
     ffi.Pointer<ffi.Int8> zSourceName,
   ) {
-    return (_sqlite3_backup_init ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_backup_init>>(
-                'sqlite3_backup_init')
-            .asFunction<_dart_sqlite3_backup_init>())(
+    return _sqlite3_backup_init(
       pDest,
       zDestName,
       pSource,
@@ -8021,61 +8309,71 @@
     );
   }
 
-  _dart_sqlite3_backup_init? _sqlite3_backup_init;
+  late final _sqlite3_backup_init_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_backup_init>>(
+          'sqlite3_backup_init');
+  late final _dart_sqlite3_backup_init _sqlite3_backup_init =
+      _sqlite3_backup_init_ptr.asFunction<_dart_sqlite3_backup_init>();
 
   int sqlite3_backup_step(
     ffi.Pointer<sqlite3_backup> p,
     int nPage,
   ) {
-    return (_sqlite3_backup_step ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_backup_step>>(
-                'sqlite3_backup_step')
-            .asFunction<_dart_sqlite3_backup_step>())(
+    return _sqlite3_backup_step(
       p,
       nPage,
     );
   }
 
-  _dart_sqlite3_backup_step? _sqlite3_backup_step;
+  late final _sqlite3_backup_step_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_backup_step>>(
+          'sqlite3_backup_step');
+  late final _dart_sqlite3_backup_step _sqlite3_backup_step =
+      _sqlite3_backup_step_ptr.asFunction<_dart_sqlite3_backup_step>();
 
   int sqlite3_backup_finish(
     ffi.Pointer<sqlite3_backup> p,
   ) {
-    return (_sqlite3_backup_finish ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_backup_finish>>(
-                'sqlite3_backup_finish')
-            .asFunction<_dart_sqlite3_backup_finish>())(
+    return _sqlite3_backup_finish(
       p,
     );
   }
 
-  _dart_sqlite3_backup_finish? _sqlite3_backup_finish;
+  late final _sqlite3_backup_finish_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_backup_finish>>(
+          'sqlite3_backup_finish');
+  late final _dart_sqlite3_backup_finish _sqlite3_backup_finish =
+      _sqlite3_backup_finish_ptr.asFunction<_dart_sqlite3_backup_finish>();
 
   int sqlite3_backup_remaining(
     ffi.Pointer<sqlite3_backup> p,
   ) {
-    return (_sqlite3_backup_remaining ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_backup_remaining>>(
-                'sqlite3_backup_remaining')
-            .asFunction<_dart_sqlite3_backup_remaining>())(
+    return _sqlite3_backup_remaining(
       p,
     );
   }
 
-  _dart_sqlite3_backup_remaining? _sqlite3_backup_remaining;
+  late final _sqlite3_backup_remaining_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_backup_remaining>>(
+          'sqlite3_backup_remaining');
+  late final _dart_sqlite3_backup_remaining _sqlite3_backup_remaining =
+      _sqlite3_backup_remaining_ptr
+          .asFunction<_dart_sqlite3_backup_remaining>();
 
   int sqlite3_backup_pagecount(
     ffi.Pointer<sqlite3_backup> p,
   ) {
-    return (_sqlite3_backup_pagecount ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_backup_pagecount>>(
-                'sqlite3_backup_pagecount')
-            .asFunction<_dart_sqlite3_backup_pagecount>())(
+    return _sqlite3_backup_pagecount(
       p,
     );
   }
 
-  _dart_sqlite3_backup_pagecount? _sqlite3_backup_pagecount;
+  late final _sqlite3_backup_pagecount_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_backup_pagecount>>(
+          'sqlite3_backup_pagecount');
+  late final _dart_sqlite3_backup_pagecount _sqlite3_backup_pagecount =
+      _sqlite3_backup_pagecount_ptr
+          .asFunction<_dart_sqlite3_backup_pagecount>();
 
   /// CAPI3REF: Unlock Notification
   /// METHOD: sqlite3
@@ -8195,17 +8493,18 @@
     ffi.Pointer<ffi.NativeFunction<_typedefC_69>> xNotify,
     ffi.Pointer<ffi.Void> pNotifyArg,
   ) {
-    return (_sqlite3_unlock_notify ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_unlock_notify>>(
-                'sqlite3_unlock_notify')
-            .asFunction<_dart_sqlite3_unlock_notify>())(
+    return _sqlite3_unlock_notify(
       pBlocked,
       xNotify,
       pNotifyArg,
     );
   }
 
-  _dart_sqlite3_unlock_notify? _sqlite3_unlock_notify;
+  late final _sqlite3_unlock_notify_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_unlock_notify>>(
+          'sqlite3_unlock_notify');
+  late final _dart_sqlite3_unlock_notify _sqlite3_unlock_notify =
+      _sqlite3_unlock_notify_ptr.asFunction<_dart_sqlite3_unlock_notify>();
 
   /// CAPI3REF: String Comparison
   ///
@@ -8217,31 +8516,33 @@
     ffi.Pointer<ffi.Int8> arg0,
     ffi.Pointer<ffi.Int8> arg1,
   ) {
-    return (_sqlite3_stricmp ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_stricmp>>('sqlite3_stricmp')
-            .asFunction<_dart_sqlite3_stricmp>())(
+    return _sqlite3_stricmp(
       arg0,
       arg1,
     );
   }
 
-  _dart_sqlite3_stricmp? _sqlite3_stricmp;
+  late final _sqlite3_stricmp_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_stricmp>>('sqlite3_stricmp');
+  late final _dart_sqlite3_stricmp _sqlite3_stricmp =
+      _sqlite3_stricmp_ptr.asFunction<_dart_sqlite3_stricmp>();
 
   int sqlite3_strnicmp(
     ffi.Pointer<ffi.Int8> arg0,
     ffi.Pointer<ffi.Int8> arg1,
     int arg2,
   ) {
-    return (_sqlite3_strnicmp ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_strnicmp>>('sqlite3_strnicmp')
-            .asFunction<_dart_sqlite3_strnicmp>())(
+    return _sqlite3_strnicmp(
       arg0,
       arg1,
       arg2,
     );
   }
 
-  _dart_sqlite3_strnicmp? _sqlite3_strnicmp;
+  late final _sqlite3_strnicmp_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_strnicmp>>('sqlite3_strnicmp');
+  late final _dart_sqlite3_strnicmp _sqlite3_strnicmp =
+      _sqlite3_strnicmp_ptr.asFunction<_dart_sqlite3_strnicmp>();
 
   /// CAPI3REF: String Globbing
   ///
@@ -8260,15 +8561,16 @@
     ffi.Pointer<ffi.Int8> zGlob,
     ffi.Pointer<ffi.Int8> zStr,
   ) {
-    return (_sqlite3_strglob ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_strglob>>('sqlite3_strglob')
-            .asFunction<_dart_sqlite3_strglob>())(
+    return _sqlite3_strglob(
       zGlob,
       zStr,
     );
   }
 
-  _dart_sqlite3_strglob? _sqlite3_strglob;
+  late final _sqlite3_strglob_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_strglob>>('sqlite3_strglob');
+  late final _dart_sqlite3_strglob _sqlite3_strglob =
+      _sqlite3_strglob_ptr.asFunction<_dart_sqlite3_strglob>();
 
   /// CAPI3REF: String LIKE Matching
   ///
@@ -8294,16 +8596,17 @@
     ffi.Pointer<ffi.Int8> zStr,
     int cEsc,
   ) {
-    return (_sqlite3_strlike ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_strlike>>('sqlite3_strlike')
-            .asFunction<_dart_sqlite3_strlike>())(
+    return _sqlite3_strlike(
       zGlob,
       zStr,
       cEsc,
     );
   }
 
-  _dart_sqlite3_strlike? _sqlite3_strlike;
+  late final _sqlite3_strlike_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_strlike>>('sqlite3_strlike');
+  late final _dart_sqlite3_strlike _sqlite3_strlike =
+      _sqlite3_strlike_ptr.asFunction<_dart_sqlite3_strlike>();
 
   /// CAPI3REF: Error Logging Interface
   ///
@@ -8328,15 +8631,16 @@
     int iErrCode,
     ffi.Pointer<ffi.Int8> zFormat,
   ) {
-    return (_sqlite3_log ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_log>>('sqlite3_log')
-            .asFunction<_dart_sqlite3_log>())(
+    return _sqlite3_log(
       iErrCode,
       zFormat,
     );
   }
 
-  _dart_sqlite3_log? _sqlite3_log;
+  late final _sqlite3_log_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_log>>('sqlite3_log');
+  late final _dart_sqlite3_log _sqlite3_log =
+      _sqlite3_log_ptr.asFunction<_dart_sqlite3_log>();
 
   /// CAPI3REF: Write-Ahead Log Commit Hook
   /// METHOD: sqlite3
@@ -8375,16 +8679,17 @@
     ffi.Pointer<ffi.NativeFunction<_typedefC_70>> arg1,
     ffi.Pointer<ffi.Void> arg2,
   ) {
-    return (_sqlite3_wal_hook ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_wal_hook>>('sqlite3_wal_hook')
-            .asFunction<_dart_sqlite3_wal_hook>())(
+    return _sqlite3_wal_hook(
       arg0,
       arg1,
       arg2,
     );
   }
 
-  _dart_sqlite3_wal_hook? _sqlite3_wal_hook;
+  late final _sqlite3_wal_hook_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_wal_hook>>('sqlite3_wal_hook');
+  late final _dart_sqlite3_wal_hook _sqlite3_wal_hook =
+      _sqlite3_wal_hook_ptr.asFunction<_dart_sqlite3_wal_hook>();
 
   /// CAPI3REF: Configure an auto-checkpoint
   /// METHOD: sqlite3
@@ -8417,16 +8722,18 @@
     ffi.Pointer<sqlite3> db,
     int N,
   ) {
-    return (_sqlite3_wal_autocheckpoint ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_wal_autocheckpoint>>(
-                'sqlite3_wal_autocheckpoint')
-            .asFunction<_dart_sqlite3_wal_autocheckpoint>())(
+    return _sqlite3_wal_autocheckpoint(
       db,
       N,
     );
   }
 
-  _dart_sqlite3_wal_autocheckpoint? _sqlite3_wal_autocheckpoint;
+  late final _sqlite3_wal_autocheckpoint_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_wal_autocheckpoint>>(
+          'sqlite3_wal_autocheckpoint');
+  late final _dart_sqlite3_wal_autocheckpoint _sqlite3_wal_autocheckpoint =
+      _sqlite3_wal_autocheckpoint_ptr
+          .asFunction<_dart_sqlite3_wal_autocheckpoint>();
 
   /// CAPI3REF: Checkpoint a database
   /// METHOD: sqlite3
@@ -8450,16 +8757,17 @@
     ffi.Pointer<sqlite3> db,
     ffi.Pointer<ffi.Int8> zDb,
   ) {
-    return (_sqlite3_wal_checkpoint ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_wal_checkpoint>>(
-                'sqlite3_wal_checkpoint')
-            .asFunction<_dart_sqlite3_wal_checkpoint>())(
+    return _sqlite3_wal_checkpoint(
       db,
       zDb,
     );
   }
 
-  _dart_sqlite3_wal_checkpoint? _sqlite3_wal_checkpoint;
+  late final _sqlite3_wal_checkpoint_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_wal_checkpoint>>(
+          'sqlite3_wal_checkpoint');
+  late final _dart_sqlite3_wal_checkpoint _sqlite3_wal_checkpoint =
+      _sqlite3_wal_checkpoint_ptr.asFunction<_dart_sqlite3_wal_checkpoint>();
 
   /// CAPI3REF: Checkpoint a database
   /// METHOD: sqlite3
@@ -8558,10 +8866,7 @@
     ffi.Pointer<ffi.Int32> pnLog,
     ffi.Pointer<ffi.Int32> pnCkpt,
   ) {
-    return (_sqlite3_wal_checkpoint_v2 ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_wal_checkpoint_v2>>(
-                'sqlite3_wal_checkpoint_v2')
-            .asFunction<_dart_sqlite3_wal_checkpoint_v2>())(
+    return _sqlite3_wal_checkpoint_v2(
       db,
       zDb,
       eMode,
@@ -8570,7 +8875,12 @@
     );
   }
 
-  _dart_sqlite3_wal_checkpoint_v2? _sqlite3_wal_checkpoint_v2;
+  late final _sqlite3_wal_checkpoint_v2_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_wal_checkpoint_v2>>(
+          'sqlite3_wal_checkpoint_v2');
+  late final _dart_sqlite3_wal_checkpoint_v2 _sqlite3_wal_checkpoint_v2 =
+      _sqlite3_wal_checkpoint_v2_ptr
+          .asFunction<_dart_sqlite3_wal_checkpoint_v2>();
 
   /// CAPI3REF: Virtual Table Interface Configuration
   ///
@@ -8592,16 +8902,17 @@
     ffi.Pointer<sqlite3> arg0,
     int op,
   ) {
-    return (_sqlite3_vtab_config ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_vtab_config>>(
-                'sqlite3_vtab_config')
-            .asFunction<_dart_sqlite3_vtab_config>())(
+    return _sqlite3_vtab_config(
       arg0,
       op,
     );
   }
 
-  _dart_sqlite3_vtab_config? _sqlite3_vtab_config;
+  late final _sqlite3_vtab_config_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_vtab_config>>(
+          'sqlite3_vtab_config');
+  late final _dart_sqlite3_vtab_config _sqlite3_vtab_config =
+      _sqlite3_vtab_config_ptr.asFunction<_dart_sqlite3_vtab_config>();
 
   /// CAPI3REF: Determine The Virtual Table Conflict Policy
   ///
@@ -8614,15 +8925,17 @@
   int sqlite3_vtab_on_conflict(
     ffi.Pointer<sqlite3> arg0,
   ) {
-    return (_sqlite3_vtab_on_conflict ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_vtab_on_conflict>>(
-                'sqlite3_vtab_on_conflict')
-            .asFunction<_dart_sqlite3_vtab_on_conflict>())(
+    return _sqlite3_vtab_on_conflict(
       arg0,
     );
   }
 
-  _dart_sqlite3_vtab_on_conflict? _sqlite3_vtab_on_conflict;
+  late final _sqlite3_vtab_on_conflict_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_vtab_on_conflict>>(
+          'sqlite3_vtab_on_conflict');
+  late final _dart_sqlite3_vtab_on_conflict _sqlite3_vtab_on_conflict =
+      _sqlite3_vtab_on_conflict_ptr
+          .asFunction<_dart_sqlite3_vtab_on_conflict>();
 
   /// CAPI3REF: Determine If Virtual Table Column Access Is For UPDATE
   ///
@@ -8642,15 +8955,16 @@
   int sqlite3_vtab_nochange(
     ffi.Pointer<sqlite3_context> arg0,
   ) {
-    return (_sqlite3_vtab_nochange ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_vtab_nochange>>(
-                'sqlite3_vtab_nochange')
-            .asFunction<_dart_sqlite3_vtab_nochange>())(
+    return _sqlite3_vtab_nochange(
       arg0,
     );
   }
 
-  _dart_sqlite3_vtab_nochange? _sqlite3_vtab_nochange;
+  late final _sqlite3_vtab_nochange_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_vtab_nochange>>(
+          'sqlite3_vtab_nochange');
+  late final _dart_sqlite3_vtab_nochange _sqlite3_vtab_nochange =
+      _sqlite3_vtab_nochange_ptr.asFunction<_dart_sqlite3_vtab_nochange>();
 
   /// CAPI3REF: Determine The Collation For a Virtual Table Constraint
   ///
@@ -8667,16 +8981,17 @@
     ffi.Pointer<sqlite3_index_info> arg0,
     int arg1,
   ) {
-    return (_sqlite3_vtab_collation ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_vtab_collation>>(
-                'sqlite3_vtab_collation')
-            .asFunction<_dart_sqlite3_vtab_collation>())(
+    return _sqlite3_vtab_collation(
       arg0,
       arg1,
     );
   }
 
-  _dart_sqlite3_vtab_collation? _sqlite3_vtab_collation;
+  late final _sqlite3_vtab_collation_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_vtab_collation>>(
+          'sqlite3_vtab_collation');
+  late final _dart_sqlite3_vtab_collation _sqlite3_vtab_collation =
+      _sqlite3_vtab_collation_ptr.asFunction<_dart_sqlite3_vtab_collation>();
 
   /// CAPI3REF: Prepared Statement Scan Status
   /// METHOD: sqlite3_stmt
@@ -8713,10 +9028,7 @@
     int iScanStatusOp,
     ffi.Pointer<ffi.Void> pOut,
   ) {
-    return (_sqlite3_stmt_scanstatus ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_stmt_scanstatus>>(
-                'sqlite3_stmt_scanstatus')
-            .asFunction<_dart_sqlite3_stmt_scanstatus>())(
+    return _sqlite3_stmt_scanstatus(
       pStmt,
       idx,
       iScanStatusOp,
@@ -8724,7 +9036,11 @@
     );
   }
 
-  _dart_sqlite3_stmt_scanstatus? _sqlite3_stmt_scanstatus;
+  late final _sqlite3_stmt_scanstatus_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_stmt_scanstatus>>(
+          'sqlite3_stmt_scanstatus');
+  late final _dart_sqlite3_stmt_scanstatus _sqlite3_stmt_scanstatus =
+      _sqlite3_stmt_scanstatus_ptr.asFunction<_dart_sqlite3_stmt_scanstatus>();
 
   /// CAPI3REF: Zero Scan-Status Counters
   /// METHOD: sqlite3_stmt
@@ -8736,15 +9052,17 @@
   void sqlite3_stmt_scanstatus_reset(
     ffi.Pointer<sqlite3_stmt> arg0,
   ) {
-    return (_sqlite3_stmt_scanstatus_reset ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_stmt_scanstatus_reset>>(
-                'sqlite3_stmt_scanstatus_reset')
-            .asFunction<_dart_sqlite3_stmt_scanstatus_reset>())(
+    return _sqlite3_stmt_scanstatus_reset(
       arg0,
     );
   }
 
-  _dart_sqlite3_stmt_scanstatus_reset? _sqlite3_stmt_scanstatus_reset;
+  late final _sqlite3_stmt_scanstatus_reset_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_stmt_scanstatus_reset>>(
+          'sqlite3_stmt_scanstatus_reset');
+  late final _dart_sqlite3_stmt_scanstatus_reset
+      _sqlite3_stmt_scanstatus_reset = _sqlite3_stmt_scanstatus_reset_ptr
+          .asFunction<_dart_sqlite3_stmt_scanstatus_reset>();
 
   /// CAPI3REF: Flush caches to disk mid-transaction
   ///
@@ -8777,15 +9095,16 @@
   int sqlite3_db_cacheflush(
     ffi.Pointer<sqlite3> arg0,
   ) {
-    return (_sqlite3_db_cacheflush ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_db_cacheflush>>(
-                'sqlite3_db_cacheflush')
-            .asFunction<_dart_sqlite3_db_cacheflush>())(
+    return _sqlite3_db_cacheflush(
       arg0,
     );
   }
 
-  _dart_sqlite3_db_cacheflush? _sqlite3_db_cacheflush;
+  late final _sqlite3_db_cacheflush_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_db_cacheflush>>(
+          'sqlite3_db_cacheflush');
+  late final _dart_sqlite3_db_cacheflush _sqlite3_db_cacheflush =
+      _sqlite3_db_cacheflush_ptr.asFunction<_dart_sqlite3_db_cacheflush>();
 
   /// CAPI3REF: Low-level system error code
   ///
@@ -8798,15 +9117,16 @@
   int sqlite3_system_errno(
     ffi.Pointer<sqlite3> arg0,
   ) {
-    return (_sqlite3_system_errno ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_system_errno>>(
-                'sqlite3_system_errno')
-            .asFunction<_dart_sqlite3_system_errno>())(
+    return _sqlite3_system_errno(
       arg0,
     );
   }
 
-  _dart_sqlite3_system_errno? _sqlite3_system_errno;
+  late final _sqlite3_system_errno_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_system_errno>>(
+          'sqlite3_system_errno');
+  late final _dart_sqlite3_system_errno _sqlite3_system_errno =
+      _sqlite3_system_errno_ptr.asFunction<_dart_sqlite3_system_errno>();
 
   /// CAPI3REF: Record A Database Snapshot
   /// CONSTRUCTOR: sqlite3_snapshot
@@ -8854,17 +9174,18 @@
     ffi.Pointer<ffi.Int8> zSchema,
     ffi.Pointer<ffi.Pointer<sqlite3_snapshot>> ppSnapshot,
   ) {
-    return (_sqlite3_snapshot_get ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_snapshot_get>>(
-                'sqlite3_snapshot_get')
-            .asFunction<_dart_sqlite3_snapshot_get>())(
+    return _sqlite3_snapshot_get(
       db,
       zSchema,
       ppSnapshot,
     );
   }
 
-  _dart_sqlite3_snapshot_get? _sqlite3_snapshot_get;
+  late final _sqlite3_snapshot_get_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_snapshot_get>>(
+          'sqlite3_snapshot_get');
+  late final _dart_sqlite3_snapshot_get _sqlite3_snapshot_get =
+      _sqlite3_snapshot_get_ptr.asFunction<_dart_sqlite3_snapshot_get>();
 
   /// CAPI3REF: Start a read transaction on an historical snapshot
   /// METHOD: sqlite3_snapshot
@@ -8912,17 +9233,18 @@
     ffi.Pointer<ffi.Int8> zSchema,
     ffi.Pointer<sqlite3_snapshot> pSnapshot,
   ) {
-    return (_sqlite3_snapshot_open ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_snapshot_open>>(
-                'sqlite3_snapshot_open')
-            .asFunction<_dart_sqlite3_snapshot_open>())(
+    return _sqlite3_snapshot_open(
       db,
       zSchema,
       pSnapshot,
     );
   }
 
-  _dart_sqlite3_snapshot_open? _sqlite3_snapshot_open;
+  late final _sqlite3_snapshot_open_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_snapshot_open>>(
+          'sqlite3_snapshot_open');
+  late final _dart_sqlite3_snapshot_open _sqlite3_snapshot_open =
+      _sqlite3_snapshot_open_ptr.asFunction<_dart_sqlite3_snapshot_open>();
 
   /// CAPI3REF: Destroy a snapshot
   /// DESTRUCTOR: sqlite3_snapshot
@@ -8936,15 +9258,16 @@
   void sqlite3_snapshot_free(
     ffi.Pointer<sqlite3_snapshot> arg0,
   ) {
-    return (_sqlite3_snapshot_free ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_snapshot_free>>(
-                'sqlite3_snapshot_free')
-            .asFunction<_dart_sqlite3_snapshot_free>())(
+    return _sqlite3_snapshot_free(
       arg0,
     );
   }
 
-  _dart_sqlite3_snapshot_free? _sqlite3_snapshot_free;
+  late final _sqlite3_snapshot_free_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_snapshot_free>>(
+          'sqlite3_snapshot_free');
+  late final _dart_sqlite3_snapshot_free _sqlite3_snapshot_free =
+      _sqlite3_snapshot_free_ptr.asFunction<_dart_sqlite3_snapshot_free>();
 
   /// CAPI3REF: Compare the ages of two snapshot handles.
   /// METHOD: sqlite3_snapshot
@@ -8973,16 +9296,17 @@
     ffi.Pointer<sqlite3_snapshot> p1,
     ffi.Pointer<sqlite3_snapshot> p2,
   ) {
-    return (_sqlite3_snapshot_cmp ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_snapshot_cmp>>(
-                'sqlite3_snapshot_cmp')
-            .asFunction<_dart_sqlite3_snapshot_cmp>())(
+    return _sqlite3_snapshot_cmp(
       p1,
       p2,
     );
   }
 
-  _dart_sqlite3_snapshot_cmp? _sqlite3_snapshot_cmp;
+  late final _sqlite3_snapshot_cmp_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_snapshot_cmp>>(
+          'sqlite3_snapshot_cmp');
+  late final _dart_sqlite3_snapshot_cmp _sqlite3_snapshot_cmp =
+      _sqlite3_snapshot_cmp_ptr.asFunction<_dart_sqlite3_snapshot_cmp>();
 
   /// CAPI3REF: Recover snapshots from a wal file
   /// METHOD: sqlite3_snapshot
@@ -9009,16 +9333,18 @@
     ffi.Pointer<sqlite3> db,
     ffi.Pointer<ffi.Int8> zDb,
   ) {
-    return (_sqlite3_snapshot_recover ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_snapshot_recover>>(
-                'sqlite3_snapshot_recover')
-            .asFunction<_dart_sqlite3_snapshot_recover>())(
+    return _sqlite3_snapshot_recover(
       db,
       zDb,
     );
   }
 
-  _dart_sqlite3_snapshot_recover? _sqlite3_snapshot_recover;
+  late final _sqlite3_snapshot_recover_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_snapshot_recover>>(
+          'sqlite3_snapshot_recover');
+  late final _dart_sqlite3_snapshot_recover _sqlite3_snapshot_recover =
+      _sqlite3_snapshot_recover_ptr
+          .asFunction<_dart_sqlite3_snapshot_recover>();
 
   /// CAPI3REF: Serialize a database
   ///
@@ -9060,9 +9386,7 @@
     ffi.Pointer<ffi.Int64> piSize,
     int mFlags,
   ) {
-    return (_sqlite3_serialize ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_serialize>>('sqlite3_serialize')
-            .asFunction<_dart_sqlite3_serialize>())(
+    return _sqlite3_serialize(
       db,
       zSchema,
       piSize,
@@ -9070,7 +9394,10 @@
     );
   }
 
-  _dart_sqlite3_serialize? _sqlite3_serialize;
+  late final _sqlite3_serialize_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_serialize>>('sqlite3_serialize');
+  late final _dart_sqlite3_serialize _sqlite3_serialize =
+      _sqlite3_serialize_ptr.asFunction<_dart_sqlite3_serialize>();
 
   /// CAPI3REF: Deserialize a database
   ///
@@ -9107,10 +9434,7 @@
     int szBuf,
     int mFlags,
   ) {
-    return (_sqlite3_deserialize ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_deserialize>>(
-                'sqlite3_deserialize')
-            .asFunction<_dart_sqlite3_deserialize>())(
+    return _sqlite3_deserialize(
       db,
       zSchema,
       pData,
@@ -9120,7 +9444,11 @@
     );
   }
 
-  _dart_sqlite3_deserialize? _sqlite3_deserialize;
+  late final _sqlite3_deserialize_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_deserialize>>(
+          'sqlite3_deserialize');
+  late final _dart_sqlite3_deserialize _sqlite3_deserialize =
+      _sqlite3_deserialize_ptr.asFunction<_dart_sqlite3_deserialize>();
 
   /// Register a geometry callback named zGeom that can be used as part of an
   /// R-Tree geometry query as follows:
@@ -9132,10 +9460,7 @@
     ffi.Pointer<ffi.NativeFunction<_typedefC_71>> xGeom,
     ffi.Pointer<ffi.Void> pContext,
   ) {
-    return (_sqlite3_rtree_geometry_callback ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_rtree_geometry_callback>>(
-                'sqlite3_rtree_geometry_callback')
-            .asFunction<_dart_sqlite3_rtree_geometry_callback>())(
+    return _sqlite3_rtree_geometry_callback(
       db,
       zGeom,
       xGeom,
@@ -9143,7 +9468,12 @@
     );
   }
 
-  _dart_sqlite3_rtree_geometry_callback? _sqlite3_rtree_geometry_callback;
+  late final _sqlite3_rtree_geometry_callback_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_rtree_geometry_callback>>(
+          'sqlite3_rtree_geometry_callback');
+  late final _dart_sqlite3_rtree_geometry_callback
+      _sqlite3_rtree_geometry_callback = _sqlite3_rtree_geometry_callback_ptr
+          .asFunction<_dart_sqlite3_rtree_geometry_callback>();
 
   /// Register a 2nd-generation geometry callback named zScore that can be
   /// used as part of an R-Tree geometry query as follows:
@@ -9156,10 +9486,7 @@
     ffi.Pointer<ffi.Void> pContext,
     ffi.Pointer<ffi.NativeFunction<_typedefC_73>> xDestructor,
   ) {
-    return (_sqlite3_rtree_query_callback ??=
-        _lookup<ffi.NativeFunction<_c_sqlite3_rtree_query_callback>>(
-                'sqlite3_rtree_query_callback')
-            .asFunction<_dart_sqlite3_rtree_query_callback>())(
+    return _sqlite3_rtree_query_callback(
       db,
       zQueryFunc,
       xQueryFunc,
@@ -9168,7 +9495,12 @@
     );
   }
 
-  _dart_sqlite3_rtree_query_callback? _sqlite3_rtree_query_callback;
+  late final _sqlite3_rtree_query_callback_ptr =
+      _lookup<ffi.NativeFunction<_c_sqlite3_rtree_query_callback>>(
+          'sqlite3_rtree_query_callback');
+  late final _dart_sqlite3_rtree_query_callback _sqlite3_rtree_query_callback =
+      _sqlite3_rtree_query_callback_ptr
+          .asFunction<_dart_sqlite3_rtree_query_callback>();
 }
 
 class sqlite3 extends ffi.Opaque {}
diff --git a/pkgs/ffigen/test/native_test/native_test_bindings.dart b/pkgs/ffigen/test/native_test/native_test_bindings.dart
index 3920689..f409db8 100644
--- a/pkgs/ffigen/test/native_test/native_test_bindings.dart
+++ b/pkgs/ffigen/test/native_test/native_test_bindings.dart
@@ -22,185 +22,202 @@
   bool Function1Bool(
     bool x,
   ) {
-    return (_Function1Bool ??=
-            _lookup<ffi.NativeFunction<_c_Function1Bool>>('Function1Bool')
-                .asFunction<_dart_Function1Bool>())(
+    return _Function1Bool(
           x ? 1 : 0,
         ) !=
         0;
   }
 
-  _dart_Function1Bool? _Function1Bool;
+  late final _Function1Bool_ptr =
+      _lookup<ffi.NativeFunction<_c_Function1Bool>>('Function1Bool');
+  late final _dart_Function1Bool _Function1Bool =
+      _Function1Bool_ptr.asFunction<_dart_Function1Bool>();
 
   int Function1Uint8(
     int x,
   ) {
-    return (_Function1Uint8 ??=
-        _lookup<ffi.NativeFunction<_c_Function1Uint8>>('Function1Uint8')
-            .asFunction<_dart_Function1Uint8>())(
+    return _Function1Uint8(
       x,
     );
   }
 
-  _dart_Function1Uint8? _Function1Uint8;
+  late final _Function1Uint8_ptr =
+      _lookup<ffi.NativeFunction<_c_Function1Uint8>>('Function1Uint8');
+  late final _dart_Function1Uint8 _Function1Uint8 =
+      _Function1Uint8_ptr.asFunction<_dart_Function1Uint8>();
 
   int Function1Uint16(
     int x,
   ) {
-    return (_Function1Uint16 ??=
-        _lookup<ffi.NativeFunction<_c_Function1Uint16>>('Function1Uint16')
-            .asFunction<_dart_Function1Uint16>())(
+    return _Function1Uint16(
       x,
     );
   }
 
-  _dart_Function1Uint16? _Function1Uint16;
+  late final _Function1Uint16_ptr =
+      _lookup<ffi.NativeFunction<_c_Function1Uint16>>('Function1Uint16');
+  late final _dart_Function1Uint16 _Function1Uint16 =
+      _Function1Uint16_ptr.asFunction<_dart_Function1Uint16>();
 
   int Function1Uint32(
     int x,
   ) {
-    return (_Function1Uint32 ??=
-        _lookup<ffi.NativeFunction<_c_Function1Uint32>>('Function1Uint32')
-            .asFunction<_dart_Function1Uint32>())(
+    return _Function1Uint32(
       x,
     );
   }
 
-  _dart_Function1Uint32? _Function1Uint32;
+  late final _Function1Uint32_ptr =
+      _lookup<ffi.NativeFunction<_c_Function1Uint32>>('Function1Uint32');
+  late final _dart_Function1Uint32 _Function1Uint32 =
+      _Function1Uint32_ptr.asFunction<_dart_Function1Uint32>();
 
   int Function1Uint64(
     int x,
   ) {
-    return (_Function1Uint64 ??=
-        _lookup<ffi.NativeFunction<_c_Function1Uint64>>('Function1Uint64')
-            .asFunction<_dart_Function1Uint64>())(
+    return _Function1Uint64(
       x,
     );
   }
 
-  _dart_Function1Uint64? _Function1Uint64;
+  late final _Function1Uint64_ptr =
+      _lookup<ffi.NativeFunction<_c_Function1Uint64>>('Function1Uint64');
+  late final _dart_Function1Uint64 _Function1Uint64 =
+      _Function1Uint64_ptr.asFunction<_dart_Function1Uint64>();
 
   int Function1Int8(
     int x,
   ) {
-    return (_Function1Int8 ??=
-        _lookup<ffi.NativeFunction<_c_Function1Int8>>('Function1Int8')
-            .asFunction<_dart_Function1Int8>())(
+    return _Function1Int8(
       x,
     );
   }
 
-  _dart_Function1Int8? _Function1Int8;
+  late final _Function1Int8_ptr =
+      _lookup<ffi.NativeFunction<_c_Function1Int8>>('Function1Int8');
+  late final _dart_Function1Int8 _Function1Int8 =
+      _Function1Int8_ptr.asFunction<_dart_Function1Int8>();
 
   int Function1Int16(
     int x,
   ) {
-    return (_Function1Int16 ??=
-        _lookup<ffi.NativeFunction<_c_Function1Int16>>('Function1Int16')
-            .asFunction<_dart_Function1Int16>())(
+    return _Function1Int16(
       x,
     );
   }
 
-  _dart_Function1Int16? _Function1Int16;
+  late final _Function1Int16_ptr =
+      _lookup<ffi.NativeFunction<_c_Function1Int16>>('Function1Int16');
+  late final _dart_Function1Int16 _Function1Int16 =
+      _Function1Int16_ptr.asFunction<_dart_Function1Int16>();
 
   int Function1Int32(
     int x,
   ) {
-    return (_Function1Int32 ??=
-        _lookup<ffi.NativeFunction<_c_Function1Int32>>('Function1Int32')
-            .asFunction<_dart_Function1Int32>())(
+    return _Function1Int32(
       x,
     );
   }
 
-  _dart_Function1Int32? _Function1Int32;
+  late final _Function1Int32_ptr =
+      _lookup<ffi.NativeFunction<_c_Function1Int32>>('Function1Int32');
+  late final _dart_Function1Int32 _Function1Int32 =
+      _Function1Int32_ptr.asFunction<_dart_Function1Int32>();
 
   int Function1Int64(
     int x,
   ) {
-    return (_Function1Int64 ??=
-        _lookup<ffi.NativeFunction<_c_Function1Int64>>('Function1Int64')
-            .asFunction<_dart_Function1Int64>())(
+    return _Function1Int64(
       x,
     );
   }
 
-  _dart_Function1Int64? _Function1Int64;
+  late final _Function1Int64_ptr =
+      _lookup<ffi.NativeFunction<_c_Function1Int64>>('Function1Int64');
+  late final _dart_Function1Int64 _Function1Int64 =
+      _Function1Int64_ptr.asFunction<_dart_Function1Int64>();
 
   int Function1IntPtr(
     int x,
   ) {
-    return (_Function1IntPtr ??=
-        _lookup<ffi.NativeFunction<_c_Function1IntPtr>>('Function1IntPtr')
-            .asFunction<_dart_Function1IntPtr>())(
+    return _Function1IntPtr(
       x,
     );
   }
 
-  _dart_Function1IntPtr? _Function1IntPtr;
+  late final _Function1IntPtr_ptr =
+      _lookup<ffi.NativeFunction<_c_Function1IntPtr>>('Function1IntPtr');
+  late final _dart_Function1IntPtr _Function1IntPtr =
+      _Function1IntPtr_ptr.asFunction<_dart_Function1IntPtr>();
 
   double Function1Float(
     double x,
   ) {
-    return (_Function1Float ??=
-        _lookup<ffi.NativeFunction<_c_Function1Float>>('Function1Float')
-            .asFunction<_dart_Function1Float>())(
+    return _Function1Float(
       x,
     );
   }
 
-  _dart_Function1Float? _Function1Float;
+  late final _Function1Float_ptr =
+      _lookup<ffi.NativeFunction<_c_Function1Float>>('Function1Float');
+  late final _dart_Function1Float _Function1Float =
+      _Function1Float_ptr.asFunction<_dart_Function1Float>();
 
   double Function1Double(
     double x,
   ) {
-    return (_Function1Double ??=
-        _lookup<ffi.NativeFunction<_c_Function1Double>>('Function1Double')
-            .asFunction<_dart_Function1Double>())(
+    return _Function1Double(
       x,
     );
   }
 
-  _dart_Function1Double? _Function1Double;
+  late final _Function1Double_ptr =
+      _lookup<ffi.NativeFunction<_c_Function1Double>>('Function1Double');
+  late final _dart_Function1Double _Function1Double =
+      _Function1Double_ptr.asFunction<_dart_Function1Double>();
 
   ffi.Pointer<Struct1> getStruct1() {
-    return (_getStruct1 ??=
-        _lookup<ffi.NativeFunction<_c_getStruct1>>('getStruct1')
-            .asFunction<_dart_getStruct1>())();
+    return _getStruct1();
   }
 
-  _dart_getStruct1? _getStruct1;
+  late final _getStruct1_ptr =
+      _lookup<ffi.NativeFunction<_c_getStruct1>>('getStruct1');
+  late final _dart_getStruct1 _getStruct1 =
+      _getStruct1_ptr.asFunction<_dart_getStruct1>();
 
   Struct3 Function1StructReturnByValue(
     int a,
     int b,
     int c,
   ) {
-    return (_Function1StructReturnByValue ??=
-        _lookup<ffi.NativeFunction<_c_Function1StructReturnByValue>>(
-                'Function1StructReturnByValue')
-            .asFunction<_dart_Function1StructReturnByValue>())(
+    return _Function1StructReturnByValue(
       a,
       b,
       c,
     );
   }
 
-  _dart_Function1StructReturnByValue? _Function1StructReturnByValue;
+  late final _Function1StructReturnByValue_ptr =
+      _lookup<ffi.NativeFunction<_c_Function1StructReturnByValue>>(
+          'Function1StructReturnByValue');
+  late final _dart_Function1StructReturnByValue _Function1StructReturnByValue =
+      _Function1StructReturnByValue_ptr.asFunction<
+          _dart_Function1StructReturnByValue>();
 
   int Function1StructPassByValue(
     Struct3 sum_a_b_c,
   ) {
-    return (_Function1StructPassByValue ??=
-        _lookup<ffi.NativeFunction<_c_Function1StructPassByValue>>(
-                'Function1StructPassByValue')
-            .asFunction<_dart_Function1StructPassByValue>())(
+    return _Function1StructPassByValue(
       sum_a_b_c,
     );
   }
 
-  _dart_Function1StructPassByValue? _Function1StructPassByValue;
+  late final _Function1StructPassByValue_ptr =
+      _lookup<ffi.NativeFunction<_c_Function1StructPassByValue>>(
+          'Function1StructPassByValue');
+  late final _dart_Function1StructPassByValue _Function1StructPassByValue =
+      _Function1StructPassByValue_ptr.asFunction<
+          _dart_Function1StructPassByValue>();
 }
 
 class Struct1 extends ffi.Struct {