automatic dependency tracking


git-svn-id: https://asn1c.svn.sourceforge.net/svnroot/asn1c/trunk@975 59561ff5-6e30-0410-9f3c-9617f08c8826
diff --git a/tests/92-circular-loops-OK.asn1 b/tests/92-circular-loops-OK.asn1
index 956e2ac..e57312d 100644
--- a/tests/92-circular-loops-OK.asn1
+++ b/tests/92-circular-loops-OK.asn1
@@ -14,7 +14,14 @@
 	Everything ::= SEQUENCE {
 		ch1	Choice1,
 		ch2	Choice2,
-		set	Set
+		ch3	Choice3,
+		set	Set,
+		a	Alpha,
+		b	Beta,
+		g	Gamma,
+		ot	OneTwo,
+		tt	TwoThree,
+		to	ThreeOne
 	}
 
 	-- This type refers to the type directly containing itself.
@@ -25,10 +32,19 @@
 	}
 
 	Choice2 ::= CHOICE {
+		typeref	TypeRef,
 		...,
 		some3	Everything
 	}
 
+	Choice3 ::= CHOICE {
+			a SEQUENCE {
+				aa Everything
+			},
+			b  Everything,
+			c SEQUENCE OF Choice3
+		}
+
 	Set ::= SET OF SEQUENCE {
 			int	INTEGER,
 			set	Set,
@@ -46,4 +62,29 @@
 			set	Set OPTIONAL
 		}
 
+	TypeRef ::= Sequence
+
+	Alpha ::= SEQUENCE {
+			a Beta,
+			b SEQUENCE {
+				b Beta OPTIONAL
+			}
+		}
+
+	Beta ::= SEQUENCE {
+			b Alpha OPTIONAL,
+			g Gamma OPTIONAL
+		}
+
+	Gamma ::= SEQUENCE {
+			o TwoThree,
+			a Alpha,	-- expected inline
+			b Beta		-- expected inline
+		}
+
+	-- This is a true superdependency.
+	OneTwo ::= SET { m12 TwoThree }
+	TwoThree ::= SET { m23 ThreeOne }
+	ThreeOne ::= SET { m31 OneTwo, g Gamma }
+
 END