public static Define New(BlockBase parent, string name, string baseType) { var ret = new Define(); ret.init(parent); if (string.IsNullOrEmpty(name)) { ret.isAnonymous = true; ret.name = parent.GetAnonymousName(); } else ret.name = name; ret.thisptr = Arg.New(ret, "this", Types.ToVarType(ret.Type)); ret.BaseType = baseType; return ret; }