Commit 2e226581 by Ovidiu Predescu

Document the @compatibility_alias compiler directive (description from

Nicola Pero <n.pero@mi.flashnet.it>).

From-SVN: r40125
parent 25ad894f
...@@ -21,6 +21,7 @@ comments about this document to Ovidiu Predescu ...@@ -21,6 +21,7 @@ comments about this document to Ovidiu Predescu
* Type encoding:: * Type encoding::
* Garbage Collection:: * Garbage Collection::
* Constant string objects:: * Constant string objects::
* compatibility_alias::
@end menu @end menu
@node Executing code before main, Type encoding, Top, Top @node Executing code before main, Type encoding, Top, Top
...@@ -386,7 +387,7 @@ specifier to the string type description of the instance variable named ...@@ -386,7 +387,7 @@ specifier to the string type description of the instance variable named
as argument. as argument.
@c ========================================================================= @c =========================================================================
@node Constant string objects, , Garbage Collection, Top @node Constant string objects, compatibility_alias , Garbage Collection, Top
@comment node-name, next, previous, up @comment node-name, next, previous, up
@section Constant string objects @section Constant string objects
...@@ -430,5 +431,34 @@ as argument to this option. It is possible to have multiple compilation ...@@ -430,5 +431,34 @@ as argument to this option. It is possible to have multiple compilation
units referring to different constant string classes, neither the units referring to different constant string classes, neither the
compiler nor the linker impose any restrictions in doing this. compiler nor the linker impose any restrictions in doing this.
@bye @c =========================================================================
@node compatibility_alias, , Constant string objects, Top
@comment node-name, next, previous, up
@section compatibility_alias
This is a feature of the Objective-C compiler rather than of the
runtime, anyway since it is documented nowhere and its existence was
forgotten, we are documenting it here.
The keyword @code{@@compatibility_alias} allows you to define a class name
as equivalent to another class name. For example:
@example
@@compatibility_alias WOApplication GSWApplication;
@end example
tells the compiler that each time it encounters @code{WOApplication} as
a class name, it should replace it with @code{GSWApplication} (that is,
@code{WOApplication} is just an alias for @code{GSWApplication}).
There are some constraints on how this can be used -
@itemize @bullet
@item @code{WOApplication} (the alias) must not be an existing class;
@item @code{GSWApplication} (the real class) must be an existing class.
@end itemize
@bye
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment