Module Ast_diff

module Ast_diff: sig .. end

Compute diff information from an existing project.


module Orig_project: State_builder.Option_ref  with type data = Project.t

the original project from which a diff is computed.

type 'a correspondance = [ `Not_present | `Same of 'a ] 

possible correspondances between new items and original ones.

type partial_correspondance = [ `Body_changed | `Callees_changed | `Callees_spec_changed | `Spec_changed ] 

for kernel function, we are a bit more precise than a yes/no answer. More precisely, we check whether a function has the same spec, the same body, and whether its callees have changed (provided the body itself is identical, otherwise, there's no point in checking the callees.

type 'a code_correspondance = [ `Not_present
| `Partial of 'a * partial_correspondance
| `Same of 'a ]
module type Correspondance_table = sig .. end
module Varinfo: Correspondance_table 
  with type key = varinfo and type data = varinfo correspondance

varinfos correspondances

module Compinfo: Correspondance_table 
  with type key = compinfo and type data = compinfo correspondance
module Enuminfo: Correspondance_table 
  with type key = enuminfo and type data = enuminfo correspondance
module Enumitem: Correspondance_table 
  with type key = enumitem and type data = enumitem correspondance
module Typeinfo: Correspondance_table 
  with type key = typeinfo and type data = typeinfo correspondance
module Stmt: Correspondance_table 
  with type key = stmt and type data = stmt code_correspondance
module Logic_info: Correspondance_table 
  with type key = logic_info and type data = logic_info correspondance
module Logic_type_info: Correspondance_table 
  with type key = logic_type_info and type data = logic_type_info correspondance
module Logic_ctor_info: Correspondance_table 
  with type key = logic_ctor_info and type data = logic_ctor_info correspondance
module Fieldinfo: Correspondance_table 
  with type key = fieldinfo and type data = fieldinfo correspondance
module Model_info: Correspondance_table 
  with type key = model_info and type data = model_info correspondance
module Logic_var: Correspondance_table 
  with type key = logic_var and type data = logic_var correspondance
module Kernel_function: Correspondance_table 
  with type key = kernel_function
   and type data = kernel_function code_correspondance
module Fundec: Correspondance_table 
  with type key = fundec and type data = fundec correspondance
val compare_ast : unit -> unit

performs a comparison of AST between the current and the original project, which must have been set beforehand.

val compare_from_prj : Project.t -> unit

compare_from_prj prj sets prj as the original project and fill the tables.