From 34e19f672ea361359205b7cac2d9a37239cb9736 Mon Sep 17 00:00:00 2001 From: Emmanuele Bassi Date: Thu, 5 Aug 2021 18:11:25 +0100 Subject: scanner: Mark colliding properties as not introspectable We prefer methods, signals, and virtual methods to properties, in case of a collision. --- giscanner/introspectablepass.py | 3 +++ .../Regress.TestObj-name-conflict.page | 18 ------------------ .../Regress.TestObj-name-conflict.page | 18 ------------------ tests/scanner/Regress-1.0-expected.gir | 1 + 4 files changed, 4 insertions(+), 36 deletions(-) delete mode 100644 tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj-name-conflict.page delete mode 100644 tests/scanner/Regress-1.0-Python-expected/Regress.TestObj-name-conflict.page diff --git a/giscanner/introspectablepass.py b/giscanner/introspectablepass.py index 6a999f9f..5bed3ef7 100644 --- a/giscanner/introspectablepass.py +++ b/giscanner/introspectablepass.py @@ -272,6 +272,7 @@ class IntrospectablePass(object): continue if s.name.replace('-', '_') == prop.name.replace('-', '_'): self._property_warning(obj, prop, "Properties cannot have the same name as signals") + prop.introspectable = False return False def _property_method_collision(self, obj, prop): @@ -280,6 +281,7 @@ class IntrospectablePass(object): continue if m.name == prop.name.replace('-', '_'): self._property_warning(obj, prop, "Properties cannot have the same name as methods") + prop.introspectable = False return False def _property_vfunc_collision(self, obj, prop): @@ -288,6 +290,7 @@ class IntrospectablePass(object): continue if vfunc.name == prop.name.replace('-', '_'): self._property_warning(obj, prop, "Properties cannot have the same name as virtual methods") + prop.introspectable = False return False def _introspectable_symbol_collisions(self, obj, stack): diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj-name-conflict.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj-name-conflict.page deleted file mode 100644 index 165ea2fe..00000000 --- a/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj-name-conflict.page +++ /dev/null @@ -1,18 +0,0 @@ - - - - - name-conflict - - Regress.TestObj.name_conflict - -TestObj.name_conflict: Number(gint) (Read / Write / Construct) - - - - diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.TestObj-name-conflict.page b/tests/scanner/Regress-1.0-Python-expected/Regress.TestObj-name-conflict.page deleted file mode 100644 index 6d02a57c..00000000 --- a/tests/scanner/Regress-1.0-Python-expected/Regress.TestObj-name-conflict.page +++ /dev/null @@ -1,18 +0,0 @@ - - - - - name-conflict - - Regress.TestObj:name-conflict - -"name-conflict" int : Read / Write / Construct - - - - diff --git a/tests/scanner/Regress-1.0-expected.gir b/tests/scanner/Regress-1.0-expected.gir index 65a6a83d..6603abb4 100644 --- a/tests/scanner/Regress-1.0-expected.gir +++ b/tests/scanner/Regress-1.0-expected.gir @@ -4786,6 +4786,7 @@ raise an error. -- cgit v1.2.1