[swift-evolution] [Discussion] Can we make `.Type` Hashable?

Keith Smiley k at keith.so
Fri Jul 1 16:03:50 CDT 2016


Oh awesome! We'll definitely switch to that. Thanks!

--
Keith Smiley

On 07/01, Alex Migicovsky wrote:
> Hi Keith,
>
> As a small aside, I’d suggest using ObjectIdentifier instead of a String to back your TypeRepresentation struct. ObjectIdentifier is Hashable and it has an initializer that accepts any type. The benefit of your TypeRepresentation type over ObjectIdentifier is that you can restrict the TypeRepresentation struct to only accept type parameters in its initializer (so you know you’re storing a type and not an object). ObjectIdentifier accepts both objects and types.
>
> - Alex
>
> > On Jul 1, 2016, at 10:57 AM, Keith Smiley via swift-evolution <swift-evolution at swift.org> wrote:
> >
> > This would be great. I've solved this recently by making a TypeRepresentation
> > type that is initialized with any T, and conforms to Hashable. Of course
> > internally this just uses String(T), but at least that's abstracted from the
> > caller.
> >
> > --
> > Keith Smiley
> >
> > On 07/01, Matthew Johnson via swift-evolution wrote:
> >> +1 here as well.  It would be nice to have.
> >>
> >>
> >>> On Jul 1, 2016, at 9:15 AM, Sean Heber via swift-evolution <swift-evolution at swift.org> wrote:
> >>>
> >>> +1 here, too. Looking like someone needs to write a full proposal! :P
> >>>
> >>> l8r
> >>> Sean
> >>>
> >>>
> >>>> On Jul 1, 2016, at 9:11 AM, Tony Allevato via swift-evolution <swift-evolution at swift.org> wrote:
> >>>>
> >>>> +1. I've had to do this a couple times and ended up wrapping them in string interpolations, which makes me feel terrible.
> >>>>
> >>>> On Fri, Jul 1, 2016 at 6:26 AM David Sweeris via swift-evolution <swift-evolution at swift.org> wrote:
> >>>> +1
> >>>>
> >>>>> On Jul 1, 2016, at 8:20 AM, Adrian Zubarev via swift-evolution <swift-evolution at swift.org> wrote:
> >>>>>
> >>>>> Additive question:
> >>>>>
> >>>>> 	• Can a type instance of a type SomeType.self SomeType.Type be Hashable?
> >>>>> I really would want to use these in dictionaries or sets :)
> >>>>>
> >>>>> [Any.Type: ValueType]
> >>>>>
> >>>>> Set<Any.Type> // Union type universe
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>> --
> >>>>> Adrian Zubarev
> >>>>> Sent with Airmail
> >>>>>
> >>>>> _______________________________________________
> >>>>> swift-evolution mailing list
> >>>>> swift-evolution at swift.org
> >>>>> https://lists.swift.org/mailman/listinfo/swift-evolution
> >>>>
> >>>> _______________________________________________
> >>>> swift-evolution mailing list
> >>>> swift-evolution at swift.org
> >>>> https://lists.swift.org/mailman/listinfo/swift-evolution
> >>>> _______________________________________________
> >>>> swift-evolution mailing list
> >>>> swift-evolution at swift.org
> >>>> https://lists.swift.org/mailman/listinfo/swift-evolution
> >>>
> >>> _______________________________________________
> >>> swift-evolution mailing list
> >>> swift-evolution at swift.org
> >>> https://lists.swift.org/mailman/listinfo/swift-evolution
> >>
> >> _______________________________________________
> >> swift-evolution mailing list
> >> swift-evolution at swift.org
> >> https://lists.swift.org/mailman/listinfo/swift-evolution
> > _______________________________________________
> > swift-evolution mailing list
> > swift-evolution at swift.org
> > https://lists.swift.org/mailman/listinfo/swift-evolution
>


More information about the swift-evolution mailing list