AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Compiler-Direktive {$HINTS OFF} funktioniert nicht
Thema durchsuchen
Ansicht
Themen-Optionen

Compiler-Direktive {$HINTS OFF} funktioniert nicht

Ein Thema von s.h.a.r.k · begonnen am 20. Mai 2011 · letzter Beitrag vom 21. Mai 2011
Antwort Antwort
Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#1

Compiler-Direktive {$HINTS OFF} funktioniert nicht

  Alt 20. Mai 2011, 16:40
Ich habe ein wenig die Suche und Google bemüht, aber keinen Beitrag gefunden, der mir evtl. weiterhelfen könnte. Ich habe eine Konsolenanwendung geschrieben, die einen kleinen Benchmark ausführt. Dabei habe ich dann folgenden Code:
Delphi-Quellcode:
      {$HINTS OFF}
      for i := 0 to TEST_LOOPS do
        RttiProperty := RttiType.GetProperty('One');
      {$HINTS ON}
Die Variable RttiProperty wird danach nicht mehr verwendet. Ja, ich weiß, sollte eigentlich nicht sein, aber ich will die Zuweisung aber trotzdem. Nun erscheint pro Zuweisung an die Variable RttiProperty die Meldung:
Code:
[DCC Hinweis] Project1.dpr(221): H2077 Auf 'RttiProperty' zugewiesener Wert wird niemals benutzt
Ich würde diese Meldung ja verstehen, wenn denn {$HINTS OFF} nicht davor stehen würde, aber das ist nun mal der Fall. Warum spuckt der Compiler mir hier trotzdem einen Hinweis aus? Ich habe auch schon versucht es globaler zu definieren und nur einmal, kein Erfolg. An den Compiler-Einstellungen habe ich nichts geändert, ist alles Standard!
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.166 Beiträge
 
Delphi 12 Athens
 
#2

AW: Compiler-Direktive {$HINTS OFF} funktioniert nicht

  Alt 20. Mai 2011, 16:52
hab jetzt zwar keine direkte Lösung, aber...

Wenn es eh nicht benutzt wird, warum dann nicht gleich so?
Delphi-Quellcode:
for i := 0 to TEST_LOOPS do
  RttiType.GetProperty('One');
Sollte für einen Benchmark keinen Unterschied ausmachen, da Delphi hier eine interne Variable nutzt.

oder eben
Delphi-Quellcode:
for i := 0 to TEST_LOOPS do
   RttiProperty := RttiType.GetProperty('One');
 RttiProperty := nil;
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#3

AW: Compiler-Direktive {$HINTS OFF} funktioniert nicht

  Alt 20. Mai 2011, 16:55
Jo, klar. Das hatte ich mir dann auch gedacht Aber seltsam ist es dann immer noch, dass diese Direktive total ignoriert wird.
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.166 Beiträge
 
Delphi 12 Athens
 
#4

AW: Compiler-Direktive {$HINTS OFF} funktioniert nicht

  Alt 20. Mai 2011, 18:31
Es sollte auch noch irgendeinen anderen Compilerschalter geben, welcher geziehlt diese Meldungen deaktiviert ... vielleicht hat man ja vergessen das globale Hint auch mit abzufragen.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
USchuster

Registriert seit: 12. Sep 2010
Ort: L.E.
120 Beiträge
 
Delphi XE3 Professional
 
#5

AW: Compiler-Direktive {$HINTS OFF} funktioniert nicht

  Alt 20. Mai 2011, 20:51
Davon das {$HINTS OFF} nicht funktioniert kann überhaupt keine Rede sein. Die Überwachung der Benutzung von Variablen ist ein Feature des Compiler Backends und ich würde behaupten das dieses nur zuverlässig für die komplette Methode deaktiviert werden kann. Im folgenden Beispiel wird der Hint für Foo nicht angezeigt, wenn bei #1 {$HINTS ON} deaktiviert wird. Bei anderen Hinweisen funktioniert das Deaktivieren auch auf Zeilenebene - für Prozedur Test2 wird der Hint durch {$HINTS OFF}/{$HINTS ON} nur zwei anstatt drei Mal ausgegeben. Für Hints gibt es im Gegensatz zu Warnungen keine Möglichkeit diese einzeln an-/auszuschalten also kann es nicht an irgendwelchen Optionen liegen.

Delphi-Quellcode:
program Hints;

{$APPTYPE CONSOLE}

procedure Test;
var
  I, Foo: Integer;
begin
  {$HINTS OFF}
  for I := 0 to 1 do
    Foo := 1;
  {$HINTS ON}//#1
end;
{$HINTS ON}//#2

procedure Test2;
var
  P: Pointer;
begin
  P := nil;
  Finalize(P);
  {$HINTS OFF}
  Finalize(P);
  {$HINTS ON}
  Finalize(P);
end;

begin
end.
  Mit Zitat antworten Zitat
Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#6

AW: Compiler-Direktive {$HINTS OFF} funktioniert nicht

  Alt 21. Mai 2011, 14:31
Das Problem ist, dass sowas nicht wirklich in der Doku steht.
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#7

AW: Compiler-Direktive {$HINTS OFF} funktioniert nicht

  Alt 21. Mai 2011, 16:04
Ich hätte noch einen metaphysischen Erklärungsansatz: "Der Typ da an der Tastatur meint wohl, er könnte mich zum Schweigen bringen. Aber ich lasse mich nicht unterdrücken und sage meine Meinung, ob er will oder nicht. Compiler aller Länder vereinigt euch!"
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#8

AW: Compiler-Direktive {$HINTS OFF} funktioniert nicht

  Alt 21. Mai 2011, 16:16
Viva la revolución!
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:51 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz