Commit 3ccd9410 by Hristian Kirtchev Committed by Arnaud Charlet

sem_ch9.adb (Analyze_Requeue): Add a local flag to capture whether a requeue…

sem_ch9.adb (Analyze_Requeue): Add a local flag to capture whether a requeue statement is dispatching.

2007-12-06  Hristian Kirtchev  <kirtchev@adacore.com>
	    Gary Dismukes  <dismukes@adacore.com>

	* sem_ch9.adb (Analyze_Requeue): Add a local flag to capture whether a
	requeue statement is dispatching. Do not emit an error when the name is
	not an entry and the context is a dispatching select. Add code to
	perform subtype conformance between the formals of the current entry
	and those of the target interface primitive.
	(Analyze_Asynchronous_Select, Analyze_Conditional_Entry_Call, Analyze_
	Timed_Entry_Call): Analyze the triggering statement as the first step of
	the processing. If this is a dispatching select, postpone the analysis
	of all select statements until the Expander transforms the select. This
	approach avoids generating duplicate identifiers after the Expander has
	replicated some of the select statements. In case the Expander is
	disabled, perform regular analysis.
	(Check_Triggering_Statement): New routine.
	(Analyze_Requeue): Exclude any interpretations that are not entries when
	checking overloaded names in a requeue. Also test type conformance for
	matching interpretations rather than requiring subtype conformance at
	that point to conform with the RM's resolution rule for requeues.

From-SVN: r130855
parent 294ccb21
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment