src/vs/workbench/services/editor/browser/editorResolverService.ts/EditorResolverService/resolveUntypedInputAndGroup
class EditorResolverService:	private resolveUntypedInputAndGroup(editor: EditorInputWithOptions | IUntypedEditorInput, preferredGroup: PreferredGroup | undefined): [IUntypedEditorInput, IEditorGroup, EditorActivation | undefined] | undefined {
		let untypedEditor: IUntypedEditorInput | undefined = undefined;

		// Typed: convert to untyped to be able to resolve the editor as the service only uses untyped
		if (isEditorInputWithOptions(editor)) {
			untypedEditor = editor.editor.toUntyped();

			if (untypedEditor) {
				// Preserve original options: specifically it is
				// possible that a `override` was defined from
				// the outside and we do not want to lose it.
				untypedEditor.options = { ...untypedEditor.options, ...editor.options };
			}
		}

		// Untyped: take as is
		else {
			untypedEditor = editor;
		}

		// Typed editors that cannot convert to untyped will be returned as undefined
		if (!untypedEditor) {
			return undefined;
		}
		// Use the untyped editor to find a group
		const [group, activation] = this.instantiationService.invokeFunction(findGroup, untypedEditor, preferredGroup);

		return [untypedEditor, group, activation];
	}