public async Task TestGenericInferenceDoNotUseVar3() { await TestAsync( @"class C { void M() { [|int|] i; if (M2(out i)) { } } void M2<T>(out T i) { } }", @"class C { void M() { if (M2(out int i)) { } } void M2<T>(out T i) { } }", options: UseImplicitTypeTests.ImplicitTypeEverywhere()); }
public async Task TestOverloadResolutionDoNotUseVar2() { await TestAsync( @"class C { void M() { [|var|] i = 0; if (M2(out i)) { } } void M2(out int i) { } void M2(out string s) { } }", @"class C { void M() { if (M2(out int i)) { } } void M2(out int i) { } void M2(out string s) { } }", options: UseImplicitTypeTests.ImplicitTypeEverywhere()); }
public async Task InlineVariablePreferVarExceptForPredefinedTypes1() { await TestAsync( @"class C { void M(string v) { [|int|] i; if (int.TryParse(v, out i)) { } } }", @"class C { void M(string v) { if (int.TryParse(v, out int i)) { } } }", options: UseImplicitTypeTests.ImplicitTypeButKeepIntrinsics()); }
public async Task InlineVariablePreferVar1() { await TestAsync( @"class C { void M(string v) { [|int|] i; if (int.TryParse(v, out i)) { } } }", @"class C { void M(string v) { if (int.TryParse(v, out var i)) { } } }", options: UseImplicitTypeTests.ImplicitTypeEverywhere()); }