semantic/compare-type-check.vala \
semantic/conditional-expression-incompatible.test \
semantic/conditional-expression-no-block.test \
+ semantic/conditional-expression-ownership.vala \
semantic/constant-extern.test \
semantic/constant-pointer.test \
semantic/constant-reassignment-element.test \
--- /dev/null
+/* semantic_conditional_expression_ownership.c generated by valac, the Vala compiler
+ * generated from semantic_conditional_expression_ownership.vala, do not modify */
+
+#include <glib.h>
+
+#if !defined(VALA_STRICT_C)
+#if !defined(__clang__) && defined(__GNUC__) && (__GNUC__ >= 14)
+#pragma GCC diagnostic warning "-Wincompatible-pointer-types"
+#elif defined(__clang__) && (__clang_major__ >= 16)
+#pragma clang diagnostic ignored "-Wincompatible-function-pointer-types"
+#pragma clang diagnostic ignored "-Wincompatible-pointer-types"
+#endif
+#endif
+
+#define _g_free0(var) (var = (g_free (var), NULL))
+#define _vala_assert(expr, msg) if G_LIKELY (expr) ; else g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+#define _vala_return_if_fail(expr, msg) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return; }
+#define _vala_return_val_if_fail(expr, msg, val) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return val; }
+#define _vala_warn_if_fail(expr, msg) if G_LIKELY (expr) ; else g_warn_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+
+static void _vala_main (void);
+
+static void
+_vala_main (void)
+{
+ {
+ gchar c = '\0';
+ gchar* _tmp0_ = NULL;
+ gchar* s = NULL;
+ gchar* _tmp6_;
+ const gchar* _tmp7_;
+ c = '4';
+ if (g_ascii_isalpha (c)) {
+ gchar* _tmp1_;
+ _tmp1_ = g_strdup ("?");
+ _g_free0 (_tmp0_);
+ _tmp0_ = _tmp1_;
+ } else {
+ gchar* _tmp2_ = NULL;
+ gchar* _tmp5_;
+ if (g_ascii_isdigit (c)) {
+ gchar* _tmp3_;
+ _tmp3_ = g_strdup ("7");
+ _g_free0 (_tmp2_);
+ _tmp2_ = _tmp3_;
+ } else {
+ gchar* _tmp4_;
+ _tmp4_ = g_strdup_printf ("%c", c);
+ _g_free0 (_tmp2_);
+ _tmp2_ = _tmp4_;
+ }
+ _tmp5_ = _tmp2_;
+ _tmp2_ = NULL;
+ _g_free0 (_tmp0_);
+ _tmp0_ = _tmp5_;
+ _g_free0 (_tmp2_);
+ }
+ _tmp6_ = _tmp0_;
+ _tmp0_ = NULL;
+ s = _tmp6_;
+ _tmp7_ = s;
+ _vala_assert (g_strcmp0 (_tmp7_, "7") == 0, "s == \"7\"");
+ _g_free0 (s);
+ _g_free0 (_tmp0_);
+ }
+ {
+ gchar c = '\0';
+ gchar* r = NULL;
+ gchar* _tmp8_;
+ const gchar* _tmp9_ = NULL;
+ const gchar* s = NULL;
+ c = '4';
+ _tmp8_ = g_strdup ("3");
+ r = _tmp8_;
+ if (g_ascii_isalpha (c)) {
+ _tmp9_ = "?";
+ } else {
+ const gchar* _tmp10_ = NULL;
+ if (!g_ascii_isdigit (c)) {
+ _tmp10_ = "7";
+ } else {
+ const gchar* _tmp11_;
+ _tmp11_ = r;
+ _tmp10_ = _tmp11_;
+ }
+ _tmp9_ = _tmp10_;
+ }
+ s = _tmp9_;
+ _vala_assert (g_strcmp0 (s, "3") == 0, "s == \"3\"");
+ _g_free0 (r);
+ }
+}
+
+int
+main (int argc,
+ char ** argv)
+{
+ _vala_main ();
+ return 0;
+}
+
true_stmt.check (context);
false_stmt.check (context);
- var ma = new MemberAccess.simple (local.name, source_reference);
- ma.formal_target_type = formal_target_type;
- ma.target_type = target_type;
+ var replace_expr = SemanticAnalyzer.create_temp_access (local, target_type);
- parent_node.replace_expression (this, ma);
- ma.check (context);
+ parent_node.replace_expression (this, replace_expr);
+ replace_expr.check (context);
return true;
}