diff options
-rw-r--r-- | vala/valagirparser.vala | 1 | ||||
-rw-r--r-- | vapigen/valagidlparser.vala | 8 |
2 files changed, 5 insertions, 4 deletions
diff --git a/vala/valagirparser.vala b/vala/valagirparser.vala index 4213824b2..3f2025093 100644 --- a/vala/valagirparser.vala +++ b/vala/valagirparser.vala @@ -4180,7 +4180,6 @@ public class Vala.GirParser : CodeVisitor { if (finish_method is CreationMethod) { method = new CreationMethod (((CreationMethod) finish_method).class_name, null, m.source_reference); method.access = m.access; - method.binding = m.binding; method.coroutine = true; method.has_construct_function = finish_method.has_construct_function; diff --git a/vapigen/valagidlparser.vala b/vapigen/valagidlparser.vala index 5f956dbf8..82f4b12cc 100644 --- a/vapigen/valagidlparser.vala +++ b/vapigen/valagidlparser.vala @@ -447,7 +447,9 @@ public class Vala.GIdlParser : CodeVisitor { } else if (node.type == IdlNodeTypeId.FUNCTION) { var m = parse_function ((IdlNodeFunction) node); if (m != null) { - m.binding = MemberBinding.STATIC; + if (!(m is CreationMethod)) { + m.binding = MemberBinding.STATIC; + } add_symbol_to_container (container, m); current_source_file.add_node (m); } @@ -2404,7 +2406,7 @@ public class Vala.GIdlParser : CodeVisitor { m.name = m.name.substring ("class_".length, m.name.length - "class_".length); } continue; - } else { + } else if (!(m is CreationMethod)) { // static method m.binding = MemberBinding.STATIC; } @@ -2604,7 +2606,7 @@ public class Vala.GIdlParser : CodeVisitor { } } - if (first) { + if (first && !(m is CreationMethod)) { // no parameters => static method m.binding = MemberBinding.STATIC; } |