[gobject-introspection/ebassi/symbol-collision] scanner: Mark colliding properties as not introspectable




commit 34e19f672ea361359205b7cac2d9a37239cb9736
Author: Emmanuele Bassi <ebassi gnome org>
Date:   Thu Aug 5 18:11:25 2021 +0100

    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(-)
---
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-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.</doc>
         </type>
       </property>
       <property name="name-conflict"
+                introspectable="0"
                 writable="1"
                 construct="1"
                 transfer-ownership="none">


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]