Skip to content

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

@vixalien

Description

@vixalien

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions