diff options
author | Garrett Regier <garrett.regier@riftio.com> | 2015-10-04 12:17:40 -0400 |
---|---|---|
committer | Colin Walters <walters@verbum.org> | 2015-10-04 12:17:55 -0400 |
commit | 849f1eef10b18eddaf41c1e0b2cca87bf5d93739 (patch) | |
tree | d36ede7d5b8879699e0a3c391b89a8f4263c456a /tests | |
parent | 2699d5116ab5aaf801521c0f6c96bda09a23fb15 (diff) | |
download | gobject-introspection-849f1eef10b18eddaf41c1e0b2cca87bf5d93739.tar.gz |
scanner: Warn and ignore on incorrect optional/nullable/allow-none annotations
These can easily be misunderstood, especially optional.
https://bugzilla.gnome.org/show_bug.cgi?id=752065
Signed-off-by: Garrett Regier <garrett.regier@riftio.com>
Diffstat (limited to 'tests')
-rw-r--r-- | tests/warn/Makefile.am | 3 | ||||
-rw-r--r-- | tests/warn/invalid-allow-none.h | 14 | ||||
-rw-r--r-- | tests/warn/invalid-nullable.h | 14 | ||||
-rw-r--r-- | tests/warn/invalid-optional.h | 16 |
4 files changed, 47 insertions, 0 deletions
diff --git a/tests/warn/Makefile.am b/tests/warn/Makefile.am index e7a39345..fb7e989d 100644 --- a/tests/warn/Makefile.am +++ b/tests/warn/Makefile.am @@ -4,12 +4,15 @@ TESTS = \ annotationparser.h \ callback-invalid-scope.h \ callback-missing-scope.h \ + invalid-allow-none.h \ invalid-array.h \ invalid-closure.h \ invalid-constructor.h \ invalid-element-type.h \ invalid-method.h \ + invalid-nullable.h \ invalid-option.h \ + invalid-optional.h \ invalid-out.h \ invalid-transfer.h \ missing-element-type.h \ diff --git a/tests/warn/invalid-allow-none.h b/tests/warn/invalid-allow-none.h new file mode 100644 index 00000000..adea7556 --- /dev/null +++ b/tests/warn/invalid-allow-none.h @@ -0,0 +1,14 @@ +#include "common.h" + +/** + * test_invalid_allow_none: + * @param: (allow-none): + * @param2: (allow-none): + * + * Returns: (allow-none): + */ +int test_invalid_allow_none(int param, GType param2); + +// EXPECT:5: Warning: Test: invalid "allow-none" annotation: only valid for pointer types and out parameters +// EXPECT:6: Warning: Test: invalid "allow-none" annotation: only valid for pointer types and out parameters +// EXPECT:8: Warning: Test: invalid "allow-none" annotation: only valid for pointer types and out parameters diff --git a/tests/warn/invalid-nullable.h b/tests/warn/invalid-nullable.h new file mode 100644 index 00000000..8a9174ab --- /dev/null +++ b/tests/warn/invalid-nullable.h @@ -0,0 +1,14 @@ +#include "common.h" + +/** + * test_invalid_nullable: + * @param: (nullable): + * @param2: (nullable): + * + * Returns: (nullable): + */ +int test_invalid_nullable(int param, GType param2); + +// EXPECT:5: Warning: Test: invalid "nullable" annotation: only valid for pointer types and out parameters +// EXPECT:6: Warning: Test: invalid "nullable" annotation: only valid for pointer types and out parameters +// EXPECT:8: Warning: Test: invalid "nullable" annotation: only valid for pointer types and out parameters diff --git a/tests/warn/invalid-optional.h b/tests/warn/invalid-optional.h new file mode 100644 index 00000000..bcd8df6e --- /dev/null +++ b/tests/warn/invalid-optional.h @@ -0,0 +1,16 @@ +#include "common.h" + +/** + * test_invalid_optional: + * @param: (optional): + * @param2: (optional): + * @param3: (optional) (inout): + * + * Returns: (optional): + */ +int *test_invalid_optional(int param, GObject *param2, int *param3); + +// EXPECT:5: Warning: Test: invalid "optional" annotation: only valid for out parameters +// EXPECT:6: Warning: Test: invalid "optional" annotation: only valid for out parameters +// EXPECT:7: Warning: Test: invalid "optional" annotation: only valid for out parameters +// EXPECT:9: Warning: Test: invalid "optional" annotation: only valid for out parameters |