Move Nast -> decl functions into Decl_nast and Decl_folded_class modules
Summary:
The Decl module provides functions which accept a Nast, convert it into a decl, and write that decl into shared memory. This is a problem for the migration to the direct decl parser, which produces a decl directly from source text. If we want to abstract over whether the direct decl parser is enabled, we will need to change these APIs so that they all accept a filename rather than an AST.
This diff does so--APIs accepting a filename are left in the Decl module, and APIs accepting a Nast (and their implementations) are moved to a new module, Decl_nast. The implementation of class-folding (i.e., producing a Decl_defs.decl_class_type) is move into another module, Decl_folded_class.
Reviewed By: shiqicao
Differential Revision:
D24033149
fbshipit-source-id:
0c397daf509bb4d3a52503153ebd36214620b1fe