src/vs/workbench/services/extensions/common/extensionDescriptionRegistry.ts/ExtensionDescriptionRegistry/deltaExtensions
class ExtensionDescriptionRegistry:	public deltaExtensions(toAdd: IExtensionDescription[], toRemove: ExtensionIdentifier[]): DeltaExtensionsResult {
		if (toAdd.length > 0) {
			this._extensionDescriptions = this._extensionDescriptions.concat(toAdd);
		}

		// Immediately remove looping extensions!
		const looping = ExtensionDescriptionRegistry._findLoopingExtensions(this._extensionDescriptions);
		toRemove = toRemove.concat(looping.map(ext => ext.identifier));

		if (toRemove.length > 0) {
			const toRemoveSet = new Set<string>();
			toRemove.forEach(extensionId => toRemoveSet.add(ExtensionIdentifier.toKey(extensionId)));
			this._extensionDescriptions = this._extensionDescriptions.filter(extension => !toRemoveSet.has(ExtensionIdentifier.toKey(extension.identifier)));
		}

		this._initialize();
		this._onDidChange.fire(undefined);
		return new DeltaExtensionsResult(looping);
	}