Détection des 'Deprecated' imparfaite avec le Build And Analys

ClicCoolClicCool Membre
Un de mes soucis premier, quand je me remet à  coder pour faire évoluer une appli, c'est de détecter les 'Deprecated' pour à  la fois tirer partie des nouveautés conseillées et pour garantir la pérénité de mon code.

Le Build and Analyse sur ce coup m'a bien aidé en me pointant les appels à  des Deprecated Methods.

Mais, alors je croyais le ménage terminé depuis longtemps (plus de Warning) je me rends compte que j'utilise la Classe NSCalendarDate qui est toute entière deprecated ...  >:)

Y'a-t-il une option de build que j'ai manqué ?
J'ai pourtant [tt]GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS = YES[/tt]
Y'a rien pour les Deprecated Class ?  :-\\

Réponses

  • schlumschlum Membre
    16:09 modifié #2
    Une depracated class a toutes ses méthodes deprecated non ?  ???
  • ClicCoolClicCool Membre
    novembre 2009 modifié #3
    dans 1257420526:

    Une depracated class a toutes ses méthodes deprecated non ?  ???


    Ben oui !

    Mais ni le GCC 4.2 ni CLANG ne m'alerte pour ses méhodes  ???

    Par exemple, un
    (id) champValue = [NSCalendarDate dateWithString:champ calendarFormat:@"%e/%m/%Y"];
    

    ne génère aucun warning !
  • ClicCoolClicCool Membre
    16:09 modifié #4
    En fait, il semble que toutes les méthodes de NSCalendarDate soient reprises dans d'autres classes.
    C'est peut-être pour ça qu'il ne les détecte pas comme Deprecated (si il teste pas quelle Classe l'implémente ...)

    On en revient au point de départ, à  savoir qu'il manque alors une détection des Deprecated Classes ... non ?

    En tout cas ça va être un drôle de boulot pour moi que de passer en revue toutes les classes utilisées dans tous les recoins de mon code pour vérifier qu'aucune ne soient devenues Deprecated ...  :'(
  • ClicCoolClicCool Membre
    16:09 modifié #6
    dans 1257491788:


    Ah !

    Si tu le dis, je vais donc suivre ton lien.
    Merci :)

    Quelqu'un a remarqué une autre Classe qui échappe ainsi aux Warnings ?
    (Tant que j'y suis)
  • ClicCoolClicCool Membre
    16:09 modifié #7
    Est-ce que quelqu'un de rodé à  la déclaration de bug report pourrait jetter un oeil à  ma prose avant que je ne l'envoie SVP ?

    Je voudrais pas que mon report parte aux oubliettes par ce que mal rédigé.
    Problem report title: Xcode3.2-GCC4.2: Warning on Deprecated Methods dont warn about NSCalendarDate

    Product: Developer Tools

    Version/Build Number: Xcode 3.2 - GCC 4.2

    Classification: Serious Bug

    Is It Reproductible: Always

    Problem Details:


    Summary:
    MacOs X 10.6
    On XCode 3.2

    gcc:
    Using built-in specs.
    Target: i686-apple-darwin10
    Configured with: /var/tmp/gcc/gcc-5646~6/src/configure --disable-checking --enable-werror --prefix=/usr --mandir=/share/man --enable-languages=c,objc,c++,obj-c++ --program-transform-name=/^[cg][^.-]*$/s/$/-4.2/ --with-slibdir=/usr/lib --build=i686-apple-darwin10 --with-gxx-include-dir=/include/c++/4.2.1 --program-prefix=i686-apple-darwin10- --host=x86_64-apple-darwin10 --target=i686-apple-darwin10
    Thread model: posix
    gcc version 4.2.1 (Apple Inc. build 5646)

    gdb:
    GNU gdb 6.3.50-20050815 (Apple version gdb-1344) (Fri Jul  3 01:19:56 UTC 2009)

    In an ObjC2 projet for mac OS 10.6 with the flag GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS = YES, the use of the Class NSCalendarDate and its methodes is not detected as Deprecated.

    Steps to Reproduce:
    On any ObjC2 project using NSCalendarDate deprecated Classe with standard cocoa frameworks for MacOS 10.6.
    For instance with this line of code:
    (id) fieldValue = [NSCalendarDate dateWithString:field calendarFormat:@%e/%m/%Y];
    With the flag:
    GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS = YES,
    or the corresponding option selected on Projet Build Settings
    With a "Build and Analyse"

    Expected Results:
    Should return a Wno-deprecated Warning on build results

    Actual Results:
    No Warning

    Workaround:
    No Workaround founded

    Regression/Isolation:
    I did not check


    Sincerily yours



    Après le mieux est de doubler tout ça sur Radar aussi ? Faut s'y enregistrer pour ça ?
  • zoczoc Membre
    16:09 modifié #8
    Ca me parait bien... Pour OpenRadar, rien ne t'y oblige. il faut effectivement s'enregistrer avant.
  • ClicCoolClicCool Membre
    16:09 modifié #9
    Merci Zoc :)

    J'envoie tout ça de suite avant de partir en W.E.  :brule:
  • ClicCoolClicCool Membre
    16:09 modifié #10
    Rectification,

    J'ai bien envoyé le rapport de Bug à  Apple
    MAIS pas à  Radar du fait qu'ils révèlent mes identifiants en clairs sur leur site.

    Faudrait que je crée une boite gmail sous mon pseudo pour poster sur Radar mais pas le temps maintenant ;)
  • AliGatorAliGator Membre, Modérateur
    16:09 modifié #11
    Moi j'aurais juste séparé tout le paragraphe indiquant la config du paragraphe [Summary] pour pas le polluer, mais sinon ça me parait très bien comme rapport de bug ;D
    (Bon j'aurais mis "despite the flag GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS" au lieu de "with", mais ça c'est parce que je suis puriste et perfectionniste :)

    Pour OpenRadar, c'est juste un outil pour permettre de rendre public tes rapports de bugs, pour que les autres utilisateurs qui voudraient voir si un bug a déjà  été soumis par qqun ou consulter les bugs soumis par les utilisateurs, parce qu'avec bugreport.apple.com on ne peut voir que nos propres remontées de bugs. Mais c'est juste basé sur le volontariat de publier tes rapports de bugs aussi à  la communauté et pas qu'à  Apple, rien ne t'y oblige ; je ne suis même pas sûr que OpenRadar soit consulté par les gars d'Apple d'ailleurs...
  • ClicCoolClicCool Membre
    16:09 modifié #12
    Tout d'accord avec toi,
    Malheureusement j'ai soumis le bug quelques minutes avant ton post.
  • ClicCoolClicCool Membre
    16:09 modifié #13
    Je viens de recevoir la réponse d'Apple.

    Le bug est connu (zont mit l'temps pour s'en rendre compte ...)

    This is a follow up to Bug ID# 7371586.  After further investigation it has been determined that this is a known issue, which is currently being investigated by engineering. This issue has been filed in our bug database under the original Bug ID# 5650344
Connectez-vous ou Inscrivez-vous pour répondre.