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