Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Properties by an implemented interface's parent are included in the generated class type #222

Open
3 tasks
vixalien opened this issue Nov 12, 2024 · 0 comments
Labels

Comments

@vixalien
Copy link

Description

Please forgive the awful title.

Let's take example of Gtk.MediaStream: It implements Gdk.Paintable, and Gdk.Paintable requires GObject.Object.

However, in the types of Gtk.MediaStream, types for GObject.Object are included.

Current vs Expected Behavior

Current:

abstract class MediaStream extends GObject.Object implements Gdk.Paintable {
	// these should NOT be here
            bind_property(
                source_property: string,
                target: GObject.Object,
                target_property: string,
                flags: GObject.BindingFlags | null,
            ): GObject.Binding;
            bind_property_full(
                source_property: string,
                target: GObject.Object,
                target_property: string,
                flags: GObject.BindingFlags | null,
                transform_to?: GObject.BindingTransformFunc | null,
                transform_from?: GObject.BindingTransformFunc | null,
                notify?: GLib.DestroyNotify | null,
            ): GObject.Binding;
            // Conflicted with GObject.Object.bind_property_full
            bind_property_full(...args: never[]): any;

Expected:

All those types not to be included, because they are from GObject.Object

Also, note how there are 2 different declarations for bind_property_full, and the second one breaks things.

see above

References

Additional Context

  • This affects other GJS types/classes
  • This is a regression from a previous version
  • This blocks other functionality
@vixalien vixalien added the bug label Nov 12, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant