• A
    Introduce an abstraction layer over PDB imports · c2ba34e8
    Andrew Casey 提交于
    In the dev12 PDB format, usings and imports were encoded as strings in
    PDB files.  The strings were structured, but required a certain amount of
    guesswork (for example, you might not know whether you were importing a
    type or a namespace until after binding).  In the new PDB format, usings
    and imports are represented as structured blobs and tokens are used
    wherever possible.
    
    This change introduces two new class hierarchies, ImportRecord and
    ExternAliasRecord, that the expression compiler can pass around instead
    of raw strings.  Unfortunately, there is still switching logic in two
    places - both when these types are instantiated and when they are
    consumed.  The instantiation switch is very simple - we just check for
    the appropriate version of ISymUnmanagedReaderX.  The consumption logic
    is more complex, because the new and old representations differ
    substantially.
    
    TODO: Presently, there is very little code for consuming the new PDB
    format, since the APIs are not yet available.
    c2ba34e8
BasicExpressionCompiler.vbproj 7.0 KB