From 6767d2d641507896de4ebf066bb4ddb531e24965 Mon Sep 17 00:00:00 2001 From: Johannes Rieken Date: Mon, 5 Sep 2016 11:37:24 +0200 Subject: [PATCH] don't use instanceof check but trust the data, fixes #10703 --- .../api/node/extHostLanguageFeatures.ts | 20 +++++++++---------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/src/vs/workbench/api/node/extHostLanguageFeatures.ts b/src/vs/workbench/api/node/extHostLanguageFeatures.ts index 0065dbe0655..e0e5db8ee61 100644 --- a/src/vs/workbench/api/node/extHostLanguageFeatures.ts +++ b/src/vs/workbench/api/node/extHostLanguageFeatures.ts @@ -10,7 +10,7 @@ import {IDisposable, dispose} from 'vs/base/common/lifecycle'; import {IThreadService} from 'vs/workbench/services/thread/common/threadService'; import * as vscode from 'vscode'; import * as TypeConverters from 'vs/workbench/api/node/extHostTypeConverters'; -import {Range, Disposable, SignatureHelp, CompletionList} from 'vs/workbench/api/node/extHostTypes'; +import {Range, Disposable, CompletionList} from 'vs/workbench/api/node/extHostTypes'; import {IPosition, IRange, ISingleEditOperation} from 'vs/editor/common/editorCommon'; import * as modes from 'vs/editor/common/modes'; import {ExtHostDocuments} from 'vs/workbench/api/node/extHostDocuments'; @@ -535,18 +535,16 @@ class SuggestAdapter { const disposables: IDisposable[] = []; let list: CompletionList; - if (Array.isArray(value)) { - list = new CompletionList(value); - } else if (value instanceof CompletionList) { - list = value; - result.incomplete = list.isIncomplete; - } else if (!value) { + if (!value) { // undefined and null are valid results return; + + } else if (Array.isArray(value)) { + list = new CompletionList(value); + } else { - // warn about everything else - console.warn('INVALID result from completion provider. expected CompletionItem-array or CompletionList but got:', value); - return; + list = value; + result.incomplete = list.isIncomplete; } for (let i = 0; i < list.items.length; i++) { @@ -622,7 +620,7 @@ class SignatureHelpAdapter { const pos = TypeConverters.toPosition(position); return asWinJsPromise(token => this._provider.provideSignatureHelp(doc, pos, token)).then(value => { - if (value instanceof SignatureHelp) { + if (value) { return TypeConverters.SignatureHelp.from(value); } });