stage3/narrow_candidate_datatypes.cc
changeset 895 f824bf8e1579
parent 889 5f380b99e95e
child 909 8b2a31dea131
--- a/stage3/narrow_candidate_datatypes.cc	Tue May 20 08:25:59 2014 +0100
+++ b/stage3/narrow_candidate_datatypes.cc	Thu May 29 12:06:22 2014 +0100
@@ -817,17 +817,16 @@
 /********************************************/
 /* B 1.6 Sequential function chart elements */
 /********************************************/
-
 void *narrow_candidate_datatypes_c::visit(transition_condition_c *symbol) {
-	if (symbol->candidate_datatypes.size() != 1)
-		return NULL;
-	symbol->datatype = symbol->candidate_datatypes[0];
+	// We can safely ask for a BOOL type, as even if the result is a SAFEBOOL, in that case it will aslo include BOOL as a possible datatype.
+	set_datatype(&get_datatype_info_c::bool_type_name /* datatype*/, symbol /* symbol */);
+
 	if (symbol->transition_condition_il != NULL) {
-		symbol->transition_condition_il->datatype = symbol->datatype;
+		set_datatype(symbol->datatype, symbol->transition_condition_il);
 		symbol->transition_condition_il->accept(*this);
 	}
 	if (symbol->transition_condition_st != NULL) {
-		symbol->transition_condition_st->datatype = symbol->datatype;
+		set_datatype(symbol->datatype, symbol->transition_condition_st);
 		symbol->transition_condition_st->accept(*this);
 	}
 	return NULL;