Einzelnen Beitrag anzeigen

backdraft

Registriert seit: 19. Apr 2005
Ort: Hückeswagen
335 Beiträge
 
Delphi 11 Alexandria
 
#1

Compiler Fehler NC338 bei Generics

  Alt 16. Feb 2023, 14:17
Hallo zusammen,

gibt es eigentlich irgendwas, was man gegen den internen Compilerfehler NC338 machen kann?
Er kommt bei mir ständig, wenn ich inline Variablen verwende, ohne den Typ zu definieren.
Wann genau es passiert kann ich gar nicht sagen, es hilft auf jeden Fall immer, wenn ich den Typ dann definiere:
Code:
var x: TMyRecord<Boolean> := MyFunc();
Es hat auch immer was mit Records und Generics zu tun, die als Rückgabewert genutzt werden.

Manchmal hilft es schon, wenn ich die Unit einbinde, oft aber nicht.
Meistens klappt der Code auch erstmal lange, irgendwann geht es nicht mehr und ich muss an einigen Stellen (aber nicht an allen) den Variablentyp definieren.
Ein Muster hab ich noch nicht erkannt.
Es scheint aber zu gehen, wenn ich den Rückgabewert schonmal irgendwo "über" der Quellcode Zeile definiert habe. Muss aber nicht in der Funktion sein.
Mit kommt es so vor, als wenn er den Typ einfach noch nicht kennt. Ist aber oft nur bei komplexeren Rückgabetypen so. Einfache gehen in der Regel.

Mittlerweile kann ich den Code auch oft in Delphi kompilieren, aber dann nicht mit MSBuild über FinalBuilder.
Gleiches Problem kommt aber, wenn ich in den Delphi Optionen aktiviere, dass er mit externem MSBuild arbeiten soll. Dann schägt es genauso fehlt wie mit Finalbuilder.
Somit scheint Delphi es manchmal besser zu machen.

Delphi selbst meldet immer: "F2084 Interner Fehler: NC338".

Muss ich hierfür ein Ticket bei Emba aufmachen, oder hat jemand einen Tipp?

LG
Oliver
Oliver

Geändert von backdraft (16. Feb 2023 um 14:20 Uhr)
  Mit Zitat antworten Zitat