Well, it's not a problem to implement such diagnostics, but I still see some 
disadvantages.
Here is my random thoughts:
NSEdgeInsets (and corresponding NSValue factory method) available for both iOS 
and OS X triples starting from 8.0 and 10.10 respectively. To get this error 
(or warning, doesn't matter) user need to compile his code with an earlier 
version of SDK, which means that NSEdgeInsets and corresponding method are not 
available there and compilation will fail earlier, it will be even impossible 
to create a variable of type NSEdgeInsets.
On the other hand I know a few projects/developers who is doing some backports 
by defining the same interface for the earlier SDKs by introducing the same 
classes and/or by extending existing ones via categories (personally I did this 
for NSArray/NSDictionary to add support of subscripting).
In case of these restrictions (errors/warnings) we'll add the barrier, which 
might provide more frustration than safety.

Another one disadvantage is that the code will be even more tightly coupled 
with NSFoundation and won't be as generic as it is right now, because of code 
like this:

  if (type == NSEdgeInsets) {
    if (triple.os == iOS && triple.version < 8.0) {
      emit_warning("unavailable on iOS");
    }
    if (triple.os == OSX && triple.version < 10.10) {
      emit_warning("unavailable on osx");
    }
  }

But, yes, it's just my opinion and the last word is yours :)
-- 
AlexDenisov
Software Engineer, https://github.com/AlexDenisov

On 9 Jan 2015 at 21:04:51, jahanian ([email protected]) wrote:


On Jan 9, 2015, at 11:41 AM, AlexDenisov <[email protected]> wrote:

We may not support boxing of any pointer types after all 
(as the underlying API does not manage the collected object).
So, final patch may need to address that.
No problem. To be honest, I don’t see real benefits of having such ability, it 
was a silly decision to include this functionality (motivated by ‘because I 
can’).

Please provide more tests 
for NSEdgeInsets and specifically, see that diagnostics come out when 
deployment target does not support it.
What kind of tests should I add? It has tests for Sema and CodeGen, did I 
forget/missed something?



Test should show that if some one uses auto boxing for NSEdgeInsets in 
deployment targets that do not support it, a proper warning is
being issued. You may have this test already but I could not locate it.
- Fariborz


- Fariborz

_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to