src/vs/workbench/contrib/mergeEditor/browser/mergeEditorInput.ts/MergeEditorInput/resolve
class MergeEditorInput:	override async resolve(): Promise<MergeEditorModel> {

		if (!this._model) {

			const base = await this._textModelService.createModelReference(this.base);
			const input1 = await this._textModelService.createModelReference(this.input1.uri);
			const input2 = await this._textModelService.createModelReference(this.input2.uri);
			const result = await this._textModelService.createModelReference(this.result);

			this._model = this._instaService.createInstance(
				MergeEditorModel,
				base.object.textEditorModel,
				input1.object.textEditorModel,
				this.input1.title,
				this.input1.detail,
				this.input1.description,
				input2.object.textEditorModel,
				this.input2.title,
				this.input2.detail,
				this.input2.description,
				result.object.textEditorModel,
				this._instaService.createInstance(EditorWorkerServiceDiffComputer),
			);

			await this._model.onInitialized;

			this._store.add(this._model);
			this._store.add(base);
			this._store.add(input1);
			this._store.add(input2);
			this._store.add(result);

			this._store.add(autorun(reader => {
				this._model?.hasUnhandledConflicts.read(reader);
				this._onDidChangeDirty.fire(undefined);
			}, 'drive::onDidChangeDirty'));
		}

		this._ignoreUnhandledConflictsForDirtyState = undefined;
		return this._model;
	}