W3C home > Mailing lists > Public > public-qt-comments@w3.org > August 2004

variable initializer circularity needs to be defined

From: Per Bothner <per@bothner.com>
Date: Thu, 12 Aug 2004 10:54:16 -0700
Message-ID: <411BAEC8.7030505@bothner.com>
To: public-qt-comments@w3.org

In 4.12 "Variable Declaration" we have:

   If an initializing expression cannot be evaluated because of a
   circularity (for example, it depends on a function that in turn
   depends on the value of the variable that is being initialized),
   a static error is raised.

I assume "circularity" will be defined somewhere, perhaps in the
formal semantics?

Is the following a circularity?  (I would assume so, if it is
to be statically detected.)

module namespace a = "A";
import module namespace b = "B";
declare variable a:x := b:y;

module namespace b = "B";
import module namespace a = "A";
declare variable b:y := if (true()) then 0 else a:x;

Is this a circularity?  (I assume not.)

module namespace a = "A";
import module namespace b = "B";
declare variable a:x := b:y;

module namespace b = "B";
import module namespace a = "A";
declare variable b:z := a:x;
declare variable b:y := 0;
-- 
	--Per Bothner
per@bothner.com   http://per.bothner.com/
Received on Thursday, 12 August 2004 17:54:19 UTC

This archive was generated by hypermail 2.3.1 : Wednesday, 7 January 2015 15:45:20 UTC