You've already forked gnatstudio
mirror of
https://github.com/AdaCore/gnatstudio.git
synced 2026-02-12 12:42:33 -08:00
The upcoming compiler change trades spurious errors (reject-valid bugfixes) for valid errors (accept-invalid bugfixes), and now flags a few problematic constructs in the codebase: gps-editors.ads:1291:04: error: deferred constant "Nil_Editor_Mark" is frozen before completion gps-editors.ads:1291:04: error: because expression of function "Create_Mark" is frozen here gps-editors.ads:1291:04: error: as a primitive operation of type "Dummy_Editor_Location" frozen here gps-editors.ads:1291:04: error: expression function "Create_Mark" is declared at line 1230 gps-editors.ads:1326:04: error: full constant declaration appears too late gps-editors.ads:1587:04: error: deferred constant "Nil_Editor_Cursor" is frozen before completion gps-editors.ads:1587:04: error: because expression of function "Get_Main_Cursor" is frozen here gps-editors.ads:1587:04: error: as a primitive operation of type "Dummy_Editor_Buffer" frozen here gps-editors.ads:1587:04: error: expression function "Get_Main_Cursor" is declared at line 1341 gps-editors.ads:1672:04: error: full constant declaration appears too late language-abstract_language_tree.ads:503:04: error: deferred constant "No_Semantic_Node_Array" is frozen before completion language-abstract_language_tree.ads:503:04: error: because expression of function "Children" is frozen here language-abstract_language_tree.ads:503:04: error: as a primitive operation of type "Dummy_Semantic_Node" frozen here language-abstract_language_tree.ads:503:04: error: expression function "Children" is declared at line 410 language-abstract_language_tree.ads:506:04: error: deferred constant "No_Semantic_Node_Array" is frozen before completion language-abstract_language_tree.ads:506:04: error: because expression of function "Root_Nodes" is frozen here language-abstract_language_tree.ads:506:04: error: as a primitive operation of type "Dummy_Semantic_Tree" frozen here language-abstract_language_tree.ads:506:04: error: expression function "Root_Nodes" is declared at line 477 language-abstract_language_tree.ads:509:04: error: full constant declaration appears too late xref.ads:367:13: error: this primitive operation is declared too late xref.ads:371:13: error: this primitive operation is declared too late [...] There is a chicken-and-egg issue in language-abstract_language_tree.ads, whereby the completions of the constants at the end of the file freeze each other, so there is no legal declaration order for the completions. Therefore one of them is turned into a function (which is completed by an expression function) to break the circularity. Issue: eng/toolchain/gnat#1701