Ejemplo n.º 1
0
 internal static void VerifySemantics(
     this EditScript <SyntaxNode> editScript,
     SemanticEditDescription[] semanticEdits,
     EditAndContinueCapabilities capabilities)
 {
     VerifySemantics(editScript, ActiveStatementsDescription.Empty, semanticEdits, capabilities);
 }
Ejemplo n.º 2
0
        /// <summary>
        /// Creates a new ManagedModuleUpdate.
        /// </summary>
        /// <param name="module">Module ID which the update belongs to.</param>
        /// <param name="ilDelta">IL delta from the change.</param>
        /// <param name="metadataDelta">Metadata delta from the change.</param>
        /// <param name="pdbDelta">PDB delta from the change.</param>
        /// <param name="sequencePoints">Sequence points affected by the symbolic data change.</param>
        /// <param name="updatedMethods">Methods affected by the update.</param>
        /// <param name="activeStatements">Active statements affected by the update.</param>
        /// <param name="exceptionRegions">Exception regions affected by the update.</param>
        /// <param name="updatedTypes">List of updated TypeDefs.</param>
        public ManagedModuleUpdate(
            Guid module,
            ImmutableArray <byte> ilDelta,
            ImmutableArray <byte> metadataDelta,
            ImmutableArray <byte> pdbDelta,
            ImmutableArray <SequencePointUpdates> sequencePoints,
            ImmutableArray <int> updatedMethods,
            ImmutableArray <int> updatedTypes,
            ImmutableArray <ManagedActiveStatementUpdate> activeStatements,
            ImmutableArray <ManagedExceptionRegionUpdate> exceptionRegions,
            EditAndContinueCapabilities requiredCapabilities)
        {
            Module = module;

            ILDelta       = ilDelta;
            MetadataDelta = metadataDelta;

            PdbDelta       = pdbDelta;
            SequencePoints = sequencePoints;

            UpdatedMethods = updatedMethods;
            UpdatedTypes   = updatedTypes;

            ActiveStatements     = activeStatements;
            ExceptionRegions     = exceptionRegions;
            RequiredCapabilities = requiredCapabilities;
        }
Ejemplo n.º 3
0
        private static async Task <DocumentAnalysisResults> AnalyzeDocumentAsync(
            Project oldProject,
            Document newDocument,
            ActiveStatementsMap activeStatementMap   = null,
            EditAndContinueCapabilities capabilities = EditAndContinueTestHelpers.Net5RuntimeCapabilities)
        {
            var analyzer             = new CSharpEditAndContinueAnalyzer();
            var baseActiveStatements = AsyncLazy.Create(activeStatementMap ?? ActiveStatementsMap.Empty);
            var lazyCapabilities     = AsyncLazy.Create(capabilities);

            return(await analyzer.AnalyzeDocumentAsync(oldProject, baseActiveStatements, newDocument, ImmutableArray <LinePositionSpan> .Empty, lazyCapabilities, CancellationToken.None));
        }
Ejemplo n.º 4
0
 public Data(EditSessionTelemetry telemetry)
 {
     RudeEdits                    = telemetry._rudeEdits.AsImmutable();
     EmitErrorIds                 = telemetry._emitErrorIds.AsImmutable();
     HadCompilationErrors         = telemetry._hadCompilationErrors;
     HadRudeEdits                 = telemetry._hadRudeEdits;
     HadValidChanges              = telemetry._hadValidChanges;
     HadValidInsignificantChanges = telemetry._hadValidInsignificantChanges;
     InBreakState                 = telemetry._inBreakState;
     Capabilities                 = telemetry._capabilities;
     IsEmpty = telemetry.IsEmpty;
 }
Ejemplo n.º 5
0
            public Data(EditSessionTelemetry telemetry)
            {
                Contract.ThrowIfNull(telemetry._inBreakState);

                RudeEdits                    = telemetry._rudeEdits.AsImmutable();
                EmitErrorIds                 = telemetry._emitErrorIds.AsImmutable();
                ProjectsWithValidDelta       = telemetry._projectsWithValidDelta.AsImmutable();
                HadCompilationErrors         = telemetry._hadCompilationErrors;
                HadRudeEdits                 = telemetry._hadRudeEdits;
                HadValidChanges              = telemetry._hadValidChanges;
                HadValidInsignificantChanges = telemetry._hadValidInsignificantChanges;
                InBreakState                 = telemetry._inBreakState.Value;
                Capabilities                 = telemetry._capabilities;
                IsEmpty   = telemetry.IsEmpty;
                Committed = telemetry._committed;
            }
Ejemplo n.º 6
0
        public ProjectChanges(
            ImmutableArray <SemanticEdit> semanticEdits,
            ImmutableArray <SequencePointUpdates> lineChanges,
            ImmutableHashSet <ISymbol> addedSymbols,
            ImmutableArray <DocumentActiveStatementChanges> activeStatementChanges,
            EditAndContinueCapabilities requiredCapabilities)
        {
            Debug.Assert(!semanticEdits.IsDefault);
            Debug.Assert(!lineChanges.IsDefault);
            Debug.Assert(!activeStatementChanges.IsDefault);
            Debug.Assert(requiredCapabilities != EditAndContinueCapabilities.None);

            SemanticEdits          = semanticEdits;
            LineChanges            = lineChanges;
            AddedSymbols           = addedSymbols;
            ActiveStatementChanges = activeStatementChanges;
            RequiredCapabilities   = requiredCapabilities;
        }
 public bool Grant(EditAndContinueCapabilities capabilities)
 {
     GrantedCapabilities |= capabilities;
     return((_availableCapabilities & capabilities) == capabilities);
 }
 public EditAndContinueCapabilitiesGrantor(EditAndContinueCapabilities availableCapabilities)
 {
     _availableCapabilities = availableCapabilities;
     GrantedCapabilities    = 0;
 }
    public static ChangeMakerService Make(HostWorkspaceServices hostWorkspaceServices, EditAndContinueCapabilities capabilities)
    {
        ImmutableArray <string> caps = CapabilitiesToStrings(capabilities);

        Console.WriteLine("initializing ChangeMakerService with capabilities: " + string.Join(", ", caps));
        (var watchServiceType, var watchHotReloadService) = InstantiateWatchHotReloadService(hostWorkspaceServices, caps);
        return(new ChangeMakerService(watchServiceType, watchHotReloadService));
    }