Esempio n. 1
0
        public EmitBaseline MapBaselineToCompilation(
            EmitBaseline baseline,
            Compilation targetCompilation,
            CommonPEModuleBuilder targetModuleBuilder,
            ImmutableDictionary <ISymbolInternal, ImmutableArray <ISymbolInternal> > mappedSynthesizedMembers,
            ImmutableDictionary <ISymbolInternal, ImmutableArray <ISymbolInternal> > mappedDeletedMembers)
        {
            // Map all definitions to this compilation.
            var typesAdded         = MapDefinitions(baseline.TypesAdded);
            var eventsAdded        = MapDefinitions(baseline.EventsAdded);
            var fieldsAdded        = MapDefinitions(baseline.FieldsAdded);
            var methodsAdded       = MapDefinitions(baseline.MethodsAdded);
            var propertiesAdded    = MapDefinitions(baseline.PropertiesAdded);
            var generationOrdinals = MapDefinitions(baseline.GenerationOrdinals);

            return(baseline.With(
                       targetCompilation,
                       targetModuleBuilder,
                       baseline.Ordinal,
                       baseline.EncId,
                       generationOrdinals,
                       typesAdded,
                       eventsAdded,
                       fieldsAdded,
                       methodsAdded,
                       firstParamRowMap: baseline.FirstParamRowMap,
                       propertiesAdded,
                       eventMapAdded: baseline.EventMapAdded,
                       propertyMapAdded: baseline.PropertyMapAdded,
                       methodImplsAdded: baseline.MethodImplsAdded,
                       customAttributesAdded: baseline.CustomAttributesAdded,
                       tableEntriesAdded: baseline.TableEntriesAdded,
                       blobStreamLengthAdded: baseline.BlobStreamLengthAdded,
                       stringStreamLengthAdded: baseline.StringStreamLengthAdded,
                       userStringStreamLengthAdded: baseline.UserStringStreamLengthAdded,
                       guidStreamLengthAdded: baseline.GuidStreamLengthAdded,
                       anonymousTypeMap: MapAnonymousTypes(baseline.AnonymousTypeMap),
                       anonymousDelegates: MapAnonymousDelegates(baseline.AnonymousDelegates),
                       anonymousDelegatesWithFixedTypes: MapAnonymousDelegatesWithFixedTypes(baseline.AnonymousDelegatesWithFixedTypes),
                       synthesizedMembers: mappedSynthesizedMembers,
                       deletedMembers: mappedDeletedMembers,
                       addedOrChangedMethods: MapAddedOrChangedMethods(baseline.AddedOrChangedMethods),
                       debugInformationProvider: baseline.DebugInformationProvider,
                       localSignatureProvider: baseline.LocalSignatureProvider));
        }
Esempio n. 2
0
        public EmitBaseline MapBaselineToCompilation(
            EmitBaseline baseline,
            Compilation targetCompilation,
            CommonPEModuleBuilder targetModuleBuilder,
            ImmutableDictionary <Cci.ITypeDefinition, ImmutableArray <Cci.ITypeDefinitionMember> > mappedSynthesizedMembers)
        {
            // Map all definitions to this compilation.
            var typesAdded      = MapDefinitions(baseline.TypesAdded);
            var eventsAdded     = MapDefinitions(baseline.EventsAdded);
            var fieldsAdded     = MapDefinitions(baseline.FieldsAdded);
            var methodsAdded    = MapDefinitions(baseline.MethodsAdded);
            var propertiesAdded = MapDefinitions(baseline.PropertiesAdded);

            return(baseline.With(
                       targetCompilation,
                       targetModuleBuilder,
                       baseline.Ordinal,
                       baseline.EncId,
                       typesAdded,
                       eventsAdded,
                       fieldsAdded,
                       methodsAdded,
                       propertiesAdded,
                       eventMapAdded: baseline.EventMapAdded,
                       propertyMapAdded: baseline.PropertyMapAdded,
                       methodImplsAdded: baseline.MethodImplsAdded,
                       tableEntriesAdded: baseline.TableEntriesAdded,
                       blobStreamLengthAdded: baseline.BlobStreamLengthAdded,
                       stringStreamLengthAdded: baseline.StringStreamLengthAdded,
                       userStringStreamLengthAdded: baseline.UserStringStreamLengthAdded,
                       guidStreamLengthAdded: baseline.GuidStreamLengthAdded,
                       anonymousTypeMap: MapAnonymousTypes(baseline.AnonymousTypeMap),
                       synthesizedMembers: mappedSynthesizedMembers,
                       addedOrChangedMethods: MapAddedOrChangedMethods(baseline.AddedOrChangedMethods),
                       debugInformationProvider: baseline.DebugInformationProvider,
                       localSignatureProvider: baseline.LocalSignatureProvider));
        }
Esempio n. 3
0
        private static EmitBaseline EnsureInitialized(
            EmitBaseline previousGeneration,
            Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.MetadataDecoder metadataDecoder)
        {
            if (previousGeneration.AnonymousTypeMap != null)
            {
                return previousGeneration;
            }

            var anonymousTypeMap = GetAnonymousTypeMap(previousGeneration.MetadataReader, metadataDecoder);
            return previousGeneration.With(
                previousGeneration.Compilation,
                previousGeneration.PEModuleBuilder,
                previousGeneration.Ordinal,
                previousGeneration.EncId,
                previousGeneration.TypesAdded,
                previousGeneration.EventsAdded,
                previousGeneration.FieldsAdded,
                previousGeneration.MethodsAdded,
                previousGeneration.PropertiesAdded,
                previousGeneration.EventMapAdded,
                previousGeneration.PropertyMapAdded,
                previousGeneration.TableEntriesAdded,
                blobStreamLengthAdded: previousGeneration.BlobStreamLengthAdded,
                stringStreamLengthAdded: previousGeneration.StringStreamLengthAdded,
                userStringStreamLengthAdded: previousGeneration.UserStringStreamLengthAdded,
                guidStreamLengthAdded: previousGeneration.GuidStreamLengthAdded,
                anonymousTypeMap: anonymousTypeMap,
                localsForMethodsAddedOrChanged: previousGeneration.LocalsForMethodsAddedOrChanged,
                localNames: previousGeneration.LocalNames);
        }