From: Rico Tzschichholz Date: Sun, 26 Sep 2021 11:49:51 +0000 (+0200) Subject: vala: Accept NullType as generic type argument X-Git-Tag: 0.48.20~72 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6405bab4e20c142d6c04d63ef7f69abf367712c3;p=thirdparty%2Fvala.git vala: Accept NullType as generic type argument --- diff --git a/tests/Makefile.am b/tests/Makefile.am index 1d823ca11..d8b353fed 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -680,6 +680,7 @@ TESTS = \ generics/parameter-invalid-initializer.test \ generics/parameter-sizeof-initializer.vala \ generics/member-dup-destroy.vala \ + generics/null-type.vala \ generics/property-int-cast.vala \ generics/reference-transfer.vala \ generics/string-literal-comparison.vala \ diff --git a/tests/generics/null-type.vala b/tests/generics/null-type.vala new file mode 100644 index 000000000..a427ee8c1 --- /dev/null +++ b/tests/generics/null-type.vala @@ -0,0 +1,10 @@ +void foo (T t) { + assert (t == null); + assert (typeof (T) == Type.INVALID); + assert (T.dup == null); + assert (T.destroy == null); +} + +void main () { + foo (null); +} diff --git a/vala/valasemanticanalyzer.vala b/vala/valasemanticanalyzer.vala index de9096775..abc0a4b56 100644 --- a/vala/valasemanticanalyzer.vala +++ b/vala/valasemanticanalyzer.vala @@ -1354,6 +1354,7 @@ public class Vala.SemanticAnalyzer : CodeVisitor { void check_type_argument (DataType type_arg) { if (type_arg is GenericType + || type_arg is NullType || type_arg is PointerType || type_arg is VoidType || is_reference_type_argument (type_arg)