Responsible for mapping source-level variables to their declared and actual types, at any given program point. Since the flow-type checker uses a flow-sensitive approach to type checking, then the typing environment will change as we move through the statements of a function or method.
This class is implemented in a functional style to minimise possible problems related to aliasing (which have been a problem in the past). To improve performance, reference counting is to ensure that cloning the underling map is only performed when actually necessary.
@author David J. Pearce
|
|