digitalmars.D - TypeInfo class conflict
- Eric Desbiens (9/9) May 25 2004 Hi,
- Stephan Wienczny (4/18) May 25 2004 You can call your class TypeInfo. When referring to it you will have to
- Eric Desbiens (21/41) May 25 2004 I cannot rename the class because I am trying to implement XML DOM Level...
- Stephan Wienczny (2/51) May 25 2004
- Eric Desbiens (3/57) May 25 2004 You are right it compile. It is when it try to do the linking that it ch...
- Walter (3/3) May 25 2004 I intend to revamp the TypeInfo stuff, the way it is now is too much of ...
- Ben Hinkle (10/13) May 25 2004 To quote from
- Eric Desbiens (9/28) May 25 2004 Thanks everybody!
Hi, I need to create a class name TypeInfo in my D project. Unfortunately, this class exist in the phobos library (define in objectd.d) and I cannot compile it because it gives an error of multiple definition. How can I declare the TypeInfo class in my module so it will not conflict with the one in object.d ? I cannot change the name of the class. Thanks! Eric
May 25 2004
You can call your class TypeInfo. When referring to it you will have to use <YourModuleName>.TypeInfo for your class. Why can't you change the name of your class? Eric Desbiens wrote:Hi, I need to create a class name TypeInfo in my D project. Unfortunately, this class exist in the phobos library (define in objectd.d) and I cannot compile it because it gives an error of multiple definition. How can I declare the TypeInfo class in my module so it will not conflict with the one in object.d ? I cannot change the name of the class. Thanks! Eric
May 25 2004
I cannot rename the class because I am trying to implement XML DOM Level 3 specification to learn D with a real world example. The spec need to have a class called TypeInfo, if I rename the class it break the spec. I know that I could access it with using <YourModuleName>.TypeInfo, that's fine. But my code will not compile at all if I put a class name TypeInfo in it. You can try it, just put class TypeInfo{} in a .d file and try compilling. It gives me this error message : libphobos.a(object.o)(.rodata+0xb8): multiple definition of `_init_8TypeInfo' bug.o(.rodata+0x0): first defined here libphobos.a(object.o)(.data+0x78): multiple definition of `_Class_8TypeInfo' bug.o(.data+0x0): first defined here libphobos.a(object.o)(.rodata+0xcc): multiple definition of `_vtbl_8TypeInfo' bug.o(.rodata+0x14): first defined here collect2: ld returned 1 exit status --- errorlevel 256 I am using dmd 0.90 for Linux Thanks! Eric Stephan Wienczny wrote:You can call your class TypeInfo. When referring to it you will have to use <YourModuleName>.TypeInfo for your class. Why can't you change the name of your class? Eric Desbiens wrote:Hi, I need to create a class name TypeInfo in my D project. Unfortunately, this class exist in the phobos library (define in objectd.d) and I cannot compile it because it gives an error of multiple definition. How can I declare the TypeInfo class in my module so it will not conflict with the one in object.d ? I cannot change the name of the class. Thanks! Eric
May 25 2004
I tested it. Maybe I should not have used -c ... Eric Desbiens wrote:I cannot rename the class because I am trying to implement XML DOM Level 3 specification to learn D with a real world example. The spec need to have a class called TypeInfo, if I rename the class it break the spec. I know that I could access it with using <YourModuleName>.TypeInfo, that's fine. But my code will not compile at all if I put a class name TypeInfo in it. You can try it, just put class TypeInfo{} in a .d file and try compilling. It gives me this error message : libphobos.a(object.o)(.rodata+0xb8): multiple definition of `_init_8TypeInfo' bug.o(.rodata+0x0): first defined here libphobos.a(object.o)(.data+0x78): multiple definition of `_Class_8TypeInfo' bug.o(.data+0x0): first defined here libphobos.a(object.o)(.rodata+0xcc): multiple definition of `_vtbl_8TypeInfo' bug.o(.rodata+0x14): first defined here collect2: ld returned 1 exit status --- errorlevel 256 I am using dmd 0.90 for Linux Thanks! Eric Stephan Wienczny wrote:You can call your class TypeInfo. When referring to it you will have to use <YourModuleName>.TypeInfo for your class. Why can't you change the name of your class? Eric Desbiens wrote:Hi, I need to create a class name TypeInfo in my D project. Unfortunately, this class exist in the phobos library (define in objectd.d) and I cannot compile it because it gives an error of multiple definition. How can I declare the TypeInfo class in my module so it will not conflict with the one in object.d ? I cannot change the name of the class. Thanks! Eric
May 25 2004
You are right it compile. It is when it try to do the linking that it choke. Any idea why ? Stephan Wienczny wrote:I tested it. Maybe I should not have used -c ... Eric Desbiens wrote:I cannot rename the class because I am trying to implement XML DOM Level 3 specification to learn D with a real world example. The spec need to have a class called TypeInfo, if I rename the class it break the spec. I know that I could access it with using <YourModuleName>.TypeInfo, that's fine. But my code will not compile at all if I put a class name TypeInfo in it. You can try it, just put class TypeInfo{} in a .d file and try compilling. It gives me this error message : libphobos.a(object.o)(.rodata+0xb8): multiple definition of `_init_8TypeInfo' bug.o(.rodata+0x0): first defined here libphobos.a(object.o)(.data+0x78): multiple definition of `_Class_8TypeInfo' bug.o(.data+0x0): first defined here libphobos.a(object.o)(.rodata+0xcc): multiple definition of `_vtbl_8TypeInfo' bug.o(.rodata+0x14): first defined here collect2: ld returned 1 exit status --- errorlevel 256 I am using dmd 0.90 for Linux Thanks! Eric Stephan Wienczny wrote:You can call your class TypeInfo. When referring to it you will have to use <YourModuleName>.TypeInfo for your class. Why can't you change the name of your class? Eric Desbiens wrote:Hi, I need to create a class name TypeInfo in my D project. Unfortunately, this class exist in the phobos library (define in objectd.d) and I cannot compile it because it gives an error of multiple definition. How can I declare the TypeInfo class in my module so it will not conflict with the one in object.d ? I cannot change the name of the class. Thanks! Eric
May 25 2004
I intend to revamp the TypeInfo stuff, the way it is now is too much of a kludge. Unfortunately, you're going to need to change the name of your TypeInfo to get it to work.
May 25 2004
"Eric Desbiens" <olace99 hormail.com> wrote in message news:c8vv1b$1j4o$1 digitaldaemon.com...I cannot rename the class because I am trying to implement XML DOM Level 3 specification to learn D with a real world example. The spec need to have a class called TypeInfo, if I rename the class it break the spec.To quote from http://www.w3.org/TR/DOM-Level-3-Core/introduction.html#ID-Conformance "DOM implementations in languages other than Java or ECMAScript may choose bindings that are appropriate and natural for their language and run time environment. For example, some systems may need to create a Document3 class which inherits from a Document class and contains the new methods and attributes. " I suggest using DOMTypeInfo instead of TypeInfo.
May 25 2004
Thanks everybody! I'll use DOMTypeInfo as suggested for now until Walter rework the TypeInfo stuff and hopefully I will be able to use TypeInfo class name later. It would make more sense to use the same name and specifying the module like dom.TypeInfo than using a different name from the spec. But for now it will do. Have a nice day everybody! Eric Ben Hinkle wrote:"Eric Desbiens" <olace99 hormail.com> wrote in message news:c8vv1b$1j4o$1 digitaldaemon.com...I cannot rename the class because I am trying to implement XML DOM Level 3 specification to learn D with a real world example. The spec need to have a class called TypeInfo, if I rename the class it break the spec.To quote from http://www.w3.org/TR/DOM-Level-3-Core/introduction.html#ID-Conformance "DOM implementations in languages other than Java or ECMAScript may choose bindings that are appropriate and natural for their language and run time environment. For example, some systems may need to create a Document3 class which inherits from a Document class and contains the new methods and attributes. " I suggest using DOMTypeInfo instead of TypeInfo.
May 25 2004