Ejemplo n.º 1
0
            internal override Microsoft.CodeAnalysis.Emit.Generation CreateGeneration(
                Microsoft.CodeAnalysis.Common.CommonCompilation commonCompilation,
                Microsoft.CodeAnalysis.Emit.LocalVariableSyntaxProvider localDeclarations,
                Microsoft.CodeAnalysis.Emit.LocalVariableMapProvider localMap)
            {
                var compilation    = (Compilation)commonCompilation;
                var previousToNext = new SymbolMatcher(
                    this.compilation.SourceAssembly,
                    compilation.SourceAssembly,
                    caseSensitive: true);
                var delta = new Microsoft.CodeAnalysis.Emit.GenerationDelta(
                    previousToNext.Match(this.delta.TypesAdded),
                    previousToNext.Match(this.delta.EventsAdded),
                    previousToNext.Match(this.delta.FieldsAdded),
                    previousToNext.Match(this.delta.MethodsAdded),
                    previousToNext.Match(this.delta.PropertiesAdded),
                    tableEntriesAdded: this.delta.TableEntriesAdded,
                    blobStreamLengthAdded: this.delta.BlobStreamLengthAdded,
                    stringStreamLengthAdded: this.delta.StringStreamLengthAdded,
                    userStringStreamLengthAdded: this.delta.UserStringStreamLengthAdded,
                    guidStreamLengthAdded: this.delta.GuidStreamLengthAdded,
                    localNamesAddedOrChanged: this.delta.LocalNamesAddedOrChanged,
                    localNames: this.delta.LocalNames,
                    localDeclarationsAddedOrChanged: this.delta.LocalDeclarationsAddedOrChanged);

                return(Generation.CreateNextGeneration(
                           compilation,
                           this.OriginalMetadata,
                           this.Ordinal,
                           encId,
                           delta,
                           localDeclarations,
                           localMap));
            }