internal static ConversionClass ClassifyConversion(Type TargetType, Type SourceType, ref Symbols.Method OperatorMethod) { ConversionClass class3 = ClassifyPredefinedConversion(TargetType, SourceType); if ((((class3 != ConversionClass.None) || Symbols.IsInterface(SourceType)) || Symbols.IsInterface(TargetType)) || (!Symbols.IsClassOrValueType(SourceType) && !Symbols.IsClassOrValueType(TargetType))) { return(class3); } if (Symbols.IsIntrinsicType(SourceType) && Symbols.IsIntrinsicType(TargetType)) { return(class3); } return(ClassifyUserDefinedConversion(TargetType, SourceType, ref OperatorMethod)); }