private bool GetPredefinedTypeKindOption( State state, out TypeKindOptions typeKindValueFinal ) { if (state.IsAttribute) { typeKindValueFinal = TypeKindOptions.Attribute; return(true); } if ( _service.TryGetBaseList( state.NameOrMemberAccessExpression, out var typeKindValue ) || _service.TryGetBaseList(state.SimpleName, out typeKindValue) ) { typeKindValueFinal = typeKindValue; return(true); } if (state.IsClassInterfaceTypes) { typeKindValueFinal = TypeKindOptions.BaseList; return(true); } if (state.IsDelegateOnly) { typeKindValueFinal = TypeKindOptions.Delegate; return(true); } if (state.IsTypeGeneratedIntoNamespaceFromMemberAccess) { typeKindValueFinal = state.IsSimpleNameGeneric ? TypeKindOptionsHelper.RemoveOptions( TypeKindOptions.MemberAccessWithNamespace, TypeKindOptions.GenericInCompatibleTypes ) : TypeKindOptions.MemberAccessWithNamespace; typeKindValueFinal = state.IsEnumNotAllowed ? TypeKindOptionsHelper.RemoveOptions( typeKindValueFinal, TypeKindOptions.Enum ) : typeKindValueFinal; return(true); } typeKindValueFinal = TypeKindOptions.AllOptions; return(false); }
private TypeKindOptions GetTypeKindOption(State state) { var gotPreassignedTypeOptions = GetPredefinedTypeKindOption(state, out var typeKindValue); if (!gotPreassignedTypeOptions) { typeKindValue = state.IsSimpleNameGeneric ? TypeKindOptionsHelper.RemoveOptions(typeKindValue, TypeKindOptions.GenericInCompatibleTypes) : typeKindValue; typeKindValue = state.IsMembersWithModule ? TypeKindOptionsHelper.AddOption(typeKindValue, TypeKindOptions.Module) : typeKindValue; typeKindValue = state.IsInterfaceOrEnumNotAllowedInTypeContext ? TypeKindOptionsHelper.RemoveOptions(typeKindValue, TypeKindOptions.Interface, TypeKindOptions.Enum) : typeKindValue; typeKindValue = state.IsDelegateAllowed ? typeKindValue : TypeKindOptionsHelper.RemoveOptions(typeKindValue, TypeKindOptions.Delegate); typeKindValue = state.IsEnumNotAllowed ? TypeKindOptionsHelper.RemoveOptions(typeKindValue, TypeKindOptions.Enum) : typeKindValue; } return(typeKindValue); }