]> git.buserror.net Git - polintos/scott/priv.git/blob - idlcomp/FIXED-BUGS
Initial checkin from Perforce.
[polintos/scott/priv.git] / idlcomp / FIXED-BUGS
1 Parameter syntax is ambiguous; does foo(out .bar baz) have an out
2 parameter of type .bar, or an in parameter of type out.bar?  Perhaps
3 the leading "." should be changed to ".." or something...  
4  - Leading "." is now "..".  This has the side-effect of foo..bar
5    being tokenized as foo ..bar, rather than an error as it was
6    previously.
7  - Attributes now go at the end, rather than the beginning.  Perhaps
8    the global prefix can go back to being a single dot, but I'm not
9    going to look into it right now.
10
11 Empty bitfields cause parse errors.
12
13 Uncaught InvalidArgument exception when namespaces are implicitly
14 declared inside a struct (namespace qualification should not be
15 allowed).
16
17 Anonymous enumerations cause parse errors.
18
19 Parameter type names currently cannot be namespace-qualified.
20
21 Parameter output does not currently contain type information.
22 compiledtypes.h says that .self is CompiledParam and type is
23 CompiledAlias, but the code does not generate a directory.  Instead
24 of doing that, I'll stick a CompiledBasicType and a CompiledAlias at
25 the end of CompliedParam.
26
27 The current array-of-strings representation is kind of stupid;
28 instead of a list of file offsets, switch to counted strings (such as
29 is used now in CompiledAlias), and let the reader iterate over them.
30
31 Alias should work on more than just types.
32
33 A lookup can succeed in pass 1 that would yield a different result in
34 pass 2.  For instance:
35
36         struct a {
37         };
38
39         struct b {
40                 a c;
41                 typedef int a;
42         };
43
44 Similarly, it's possible for two passes to be insufficient.
45 This causes an internal error:
46
47         typedef d b;
48
49         struct d {
50                 int f;
51         };
52
53         struct a {
54                 b c;
55         };
56
57 Alias names get recorded in the type field of Datums (and other
58 places) rather than what the alias points to.
59
60 Constants are currently not allowed at namespace scope.
61
62 Bool constants cannot be initialized.
63