Skip to content

fix(gem): preserve runtime-defined mixin scopes - #2745

Open
efegokdemir wants to merge 1 commit into
Shopify:mainfrom
efegokdemir:efe/fix-gobject-introspection-rbis
Open

efegokdemir wants to merge 1 commit into
Shopify:mainfrom
efegokdemir:efe/fix-gobject-introspection-rbis

Conversation

@efegokdemir

Copy link
Copy Markdown

Motivation

Fixes #2598. Tapioca skips GObject interfaces created by gobject-introspection because their recorded source belongs to that gem, even when another gem mixes them into its own namespace. The generated RBI is then missing the module declaration.

Implementation

When a gem mixes in a module that would otherwise be filtered as external, emit a foreign scope only if it is nested under a namespace defined by that gem. Other dependency mixins remain filtered.

Tests

The regression failed before the fix because the RBI omitted the module declaration. The full test suite passed: 867 tests, 3,466 assertions, 0 failures, 2 skips. Typecheck, lint, gem RBI verification and shim checks passed.

@efegokdemir
efegokdemir requested a review from a team as a code owner October 19, 2026 12:49

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Missing RBI declarations for APIs made by gobject-introspection

1 participant