Repository navigation
Sync with Redot 26.3-stable - #39
Arctis-Fireblight merged 2 commits into
Conversation
Regenerate the GDExtension API and interface header from the official redot-26.3-stable engine tag (85e5203945af15755dd2f66cb6fdf7545fd88c0b). Align Variant types and cleanup with the new Struct type. Initialize the generated Struct bindings without requesting unsupported Variant conversion functions or internal pointer getters. Add integration coverage for native Struct construction, script struct fields, and Variant reference cleanup. Validated on Linux x86_64 with full SCons debug and release builds, CMake debug and release builds using the CI test profile, all 129 integration assertions for each build, and all pre-commit hooks at the manual stage.
|
Warning Review limit reachedYou've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. Next included review available in 38 minutes. View limit details
No actionable comments were generated in the recent review.
|
| Layer / File(s) | Summary |
|---|---|
Struct type and binding contract gdextension/gdextension_interface.h, include/godot_cpp/variant/variant.hpp, binding_generator.py |
The variant enums gain a STRUCT value. Generated Struct bindings omit the Variant-to-Struct constructor and its initializer. |
Runtime Struct handling include/godot_cpp/variant/variant_internal.hpp, src/variant/variant.cpp, src/variant/variant_internal.cpp |
Runtime binding setup skips Struct conversion and pointer-getter lookups, initializes Struct bindings separately, and includes Struct in Variant clearing. |
Struct Variant tests test/src/example.h, test/src/example.cpp, test/project/main.gd |
The tests pass populated and null Struct values to the bound C++ method. They check enum values, named-value access, clearing, empty-struct copying, and reference counts. |
Priority:
Estimated code review effort: 3 (Moderate) | ~20 minutes
Change: Other
Sequence Diagram(s)
sequenceDiagram
participant GDScript
participant Example
participant Variant
GDScript->>Example: test_variant_struct(TestStruct)
Example->>Variant: inspect STRUCT and read named value
Variant-->>Example: return value 42
Example->>Variant: clear copied Variant
Variant-->>Example: report type NIL
Example-->>GDScript: return true
GDScript->>Example: test_variant_struct(null)
Example-->>GDScript: return false
Possibly related PRs
- Redot-Engine/redot-cpp#38: Updates the same generated extension API and GDExtension interface for the preceding Redot stable release.
Merge Risk: 
Minimal · previous review 2f70a
-
No actionable merge-blocking risk was identified in the reviewed change.
Pre-merge checks: 
4 · 
1
-
Failed checks: 1 warning Passed checks: 4 passedFull details: Docstring Coverage
-
Explanation
Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff with cyclomatic complexity of at least 2. Documentation-only edits and deletions within surviving functions are included; unchanged diff context and fully deleted functions are excluded. Analyzed 9 functions across 8 files. (1 skipped: 1 unsupported.)
Resolution
Write docstrings for the functions missing them to satisfy the coverage threshold.
-
Finishing Touches
-
🧪 Generate unit tests (beta)
-
- Create a new PR
-
- Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.
Comment @coderabbitai help to get the list of available commands.
Regenerate the GDExtension API and interface header from the official redot-26.3-stable engine tag (85e5203945af15755dd2f66cb6fdf7545fd88c0b).
Align Variant types and cleanup with the new Struct type. Initialize the generated Struct bindings without requesting unsupported Variant conversion functions or internal pointer getters. Add integration coverage for native Struct construction, script struct fields, and Variant reference cleanup.
Validated on Linux x86_64 with full SCons debug and release builds, CMake debug and release builds using the CI test profile, all 129 integration assertions for each build, and all pre-commit hooks at the manual stage.
Summary by CodeRabbit
nullor a non-struct value can be checked safely.