Skip to content

Commit a033a32

Browse files
authored
Add placeholder types for fixing issues with TestInstantiationService (microsoft#164295)
1 parent e63406a commit a033a32

File tree

3 files changed

+7
-4
lines changed

3 files changed

+7
-4
lines changed

src/vs/editor/test/common/modes/textToHtmlTokenizer.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -293,7 +293,7 @@ suite('Editor Modes - textToHtmlTokenizer', () => {
293293

294294
class Mode extends Disposable {
295295

296-
private readonly languageId = 'textToHtmlTokenizerMode';
296+
public readonly languageId = 'textToHtmlTokenizerMode';
297297

298298
constructor(
299299
@ILanguageService languageService: ILanguageService

src/vs/platform/instantiation/common/instantiation.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ export const IInstantiationService = createDecorator<IInstantiationService>('ins
3838
* Given a list of arguments as a tuple, attempt to extract the leading, non-service arguments
3939
* to their own tuple.
4040
*/
41-
type GetLeadingNonServiceArgs<Args> =
41+
export type GetLeadingNonServiceArgs<Args> =
4242
Args extends [...BrandedService[]] ? []
4343
: Args extends [infer A, ...BrandedService[]] ? [A]
4444
: Args extends [infer A, ...infer R] ? [A, ...GetLeadingNonServiceArgs<R>]

src/vs/platform/instantiation/common/instantiationService.ts

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,9 @@ import { IdleValue } from 'vs/base/common/async';
77
import { Event } from 'vs/base/common/event';
88
import { illegalState } from 'vs/base/common/errors';
99
import { toDisposable } from 'vs/base/common/lifecycle';
10-
import { SyncDescriptor } from 'vs/platform/instantiation/common/descriptors';
10+
import { SyncDescriptor, SyncDescriptor0 } from 'vs/platform/instantiation/common/descriptors';
1111
import { Graph } from 'vs/platform/instantiation/common/graph';
12-
import { IInstantiationService, ServiceIdentifier, ServicesAccessor, _util } from 'vs/platform/instantiation/common/instantiation';
12+
import { GetLeadingNonServiceArgs, IInstantiationService, ServiceIdentifier, ServicesAccessor, _util } from 'vs/platform/instantiation/common/instantiation';
1313
import { ServiceCollection } from 'vs/platform/instantiation/common/serviceCollection';
1414
import { LinkedList } from 'vs/base/common/linkedList';
1515

@@ -72,6 +72,9 @@ export class InstantiationService implements IInstantiationService {
7272
}
7373
}
7474

75+
createInstance(ctorOrDescriptor: any | SyncDescriptor<any>, ...rest: any[]): any; // Comment out this line to fix type issues
76+
createInstance<T>(descriptor: SyncDescriptor0<T>): T;
77+
createInstance<Ctor extends new (...args: any[]) => any, R extends InstanceType<Ctor>>(ctor: Ctor, ...args: GetLeadingNonServiceArgs<ConstructorParameters<Ctor>>): R;
7578
createInstance(ctorOrDescriptor: any | SyncDescriptor<any>, ...rest: any[]): any {
7679
let _trace: Trace;
7780
let result: any;

0 commit comments

Comments
 (0)