aboutsummaryrefslogtreecommitdiff
path: root/stdlib/source/library/lux/target/jvm/reflection.lux
diff options
context:
space:
mode:
Diffstat (limited to 'stdlib/source/library/lux/target/jvm/reflection.lux')
-rw-r--r--stdlib/source/library/lux/target/jvm/reflection.lux18
1 files changed, 10 insertions, 8 deletions
diff --git a/stdlib/source/library/lux/target/jvm/reflection.lux b/stdlib/source/library/lux/target/jvm/reflection.lux
index e2297f313..50bb2b974 100644
--- a/stdlib/source/library/lux/target/jvm/reflection.lux
+++ b/stdlib/source/library/lux/target/jvm/reflection.lux
@@ -96,9 +96,11 @@
(getGenericParameterTypes [] [java/lang/reflect/Type])
(getGenericExceptionTypes [] [java/lang/reflect/Type])])
+(import: java/lang/ClassLoader)
+
(import: (java/lang/Class c)
["#::."
- (#static forName [java/lang/String] #try (java/lang/Class java/lang/Object))
+ (#static forName [java/lang/String boolean java/lang/ClassLoader] #try (java/lang/Class java/lang/Object))
(getName [] java/lang/String)
(getModifiers [] int)
(isAssignableFrom [(java/lang/Class java/lang/Object)] boolean)
@@ -123,20 +125,20 @@
[cannot_convert_to_a_lux_type]
)
-(def: #export (load name)
- (-> External (Try (java/lang/Class java/lang/Object)))
- (case (java/lang/Class::forName name)
+(def: #export (load class_loader name)
+ (-> java/lang/ClassLoader External (Try (java/lang/Class java/lang/Object)))
+ (case (java/lang/Class::forName name false class_loader)
(#try.Success class)
(#try.Success class)
(#try.Failure _)
(exception.throw ..unknown_class name)))
-(def: #export (sub? super sub)
- (-> External External (Try Bit))
+(def: #export (sub? class_loader super sub)
+ (-> java/lang/ClassLoader External External (Try Bit))
(do try.monad
- [super (..load super)
- sub (..load sub)]
+ [super (..load class_loader super)
+ sub (..load class_loader sub)]
(wrap (java/lang/Class::isAssignableFrom sub super))))
(def: (class' parameter reflection)