We stored a CorLib assembly symbol (one that doesn't have any references and...
We stored a CorLib assembly symbol (one that doesn't have any references and defines System.Object) on ReferenceManager. The instance of the manager is shared across compilations derived via Clone() or WithXxx() unless the metadata reference binding changes. If the compilation itself was CorLib we shared its source assembly symbol as a CorLib assembly with the derived compilations, which broke symbol equality. This change replaces an explicit CorLib reference in the ReferenceManager with null if the CorLib is the compilation being compiled. We have the assembly CorLib symbol in hand when reading the state so we can fill the right symbol in. Also refactors VB code in ReferenceManager to exactly match C# implementation. Resolves #43. (changeset 1227802)
Showing
想要评论请 注册 或 登录