private LocalTypeNode LocalTypeExpected(NamespaceNode ns, LocalTypeFlags flags) { LocalTypeNode type; if (!LocalType(ns, flags, out type)) { ErrorAndThrow(new DiagMsgEx(DiagCodeEx.SpecificTypeExpected, flags.ToString())); } return type; }
private bool LocalType(NamespaceNode ns, LocalTypeFlags flags, out LocalTypeNode result) { if ((flags & LocalTypeFlags.Nullable) != 0) { NullableTypeNode r; if (NullableType(ns, out r)) { result = r; return true; } } if ((flags & LocalTypeFlags.List) != 0) { ListOrSetTypeNode r; if (ListType(ns, out r)) { result = r; return true; } } if ((flags & LocalTypeFlags.Set) != 0) { ListOrSetTypeNode r; if (SetType(ns, out r)) { result = r; return true; } } if ((flags & LocalTypeFlags.Map) != 0) { MapTypeNode r; if (MapType(ns, out r)) { result = r; return true; } } if ((flags & LocalTypeFlags.GlobalTypeRef) != 0) { GlobalTypeRefNode r; if (GlobalTypeRef(ns, out r)) { result = r; return true; } } result = null; return false; }