Richard (Rikki) Andrew Cattermole
Posted in reply to Dennis
| You shouldn't use fullyQualifiedName to do symbol lookup, that is where Adam is coming from (it is very likely to cause issues).
However I strongly believe that he is wrong about it shouldn't exist. It should, it needs to exist, its a basic introspection ability.
There are two areas where I use it:
1) Uniquely identifying a type (registration of types for things like serializing, passing to hash function ext.).
2) Pretty printing for debugging. Here is some output that I generated yesterday:
- sidero.base.datetime.time.timezone.TimeZone(
state: sidero.base.datetime.time.timezone.TimeZone.State@1E3A01E4F00(
refCount: 6,
allocator: sidero.base.allocators.api.RCAllocator(
---- ignoring ----
private refAdd_,
private refSub_,
private allocate_,
private deallocate_,
private reallocate_,
private owns_,
private deallocateAll_,
private empty_),
name: "Pacific/Auckland",
haveDaylightSavings: true,
source: sidero.base.datetime.time.timezone.TimeZone.Source.Windows,
fixedBias: 0,
windowsBase: sidero.base.datetime.time.internal.windows.WindowsTimeZoneBase(
dtzi: sidero.base.datetime.time.internal.windows.DYNAMIC_TIME_ZONE_INFORMATION(
Bias: -720,
StandardName: "New Zealand Standard Time\0ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿",
StandardDate: core.sys.windows.winbase.SYSTEMTIME(
wYear: 0,
wMonth: 4,
wDayOfWeek: 0,
wDay: 1,
wHour: 3,
wMinute: 0,
wSecond: 0,
wMilliseconds: 0),
StandardBias: 0,
DaylightName: "New Zealand Daylight Time\0ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿",
DaylightDate: core.sys.windows.winbase.SYSTEMTIME(
wYear: 0,
wMonth: 9,
wDayOfWeek: 0,
wDay: 5,
wHour: 2,
wMinute: 0,
wSecond: 0,
wMilliseconds: 0),
DaylightBias: -60,
TimeZoneKeyName: "New Zealand Standard Time\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0",
DynamicDaylightTimeDisabled: false),
stdName: "New Zealand Standard Time",
dstName: "New Zealand Daylight Time",
standardOffset: sidero.base.datetime.time.internal.windows.WindowsTimeZoneBase.Bias(
seconds: 0,
appliesOnDate: sidero.base.datetime.calendars.gregorian.GregorianDate(
---- ignoring ----
private year_,
private month_,
private day_ ->
1/4/2023),
appliesOnTime: sidero.base.datetime.time.timeofday.TimeOfDay(
---- ignoring ----
private hour_,
private minute_,
private second_,
private msec_ ->
03:00:00.000000)),
daylightSavingsOffset: sidero.base.datetime.time.internal.windows.WindowsTimeZoneBase.Bias(
seconds: -3600,
appliesOnDate: sidero.base.datetime.calendars.gregorian.GregorianDate(
---- ignoring ----
private year_,
private month_,
private day_ ->
5/9/2023),
appliesOnTime: sidero.base.datetime.time.timeofday.TimeOfDay(
---- ignoring ----
private hour_,
private minute_,
private second_,
private msec_ ->
02:00:00.000000))),
ianaTZBase: sidero.base.datetime.time.internal.iana.IanaTZBase(
tzFile: no-error but null,
startUnixTime: 0,
endUnixTime: 0,
transitionsForRange: sidero.base.containers.dynamicarray.DynamicArray!(sidero.base.datetime.time.internal.iana.TZFile.Transition)(
---- ignoring ----
private state,
private minimumOffset,
private maximumOffset [])),
posixTZBase: sidero.base.datetime.time.internal.posix.PosixTZBase(
loadFromTZifFile: null,
stdName: null,
dstName: null,
stdOffset: 0,
dstOffset: 0,
transitionToStd: sidero.base.datetime.time.internal.posix.PosixTZBaseRule(
type: sidero.base.datetime.time.internal.posix.PosixTZBaseRule.Type.NoDST,
weekOfMonth: 0,
dayOfWeek: 0,
secondsBias: 0
---- ignoring ----
union julianDay,
union dayOfYear,
union monthOfYear),
transitionToDST: sidero.base.datetime.time.internal.posix.PosixTZBaseRule(
type: sidero.base.datetime.time.internal.posix.PosixTZBaseRule.Type.NoDST,
weekOfMonth: 0,
dayOfWeek: 0,
secondsBias: 0
---- ignoring ----
union julianDay,
union dayOfYear,
union monthOfYear))) ->
Pacific/Auckland)
|