Delphi-PRAXiS
Seite 7 von 7   « Erste     567   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Klatsch und Tratsch (https://www.delphipraxis.net/34-klatsch-und-tratsch/)
-   -   Neuer FixInsight ist da! (https://www.delphipraxis.net/183874-neuer-fixinsight-ist-da.html)

TiGü 28. Aug 2015 13:17

AW: Neuer FixInsight ist da!
 
Seit vier Tagen gibt's die Version FixInsight 2015.08
http://sourceoddity.com/fixinsight/download.html

Roman Yankovsky 4. Okt 2015 18:30

AW: Neuer FixInsight ist da!
 
Finally FixInsight 2015.10 is able to suppress a warning for a piece of code (that was discussed on a previous page). It works not for a scope, but for a particular line though.

Example:
Delphi-Quellcode:
      procedure RestartTimer;
      begin
        FTimer.Enabled := False;
        FTimer.Enabled := True; //FI:W508 - this warning will be ignored.
      end;
So it's just a "FI:<RULENUMBER>" comment.

Der schöne Günther 4. Okt 2015 20:53

AW: Neuer FixInsight ist da!
 
Neat! That is WAY better than using IFDEF blocks :thumb:

Roman Yankovsky 2. Dez 2015 10:03

AW: Neuer FixInsight ist da!
 
I would like to announce Christmas bundle. FixInsight and Parnassus Navigator go together.

http://sourceoddity.com/blog/2015/12...sus-navigator/

Der schöne Günther 3. Mär 2016 10:14

AW: Neuer FixInsight ist da!
 
I have updated from 2015.10 to 2015.11 and would like to report a few things:

Fatal Parse error
caused by the following code:
Delphi-Quellcode:
function TSomeClass.calcSomething(const someCount: Integer): Integer;
begin
   Result := 'REG11111;2;33333333;44444444;55555555'.Length * someCount; // <-- This line
   [...]
end;
This did not cause a fatal error in 2015.10

C110: Getter or setter name is different from property declaration
The following code causes a C110. I guess it's because of the "&":
Delphi-Quellcode:
      public property
         &Register[index: TRegisterIndex]: TRegisterValue
            read getRegister
            write setRegister;
            default;

W521 Return value of function might be undefined
The following code did not cause this warning in 2015.10:

Delphi-Quellcode:
type TSomeEnum = (uno, dos, tres);

function TSomeClass.getSomeValue(): TSomeEnum;
begin
   if someCondition() then
      Exit(TSomeEnum.uno)
   else
      if someOtherCondition() then
         Exit(TSomeEnum.dos)
      else
         Exit(TSomeEnum.tres);
end;
O802 ResourceString is declared but never used
That's an excellent idea! :thumb:

W528: Variable not used in for-loop
This is strange one. The following code produces a W528:

Delphi-Quellcode:
unit Unit1;

interface uses System.Generics.Collections, System.SysUtils;

type

   TPair = System.Generics.Collections.TPair<Single, Single>;
   TPairs = TArray<TPair>;

   TPairsExporter = class
      public class function DataAsString(const pairs: TPairs): String;
   end;

implementation uses System.Classes;

class function TPairsExporter.DataAsString(const pairs: TPairs): String;
var
   stringBuilder:   TStringBuilder;
   pair:          TPair;
begin
   stringBuilder := TStringBuilder.Create();
   try
      for pair in pairs do
         stringBuilder.Append(pair.Key).Append(sLineBreak);

      Result := stringBuilder.ToString();
   finally
      stringBuilder.Destroy();
   end;
end;

end.
.

If you remove the ".Append(sLineBreak)", the warning is gone. Oh, and please ignore the fact that using a for..in with records was not the best idea :oops:

Stevie 3. Mär 2016 12:22

AW: Neuer FixInsight ist da!
 
Trag die Sachen doch einfach in den offiziellen bugtracker ein.

Der schöne Günther 21. Apr 2016 17:29

AW: Neuer FixInsight ist da!
 
Consider the following:

Delphi-Quellcode:
   IFirstInterface = interface
      procedure doStuff();
   end;

   ISecondInterface = interface
      procedure doStuff();
   end;

   TImplementation = class(TInterfacedObject, IFirstInterface, ISecondInterface)
      procedure doStuff();
   end;
Compiles and works fine (unlike other languages). But probably not what you want. I know about method resolution clauses and how to get around it. But I would like to get a warning that this does not look right at all.

Opinions?

jaenicke 21. Apr 2016 18:47

AW: Neuer FixInsight ist da!
 
Was findest du daran denn falsch? Auf diese Weise stellen wir z.B. unterschiedliche Interfaces für Skripte und für DLLs oder interne Zwecke zur Verfügung, die durch die gleiche Klasse implementiert werden. Und auch in verschiedenen Versionen eines Interfaces kann es ja die gleichen Methoden geben. Es ist ja nicht immer alles neu.

Auch in der Windows API findest du z.B. mehrere Versionen mancher Interfaces, die so logischerweise auch gleiche Methoden enthalten können.

Das ist ja auch genau der Sinn von Interfaces. Welche Klasse diese implementiert ist egal, und damit auch was die Klasse sonst noch macht.

Uwe Raabe 22. Apr 2016 07:25

AW: Neuer FixInsight ist da!
 
I agree with Sebastian: This is a perfect example of one of those many advantages that Delphi has compared to other languages. I for myself use this technique quite often.

Roman Yankovsky 24. Apr 2016 21:36

AW: Neuer FixInsight ist da!
 
Der schöne Günther, thanks, all these false positives are fixed in version 2016.04 :)


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:16 Uhr.
Seite 7 von 7   « Erste     567   

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