}
// FIXME this breaks in our macro, so this should not happen
- if (cvar is CCodeCastExpression) {
+ while (cvar is CCodeCastExpression) {
cvar = ((CCodeCastExpression) cvar).inner;
- } else if (cvar is CCodeFunctionCall) {
+ }
+ if (cvar is CCodeFunctionCall) {
cvar = ((CCodeFunctionCall) cvar).get_arguments ()[0];
}
generics/inference-argument-may-fail.vala \
generics/inference-static-function.vala \
generics/integer-type-cast.vala \
+ generics/integer-type-cast-return.vala \
generics/parameter-invalid-initializer.test \
generics/parameter-sizeof-initializer.vala \
generics/member-dup-destroy.vala \
--- /dev/null
+T manam <T> (int i) {
+ return (int?) i;
+}
+
+T minim <T> (uint i) {
+ return (uint?) i;
+}
+
+void main () {
+ assert (manam<int?> (int.MIN) == int.MIN);
+ assert (minim<uint?> (uint.MAX) == uint.MAX);
+ assert ((int) ((int?) manam<int?> (int.MIN)) == int.MIN);
+ assert ((uint) ((uint?) minim<uint?> (uint.MAX)) == uint.MAX);
+}