public static TypeWithState Create(TypeWithAnnotations typeWithAnnotations, FlowAnalysisAnnotations annotations = FlowAnalysisAnnotations.None) { var type = typeWithAnnotations.Type; Debug.Assert((object)type != null); NullableFlowState state; if (type.CanContainNull()) { if ((annotations & FlowAnalysisAnnotations.MaybeNull) == FlowAnalysisAnnotations.MaybeNull) { state = NullableFlowState.MaybeDefault; } else if ((annotations & FlowAnalysisAnnotations.NotNull) == FlowAnalysisAnnotations.NotNull) { state = NullableFlowState.NotNull; } else { return(typeWithAnnotations.ToTypeWithState()); } } else { state = NullableFlowState.NotNull; } return(Create(type, state)); }