Mercurial > hg > CbC > CbC_llvm
view clang/test/SemaObjC/property-and-class-extension.m @ 207:2e18cbf3894f
LLVM12
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Tue, 08 Jun 2021 06:07:14 +0900 |
parents | 1d019706d866 |
children |
line wrap: on
line source
// RUN: %clang_cc1 -fsyntax-only -verify %s /** When processing @synthesize, treat ivars in a class extension the same as ivars in the class @interface, and treat ivars in a superclass extension the same as ivars in the superclass @interface. In particular, when searching for an ivar to back an @synthesize, do look at ivars in the class's own class extension but ignore any ivars in superclass class extensions. */ @interface Super { int ISA; } @end @interface Super() { int Property; // expected-note {{previously declared 'Property' here}} } @end @interface SomeClass : Super { int interfaceIvar1; int interfaceIvar2; } @property int Property; @property int Property1; @end @interface SomeClass () { int Property1; } @end @implementation SomeClass @synthesize Property; // expected-error {{property 'Property' attempting to use instance variable 'Property' declared in super class 'Super'}} @synthesize Property1; // OK @end