-
Key: CORBA26-77
-
Legacy Issue Number: 4577
-
Status: closed
-
Source: Humboldt-Universitaet ( Martin von Loewis)
-
Summary:
After reading the definition of the import declaration, it is not at
all clear what its effect is.Suppose the "well-known set of IDL specifications" consists of
module A {
{long a;}
module B {
interface C {
struct S;
};
};
};Now consider the import statement
import A::B;
According to the draft, "Names that occur in IDL declarations within
the importing specification may be resolved to definitions in imported
scopes." What is a "Name" in this context? Is it an <identifier>, or
is it a "<scoped_name>"?It is unclear whether in this context, the definition
interface D : C {};
would be correct or not. The spec may be interpreted that name "C"
resolves to ::A::B::C, i.e. that the name "C" is appended to the
imported scopes, forming a fully-scoped name. If that is the intended
meaning, the text should explain how to deal with conflicts.Alternatively, given the text "Imported IDL name scopes exist in the
same space as names defined in subsequent declarations in the
importing specification." would suggest thatinterface D : B::C {};
is well-formed: "B" would be the name of the imported scope, so it
exists in the same space "D", and can thus be used for qualifications.Furthermore, the text could be understand to mean that
interface D : ::A::B::C {};
is allowed. The "definition in the imported scope" has the name
"A::B::C", so this is the name to be used in the importing
specification. -
Reported: CORBA 2.5 — Mon, 17 Sep 2001 04:00 GMT
-
Disposition: Resolved — CORBA 2.6.1
-
Disposition Summary:
see below
-
Updated: Fri, 6 Mar 2015 20:58 GMT