File tree Expand file tree Collapse file tree 2 files changed +18
-12
lines changed
Expand file tree Collapse file tree 2 files changed +18
-12
lines changed Original file line number Diff line number Diff line change @@ -127,20 +127,24 @@ module State (Context : Context) = struct
127127 let backward ~key :_ _ ~statement :_ = failwith " Not implemented"
128128end
129129
130+ let run_on_define ~qualifier define =
131+ let module Context = struct
132+ let uninitialized_usage = Int.Table. create ()
133+ end
134+ in
135+ let module State = State (Context ) in
136+ let module Fixpoint = Fixpoint. Make (State ) in
137+ let cfg = Cfg. create (Node. value define) in
138+ let fixpoint = Fixpoint. forward ~cfg ~initial: (State. initial ~define ) in
139+ Fixpoint. exit fixpoint >> | State. errors ~qualifier ~define |> Option. value ~default: []
140+
141+
130142let run
131143 ~configuration :_
132144 ~environment :_
133145 ~source :({ Source. source_path = { SourcePath. qualifier; _ } ; _ } as source )
134146 =
135- let check define =
136- let module Context = struct
137- let uninitialized_usage = Int.Table. create ()
138- end
139- in
140- let module State = State (Context ) in
141- let module Fixpoint = Fixpoint. Make (State ) in
142- let cfg = Cfg. create (Node. value define) in
143- let fixpoint = Fixpoint. forward ~cfg ~initial: (State. initial ~define ) in
144- Fixpoint. exit fixpoint >> | State. errors ~qualifier ~define |> Option. value ~default: []
145- in
146- source |> Preprocessing. defines ~include_toplevels: false |> List. map ~f: check |> List. concat
147+ source
148+ |> Preprocessing. defines ~include_toplevels: false
149+ |> List. map ~f: (run_on_define ~qualifier )
150+ |> List. concat
Original file line number Diff line number Diff line change @@ -10,6 +10,8 @@ module Error = AnalysisError
1010
1111val name : string
1212
13+ val run_on_define : qualifier :Reference .t -> Statement.Define .t Node .t -> Error .t list
14+
1315val run
1416 : configuration:Configuration.Analysis. t ->
1517 environment:TypeEnvironment.ReadOnly. t ->
You can’t perform that action at this time.
0 commit comments