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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 ;-)