Problème de debugger et transtypage TJSonObject
Bonjour à tous :-)
J'ai un problème avec le debugger (DBG) lors du transtypage d'un TJsonObject.
Ci-dessous un programme pour montrer ce bug.
1) Je crée un nouvelle Class TJSonObjectChild qui hérite de TJSonObject, sans implémenter de nouvelles procédures ou functions.
2) Lorsque je veux transtyper un TJSonObject en TJSonObjectChild avec TJSonObjectChild(...), j'ai une erreur du debugger Invalid typecast
Lorsque je décoche l'option [Verifiy method calls (-CR)] dans Options du projet/Compiler Options/Debugging,
je n'ai aucune erreur et ça marche nickel...
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| program TestHeritageJson;
uses
fpjson,
jsonparser;
type
TJSonObjectChild = class(TJsonObject);
var
vJO: TJSonObjectChild;
vJSD: TJSonData;
begin
vJSD := GetJSON('{"name" : "test"}');
vJO := TJSonObjectChild(vJSD); { ICI exception class 'RunError(219)' : Invalid typecast }
Write(vJO.AsJSON);
end. |
J'ai testé cela avec Lazarus 2.0.2 et 2.1. -> pas de differences
Avec DBG 7.3.50 et 7.7.50 -> pas de differences.
Est-ce moi qui déconne ?
Est-ce un bug de Lazarus, de DBG ?
A quoi sert cette option -CR ?
Merci de m'avoir lu jusqu'ici ;-)