typedef struct _Foo Foo;
struct _Foo {
- void* bar;
+ void* bar G_GNUC_DEPRECATED ;
} G_GNUC_DEPRECATED ;
static void _vala_main (void);
};
struct _FooClassPrivate {
- gint _bar;
+ gint _bar G_GNUC_DEPRECATED ;
};
struct _AFoo {
VALA_EXTERN gint fooclass_foov (FooClass* self) G_GNUC_DEPRECATED ;
VALA_EXTERN gint fooclass_foo (FooClass* self) G_GNUC_DEPRECATED ;
static gint fooclass_real_foov (FooClass* self) G_GNUC_DEPRECATED ;
-VALA_EXTERN FooClass* fooclass_new (void);
-VALA_EXTERN FooClass* fooclass_construct (GType object_type);
+VALA_EXTERN FooClass* fooclass_new (void) G_GNUC_DEPRECATED ;
+VALA_EXTERN FooClass* fooclass_construct (GType object_type) G_GNUC_DEPRECATED ;
VALA_EXTERN gint fooclass_get_bar (FooClass* self) G_GNUC_DEPRECATED ;
VALA_EXTERN void fooclass_set_bar (FooClass* self,
gint value) G_GNUC_DEPRECATED ;
VALA_EXTERN gint afoo_fooa (AFoo* self) G_GNUC_DEPRECATED ;
VALA_EXTERN gint afoo_foo (AFoo* self) G_GNUC_DEPRECATED ;
static gint afoo_real_fooa (AFoo* self) G_GNUC_DEPRECATED ;
-VALA_EXTERN AFoo* afoo_construct (GType object_type);
+VALA_EXTERN AFoo* afoo_construct (GType object_type) G_GNUC_DEPRECATED ;
static GType afoo_get_type_once (void);
VALA_EXTERN GType ifoo_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (IFoo, g_object_unref)
<field name="priv" readable="0" private="1">
<type name="DeprecatedClassTestPrivate" c:type="GirTestDeprecatedClassTestPrivate*"/>
</field>
- <constructor name="new" c:identifier="gir_test_deprecated_class_test_new">
+ <constructor name="new" c:identifier="gir_test_deprecated_class_test_new" deprecated="1">
<return-value transfer-ownership="full">
<type name="GirTest.DeprecatedClassTest" c:type="GirTestDeprecatedClassTest*"/>
</return-value>
public class DeprecatedClassTest {
public int ref_count;
[CCode (has_construct_function = false)]
+ [Version (deprecated = true)]
public DeprecatedClassTest ();
}
[CCode (cheader_filename = "girtest.h", type_id = "gir_test_generics_object_test_get_type ()")]
*/
public bool deprecated {
get {
- if (_deprecated == null) {
+ if (_deprecated != null) {
+ return _deprecated;
+ }
+ if (symbol.has_attribute ("Version")
+ // [Deprecated] is deprecated
+ || symbol.has_attribute ("Deprecated")) {
_deprecated = symbol.get_attribute_bool ("Version", "deprecated", false)
|| symbol.has_attribute_argument ("Version", "deprecated_since")
|| symbol.has_attribute_argument ("Version", "replacement")
// [Deprecated] is deprecated
|| symbol.has_attribute ("Deprecated");
+ } else if (symbol.parent_symbol is TypeSymbol) {
+ _deprecated = symbol.parent_symbol.version.deprecated;
+ } else {
+ _deprecated = false;
}
return _deprecated;
}