105 references to ClassifyConversion
Microsoft.CodeAnalysis.CSharp.CodeStyle (10)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Simplification\Simplifiers\CastSimplifier.cs (1)
108
semanticModel.
ClassifyConversion
(cast.Expression, parentConversionType).Exists)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Utilities\SpeculationAnalyzer.cs (9)
409
var originalConversion = this.OriginalSemanticModel.
ClassifyConversion
(originalOtherPartOfConditional, originalExpressionType);
410
var newConversion = this.SpeculativeSemanticModel.
ClassifyConversion
(newOtherPartOfConditional, newExpressionType);
444
var originalConversion = this.OriginalSemanticModel.
ClassifyConversion
(oldSwitchStatement.Expression, originalCaseType);
445
var newConversion = this.SpeculativeSemanticModel.
ClassifyConversion
(newSwitchStatement.Expression, newCaseType);
547
var originalConvertedTypeConversion = this.OriginalSemanticModel.
ClassifyConversion
(previousOriginalNode, originalExpressionTypeInfo.ConvertedType);
548
var newExpressionConvertedTypeConversion = this.SpeculativeSemanticModel.
ClassifyConversion
(previousReplacedNode, newExpressionTypeInfo.ConvertedType);
710
var originalConversion = this.OriginalSemanticModel.
ClassifyConversion
(originalIsOrAsExpression.Left, originalConvertedType, isExplicitInSource: true);
711
var newConversion = this.SpeculativeSemanticModel.
ClassifyConversion
(newIsOrAsExpression.Left, newConvertedType, isExplicitInSource: true);
935
=> model.
ClassifyConversion
(expression, targetType);
Microsoft.CodeAnalysis.CSharp.CodeStyle.Fixes (1)
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\LanguageServices\CSharpSemanticFactsService.cs (1)
112
=> semanticModel.
ClassifyConversion
((ExpressionSyntax)expression, destination).ToCommonConversion();
Microsoft.CodeAnalysis.CSharp.Emit.UnitTests (24)
CodeGen\CodeGenTupleTest.cs (24)
19073
Assert.Equal(ConversionKind.Identity, model.
ClassifyConversion
(expr1, int_string1).Kind);
19074
Assert.Equal(ConversionKind.Identity, model.
ClassifyConversion
(expr1, int_string1, isExplicitInSource: true).Kind);
19075
Assert.Equal(ConversionKind.ImplicitTuple, model.
ClassifyConversion
(expr1, int_object).Kind);
19076
Assert.Equal(ConversionKind.ExplicitTuple, model.
ClassifyConversion
(expr1, int_object, isExplicitInSource: true).Kind);
19078
Assert.Equal(ConversionKind.NoConversion, model.
ClassifyConversion
(expr1, int_object_object).Kind);
19079
Assert.Equal(ConversionKind.NoConversion, model.
ClassifyConversion
(expr1, int_object_object, isExplicitInSource: true).Kind);
19112
Assert.Equal(ConversionKind.ExplicitTuple, model.
ClassifyConversion
(expr1, int_string1).Kind);
19113
Assert.Equal(ConversionKind.Identity, model.
ClassifyConversion
(expr1, int_object).Kind);
19114
Assert.Equal(ConversionKind.ExplicitTuple, model.
ClassifyConversion
(expr1, int_string1, isExplicitInSource: true).Kind);
19115
Assert.Equal(ConversionKind.Identity, model.
ClassifyConversion
(expr1, int_object, isExplicitInSource: true).Kind);
19117
Assert.Equal(ConversionKind.NoConversion, model.
ClassifyConversion
(expr1, int_object_object).Kind);
19118
Assert.Equal(ConversionKind.NoConversion, model.
ClassifyConversion
(expr1, int_object_object, isExplicitInSource: true).Kind);
19151
Assert.Equal(ConversionKind.Identity, model.
ClassifyConversion
(expr1, int_string1).Kind);
19152
Assert.Equal(ConversionKind.Identity, model.
ClassifyConversion
(expr1, int_string1, isExplicitInSource: true).Kind);
19153
Assert.Equal(ConversionKind.ImplicitTuple, model.
ClassifyConversion
(expr1, int_object).Kind);
19154
Assert.Equal(ConversionKind.ExplicitTuple, model.
ClassifyConversion
(expr1, int_object, isExplicitInSource: true).Kind);
19156
Assert.Equal(ConversionKind.NoConversion, model.
ClassifyConversion
(expr1, int_object_object).Kind);
19157
Assert.Equal(ConversionKind.NoConversion, model.
ClassifyConversion
(expr1, int_object_object, isExplicitInSource: true).Kind);
19190
Assert.Equal(ConversionKind.ExplicitTuple, model.
ClassifyConversion
(expr1, int_string1).Kind);
19191
Assert.Equal(ConversionKind.Identity, model.
ClassifyConversion
(expr1, int_object).Kind);
19192
Assert.Equal(ConversionKind.ExplicitTuple, model.
ClassifyConversion
(expr1, int_string1, isExplicitInSource: true).Kind);
19193
Assert.Equal(ConversionKind.Identity, model.
ClassifyConversion
(expr1, int_object, isExplicitInSource: true).Kind);
19195
Assert.Equal(ConversionKind.NoConversion, model.
ClassifyConversion
(expr1, int_object_object).Kind);
19196
Assert.Equal(ConversionKind.NoConversion, model.
ClassifyConversion
(expr1, int_object_object, isExplicitInSource: true).Kind);
Microsoft.CodeAnalysis.CSharp.Emit2.UnitTests (1)
Emit\NumericIntPtrTests.cs (1)
6021
AssertMatches(expectedConversions, model.
ClassifyConversion
(expr, destTypeSymbol));
Microsoft.CodeAnalysis.CSharp.Emit3.UnitTests (2)
Semantics\OutVarTests.cs (2)
1058
var conversion = model.
ClassifyConversion
(decl, model.Compilation.ObjectType, false);
1060
Assert.Equal(conversion, model.
ClassifyConversion
(decl, model.Compilation.ObjectType, true));
Microsoft.CodeAnalysis.CSharp.Features (3)
ConvertIfToSwitch\CSharpConvertIfToSwitchCodeRefactoringProvider.Analyzer.cs (1)
37
semanticModel.
ClassifyConversion
(expressionSyntax, targetType).IsImplicit;
SignatureHelp\LightweightOverloadResolution.cs (2)
127
&& semanticModel.
ClassifyConversion
(argument.Expression, arrayType.ElementType).IsImplicit)
132
return semanticModel.
ClassifyConversion
(argument.Expression, type).IsImplicit;
Microsoft.CodeAnalysis.CSharp.Semantic.UnitTests (10)
Semantics\DelegateTypeTests.cs (2)
14865
Assert.Equal(expectedImplicitKind, model.
ClassifyConversion
(expr, destination, isExplicitInSource: false).Kind);
14866
Assert.Equal(expectedExplicitKind, model.
ClassifyConversion
(expr, destination, isExplicitInSource: true).Kind);
Semantics\FunctionPointerTests.cs (7)
303
var classifiedConversion = model.
ClassifyConversion
(literal, typeInfo.ConvertedType);
355
var conversion = model.
ClassifyConversion
(conversions[0].Expression, typeInfoOuter.Type!);
361
conversion = model.
ClassifyConversion
(conversions[1].Expression, typeInfoOuter.Type!);
406
var conversion = model.
ClassifyConversion
(conversions[0].Expression, typeInfoOuter.Type!);
410
conversion = model.
ClassifyConversion
(conversions[1].Expression, typeInfoOuter.Type!);
458
var conversion = model.
ClassifyConversion
(conversions[0].Expression, typeInfoOuter.Type!);
508
var conversion = model.
ClassifyConversion
(conv.Expression, typeInfoOuter.Type!);
Semantics\NativeIntegerTests.cs (1)
9506
AssertMatches(expectedConversions, model.
ClassifyConversion
(expr, destTypeSymbol));
Microsoft.CodeAnalysis.CSharp.Symbol.UnitTests (32)
Compilation\GetSemanticInfoTests.cs (17)
606
Conversion conv = model.
ClassifyConversion
(expr1, info.ConvertedType);
611
conv = model.
ClassifyConversion
(expr2, info.ConvertedType);
638
Conversion conv = model.
ClassifyConversion
(expr1, info.ConvertedType);
850
Conversion act1 = semanticModel.
ClassifyConversion
(expr, info.ConvertedType);
876
Conversion act1 = semanticModel.
ClassifyConversion
(expr, expsym);
3336
var conversion = model.
ClassifyConversion
(expr, gNullableType);
3402
var conversion = model.
ClassifyConversion
(expr, gNullableType);
3681
Assert.Equal(ConversionKind.Boxing, model.
ClassifyConversion
(literal, castTypeInfo.Type).Kind);
3718
Assert.Equal(ConversionKind.ImplicitNumeric, model.
ClassifyConversion
(literal, cast1TypeInfo.Type).Kind);
3729
Assert.Equal(ConversionKind.Boxing, model.
ClassifyConversion
(cast1, cast2TypeInfo.Type).Kind);
5538
var conversion = model.
ClassifyConversion
(lambdaSyntax, otherFuncType);
5586
var conversion = model.
ClassifyConversion
(nullSyntax, typeC);
5625
var conversion = model.
ClassifyConversion
(lambdaSyntax, typeFuncB);
5672
var conversion = model.
ClassifyConversion
(lambdaSyntax, typeFuncC);
5733
var conversionA = model.
ClassifyConversion
(methodGroupSyntax, typeFuncA);
5737
var conversionB = model.
ClassifyConversion
(methodGroupSyntax, typeFuncB);
5740
var conversionC = model.
ClassifyConversion
(methodGroupSyntax, typeFuncC);
Symbols\CheckedUserDefinedOperatorsTests.cs (12)
7250
Assert.Equal("System.Int64 C0.op_CheckedExplicit(C0 x)", model.
ClassifyConversion
(xNode, int64, isExplicitInSource: false).Method.ToTestDisplayString());
7251
Assert.Equal("System.Int64 C0.op_CheckedExplicit(C0 x)", model.
ClassifyConversion
(xNode, int64, isExplicitInSource: true).Method.ToTestDisplayString());
7253
Assert.Equal("System.Int64 C0.op_CheckedExplicit(C0 x)", model.
ClassifyConversion
(yNode, int64, isExplicitInSource: false).Method.ToTestDisplayString());
7254
Assert.Equal("System.Int64 C0.op_CheckedExplicit(C0 x)", model.
ClassifyConversion
(yNode, int64, isExplicitInSource: true).Method.ToTestDisplayString());
7321
Assert.Equal("System.Int64 C0.op_Explicit(C0 x)", model.
ClassifyConversion
(xNode, int64, isExplicitInSource: false).Method.ToTestDisplayString());
7322
Assert.Equal("System.Int64 C0.op_Explicit(C0 x)", model.
ClassifyConversion
(xNode, int64, isExplicitInSource: true).Method.ToTestDisplayString());
7323
Assert.Equal("System.Int64 C0.op_Explicit(C0 x)", model.
ClassifyConversion
(yNode, int64, isExplicitInSource: false).Method.ToTestDisplayString());
7324
Assert.Equal("System.Int64 C0.op_Explicit(C0 x)", model.
ClassifyConversion
(yNode, int64, isExplicitInSource: true).Method.ToTestDisplayString());
7393
Assert.Equal("System.Int64 C0.op_Explicit(C0 x)", model.
ClassifyConversion
(xNode, int64, isExplicitInSource: false).Method.ToTestDisplayString());
7394
Assert.Equal("System.Int64 C0.op_Explicit(C0 x)", model.
ClassifyConversion
(xNode, int64, isExplicitInSource: true).Method.ToTestDisplayString());
7396
Assert.Equal("System.Int64 C0.op_Explicit(C0 x)", model.
ClassifyConversion
(yNode, int64, isExplicitInSource: false).Method.ToTestDisplayString());
7397
Assert.Equal("System.Int64 C0.op_Explicit(C0 x)", model.
ClassifyConversion
(yNode, int64, isExplicitInSource: true).Method.ToTestDisplayString());
Symbols\ConversionTests.cs (3)
351
Assert.Equal(ConversionKind.Identity, tuple.Item2.
ClassifyConversion
(tuple.Item1, comp.GetSpecialType(SpecialType.System_Boolean)).Kind);
403
Conversion conversion = model.
ClassifyConversion
(sourceExpression1, targetType);
409
conversion = model.
ClassifyConversion
(sourceExpression2, targetType);
Microsoft.CodeAnalysis.CSharp.Workspaces (11)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Simplification\Simplifiers\CastSimplifier.cs (1)
108
semanticModel.
ClassifyConversion
(cast.Expression, parentConversionType).Exists)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Utilities\SpeculationAnalyzer.cs (9)
409
var originalConversion = this.OriginalSemanticModel.
ClassifyConversion
(originalOtherPartOfConditional, originalExpressionType);
410
var newConversion = this.SpeculativeSemanticModel.
ClassifyConversion
(newOtherPartOfConditional, newExpressionType);
444
var originalConversion = this.OriginalSemanticModel.
ClassifyConversion
(oldSwitchStatement.Expression, originalCaseType);
445
var newConversion = this.SpeculativeSemanticModel.
ClassifyConversion
(newSwitchStatement.Expression, newCaseType);
547
var originalConvertedTypeConversion = this.OriginalSemanticModel.
ClassifyConversion
(previousOriginalNode, originalExpressionTypeInfo.ConvertedType);
548
var newExpressionConvertedTypeConversion = this.SpeculativeSemanticModel.
ClassifyConversion
(previousReplacedNode, newExpressionTypeInfo.ConvertedType);
710
var originalConversion = this.OriginalSemanticModel.
ClassifyConversion
(originalIsOrAsExpression.Left, originalConvertedType, isExplicitInSource: true);
711
var newConversion = this.SpeculativeSemanticModel.
ClassifyConversion
(newIsOrAsExpression.Left, newConvertedType, isExplicitInSource: true);
935
=> model.
ClassifyConversion
(expression, targetType);
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\LanguageServices\CSharpSemanticFactsService.cs (1)
112
=> semanticModel.
ClassifyConversion
((ExpressionSyntax)expression, destination).ToCommonConversion();
Roslyn.Diagnostics.CSharp.Analyzers (11)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Simplification\Simplifiers\CastSimplifier.cs (1)
108
semanticModel.
ClassifyConversion
(cast.Expression, parentConversionType).Exists)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Utilities\SpeculationAnalyzer.cs (9)
409
var originalConversion = this.OriginalSemanticModel.
ClassifyConversion
(originalOtherPartOfConditional, originalExpressionType);
410
var newConversion = this.SpeculativeSemanticModel.
ClassifyConversion
(newOtherPartOfConditional, newExpressionType);
444
var originalConversion = this.OriginalSemanticModel.
ClassifyConversion
(oldSwitchStatement.Expression, originalCaseType);
445
var newConversion = this.SpeculativeSemanticModel.
ClassifyConversion
(newSwitchStatement.Expression, newCaseType);
547
var originalConvertedTypeConversion = this.OriginalSemanticModel.
ClassifyConversion
(previousOriginalNode, originalExpressionTypeInfo.ConvertedType);
548
var newExpressionConvertedTypeConversion = this.SpeculativeSemanticModel.
ClassifyConversion
(previousReplacedNode, newExpressionTypeInfo.ConvertedType);
710
var originalConversion = this.OriginalSemanticModel.
ClassifyConversion
(originalIsOrAsExpression.Left, originalConvertedType, isExplicitInSource: true);
711
var newConversion = this.SpeculativeSemanticModel.
ClassifyConversion
(newIsOrAsExpression.Left, newConvertedType, isExplicitInSource: true);
935
=> model.
ClassifyConversion
(expression, targetType);
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\LanguageServices\CSharpSemanticFactsService.cs (1)
112
=> semanticModel.
ClassifyConversion
((ExpressionSyntax)expression, destination).ToCommonConversion();