<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="/rss.xsl.xml"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
    <title>Changes in objc_parameterized_classes.m</title>
    <description></description>
    <language>en</language>
    <copyright>Copyright 2015</copyright>
    <generator>Java</generator><item>
        <title>1ac1b63c - Implement variance for Objective-C type parameters.</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/clang/test/PCH/objc_parameterized_classes.m#1ac1b63c</link>
        <description>Implement variance for Objective-C type parameters.Introduce co- and contra-variance for Objective-C type parameters,which allows us to express that (for example) an NSArray is covariantin its type parameter. This means that NSArray&lt;NSMutableString *&gt; * isa subtype of NSArray&lt;NSString *&gt; *, which is expected of the immutableFoundation collections.Type parameters can be annotated with __covariant or __contravariantto make them co- or contra-variant, respectively. This feature can bedetected by __has_feature(objc_generics_variance). Implementsrdar://problem/20217490.llvm-svn: 241549

            List of files:
            /llvm-project-15.0.7/clang/test/PCH/objc_parameterized_classes.m</description>
        <pubDate>Tue, 07 Jul 2015 03:58:54 +0000</pubDate>
        <dc:creator>Douglas Gregor &lt;dgregor@apple.com&gt;</dc:creator>
    </item>
<item>
        <title>e83b9564 - Substitute type arguments into uses of Objective-C interface members.</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/clang/test/PCH/objc_parameterized_classes.m#e83b9564</link>
        <description>Substitute type arguments into uses of Objective-C interface members.When messaging a method that was defined in an Objective-C class (orcategory or extension thereof) that has type parameters, substitutethe type arguments for those type parameters. Similarly, substituteinto property accesses, instance variables, and other references.This includes general infrastructure for substituting the typearguments associated with an ObjCObject(Pointer)Type into a typereferenced within a particular context, handling all of thesubstitutions required to deal with (e.g.) inheritance involvingparameterized classes. In cases where no type arguments are available(e.g., because we&apos;re messaging via some unspecialized type, id, etc.),we substitute in the type bounds for the type parameters instead.Example:  @interface NSSet&lt;T : id&lt;NSCopying&gt;&gt; : NSObject &lt;NSCopying&gt;  - (T)firstObject;  @end  void f(NSSet&lt;NSString *&gt; *stringSet, NSSet *anySet) {    [stringSet firstObject]; // produces NSString*    [anySet firstObject]; // produces id&lt;NSCopying&gt; (the bound)  }When substituting for the type parameters given an unspecializedcontext (i.e., no specific type arguments were given), substitutingthe type bounds unconditionally produces type signatures that are toostrong compared to the pre-generics signatures. Instead, use thefollowing rule:  - In covariant positions, such as method return types, replace type    parameters with &#8220;id&#8221; or &#8220;Class&#8221; (the latter only when the type    parameter bound is &#8220;Class&#8221; or qualified class, e.g,    &#8220;Class&lt;NSCopying&gt;&#8221;)  - In other positions (e.g., parameter types), replace type    parameters with their type bounds.  - When a specialized Objective-C object or object pointer type    contains a type parameter in its type arguments (e.g.,    NSArray&lt;T&gt;*, but not NSArray&lt;NSString *&gt; *), replace the entire    object/object pointer type with its unspecialized version (e.g.,    NSArray *).llvm-svn: 241543

            List of files:
            /llvm-project-15.0.7/clang/test/PCH/objc_parameterized_classes.m</description>
        <pubDate>Tue, 07 Jul 2015 03:57:53 +0000</pubDate>
        <dc:creator>Douglas Gregor &lt;dgregor@apple.com&gt;</dc:creator>
    </item>
<item>
        <title>e9d95f1e - Handle Objective-C type arguments.</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/clang/test/PCH/objc_parameterized_classes.m#e9d95f1e</link>
        <description>Handle Objective-C type arguments.Objective-C type arguments can be provided in angle brackets followingan Objective-C interface type. Syntactically, this is the sameposition as one would provide protocol qualifiers (e.g.,id&lt;NSCopying&gt;), so parse both together and let Sema sort out theambiguous cases. This applies both when parsing types and when parsingthe superclass of an Objective-C class, which can now be a specializedtype (e.g., NSMutableArray&lt;T&gt; inherits from NSArray&lt;T&gt;).Check Objective-C type arguments against the type parameters of thecorresponding class. Verify the length of the type argument list andthat each type argument satisfies the corresponding bound.Specializations of parameterized Objective-C classes are representedin the type system as distinct types. Both specialized types (e.g.,NSArray&lt;NSString *&gt; *) and unspecialized types (NSArray *) arerepresented, separately.llvm-svn: 241542

            List of files:
            /llvm-project-15.0.7/clang/test/PCH/objc_parameterized_classes.m</description>
        <pubDate>Tue, 07 Jul 2015 03:57:35 +0000</pubDate>
        <dc:creator>Douglas Gregor &lt;dgregor@apple.com&gt;</dc:creator>
    </item>
<item>
        <title>85f3f951 - Parsing, semantic analysis, and AST for Objective-C type parameters.</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/clang/test/PCH/objc_parameterized_classes.m#85f3f951</link>
        <description>Parsing, semantic analysis, and AST for Objective-C type parameters.Produce type parameter declarations for Objective-C type parameters,and attach lists of type parameters to Objective-C classes,categories, forward declarations, and extensions asappropriate. Perform semantic analysis of type bounds for typeparameters, both in isolation and across classes/categories/extensionsto ensure consistency.Also handle (de-)serialization of Objective-C type parameter lists,along with sundry other things one must do to add a new declaration toClang.Note that Objective-C type parameters are typedef name declarations,like typedefs and C++11 type aliases, in support of type erasure.Part of rdar://problem/6294649.llvm-svn: 241541

            List of files:
            /llvm-project-15.0.7/clang/test/PCH/objc_parameterized_classes.m</description>
        <pubDate>Tue, 07 Jul 2015 03:57:15 +0000</pubDate>
        <dc:creator>Douglas Gregor &lt;dgregor@apple.com&gt;</dc:creator>
    </item>
</channel>
</rss>
