Ray Rahke
02/21/2024, 10:21 AMFoo::class repeatedly is kind of annoying compared to just doing Foo in languages like Typescript/Python
val relevantTypes = List<Base>(SubA::class, SubB::class, SubC::class, SubD::class)
Is there a nicer way to do this?Shawn
02/21/2024, 4:22 PMinline and reified but you would need to write a function definition for each arity you needShawn
02/21/2024, 4:25 PMShawn
02/21/2024, 4:25 PMFoo in without qualification, it actually references the class's companion object if it existsShawn
02/21/2024, 4:41 PMRay Rahke
02/21/2024, 4:42 PMRay Rahke
02/21/2024, 4:42 PMRay Rahke
02/21/2024, 4:42 PMRay Rahke
02/21/2024, 4:42 PMRay Rahke
02/21/2024, 4:43 PMShawn
02/21/2024, 4:43 PMif (component is Transform)?Ray Rahke
02/21/2024, 4:43 PMRay Rahke
02/21/2024, 4:43 PMRay Rahke
02/21/2024, 4:43 PMRay Rahke
02/21/2024, 4:44 PMRay Rahke
02/21/2024, 4:44 PMRay Rahke
02/21/2024, 4:44 PMRay Rahke
02/21/2024, 4:44 PMShawn
02/21/2024, 4:44 PMRay Rahke
02/21/2024, 4:44 PMShawn
02/21/2024, 4:44 PMRay Rahke
02/21/2024, 4:44 PMRay Rahke
02/21/2024, 4:45 PMRay Rahke
02/21/2024, 4:45 PMRay Rahke
02/21/2024, 4:46 PMShawn
02/21/2024, 4:46 PMRay Rahke
02/21/2024, 4:46 PMRay Rahke
02/21/2024, 4:46 PMRay Rahke
02/21/2024, 4:47 PMRay Rahke
02/21/2024, 4:47 PMRay Rahke
02/21/2024, 4:47 PMRay Rahke
02/21/2024, 4:47 PMRay Rahke
02/21/2024, 4:47 PMShawn
02/21/2024, 4:48 PMval name on Piece and have your classes implement it?Ray Rahke
02/21/2024, 4:49 PMRay Rahke
02/21/2024, 4:49 PMShawn
02/21/2024, 4:49 PMKClass may not be the correct abstraction for what you need, and that you may be better served more directly modeling the data required rather than relying on one that was written with entirely different goals in mindRay Rahke
02/21/2024, 4:49 PMRay Rahke
02/21/2024, 4:50 PMRay Rahke
02/21/2024, 4:50 PMKlitos Kyriacou
02/21/2024, 4:51 PMShawn
02/21/2024, 4:52 PMinstances.filterIsInstance<ClassImLookingFor>()Ray Rahke
02/21/2024, 4:52 PMComponent which is used everywher else in my program as the interface of which you should pass in sub classes instances (so liskov + DI)Shawn
02/21/2024, 4:53 PMRay Rahke
02/21/2024, 4:53 PMRay Rahke
02/21/2024, 4:53 PMShawn
02/21/2024, 4:58 PM.filter { it is Transform || it is RigidBody } at the call siteRay Rahke
02/21/2024, 4:58 PMRay Rahke
02/21/2024, 4:59 PMRay Rahke
02/21/2024, 4:59 PMRay Rahke
02/21/2024, 5:00 PMRay Rahke
02/21/2024, 5:00 PMRay Rahke
02/21/2024, 5:00 PMRay Rahke
02/21/2024, 5:01 PMShawn
02/21/2024, 5:02 PMRay Rahke
02/21/2024, 5:02 PMRay Rahke
02/21/2024, 5:02 PMRay Rahke
02/21/2024, 5:02 PMRay Rahke
02/21/2024, 5:03 PMRay Rahke
02/21/2024, 5:03 PMRay Rahke
02/21/2024, 5:04 PMRay Rahke
02/21/2024, 5:05 PMShawn
02/21/2024, 5:05 PMRay Rahke
02/21/2024, 5:05 PMRay Rahke
02/21/2024, 5:06 PMShawn
02/21/2024, 5:06 PMShawn
02/21/2024, 5:06 PMShawn
02/21/2024, 5:06 PMRay Rahke
02/21/2024, 5:06 PMRay Rahke
02/21/2024, 5:06 PMRay Rahke
02/21/2024, 5:06 PMRay Rahke
02/21/2024, 5:07 PMShawn
02/21/2024, 5:13 PMShawn
02/21/2024, 5:14 PMShawn
02/21/2024, 5:15 PMRay Rahke
02/21/2024, 5:15 PMRay Rahke
02/21/2024, 5:15 PMRay Rahke
02/21/2024, 5:16 PMRay Rahke
02/21/2024, 5:16 PMRay Rahke
02/21/2024, 5:16 PMRay Rahke
02/21/2024, 5:18 PMShawn
02/21/2024, 5:18 PMRay Rahke
02/21/2024, 5:19 PMRay Rahke
02/21/2024, 5:19 PMRay Rahke
02/21/2024, 5:21 PMRay Rahke
02/21/2024, 5:22 PMRay Rahke
02/21/2024, 5:23 PMRay Rahke
02/21/2024, 5:23 PMShawn
02/21/2024, 5:29 PMShawn
02/21/2024, 5:30 PMRay Rahke
02/21/2024, 5:43 PMRay Rahke
02/21/2024, 5:43 PMRay Rahke
02/21/2024, 5:43 PMPaul Griffith
02/22/2024, 5:03 PMtrackN extension function or anything to (abuse) reified types to get arbitrary resolution. You could manually write out the first few overloads, but they have to have different names for overload resolution, even in Kotlin, so it’s still a pretty awkward UX