emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[nongnu] elpa/geiser-kawa 5d8256d 041/119: Fix re-importing exception


From: Philip Kaludercic
Subject: [nongnu] elpa/geiser-kawa 5d8256d 041/119: Fix re-importing exception
Date: Sun, 1 Aug 2021 18:30:35 -0400 (EDT)

branch: elpa/geiser-kawa
commit 5d8256de35ab81363af37ef8abd8b3d60af65d1f
Author: spellcard199 <spellcard199@protonmail.com>
Commit: spellcard199 <spellcard199@protonmail.com>

    Fix re-importing exception
---
 src/main/java/kawageiser/Geiser.java | 60 ++++++++++++++++++++----------------
 1 file changed, 33 insertions(+), 27 deletions(-)

diff --git a/src/main/java/kawageiser/Geiser.java 
b/src/main/java/kawageiser/Geiser.java
index 7db7e5b..8b06efb 100644
--- a/src/main/java/kawageiser/Geiser.java
+++ b/src/main/java/kawageiser/Geiser.java
@@ -42,33 +42,39 @@ public class Geiser implements Runnable {
         // - type warnings: for the same reason of the previous point
         // - less boilerplate for checking argument types
         try {
-            lang.defineFunction(
-                    "geiser:eval",
-                    lang.eval("kawageiser.GeiserEval:evalStr"));
-            lang.defineFunction(
-                    "geiser:autodoc",
-                    lang.eval("kawageiser.GeiserAutodoc:autodoc"));
-            lang.defineFunction(
-                    "geiser:module-completions",
-                    
lang.eval("kawageiser.GeiserCompleteModule:completeModule"));
-            lang.defineFunction(
-                    "geiser:load-file",
-                    lang.eval("kawageiser.GeiserLoadFile:loadFile"));
-            lang.defineFunction(
-                    "geiser:completions",
-                    
lang.eval("kawageiser.GeiserCompleteSymbol:getCompletions"));
-            lang.defineFunction(
-                    "geiser:no-values",
-                    lang.eval("kawageiser.GeiserNoValues:noValues"));
-            lang.defineFunction(
-                    "geiser:complete-java",
-                    
lang.eval("kawageiser.java.GeiserCompleteJava:completeJava"));
-            lang.defineFunction(
-                    "geiser:manual-epub-unzip-to-tmp-dir",
-                    
lang.eval("kawageiser.geiserDoc.ManualEpubUnzipToTmpDir:unzipToTmpDir"));
-            lang.defineFunction(
-                    "geiser:macroexpand",
-                    lang.eval("kawageiser.GeiserMacroexpand:expand"));
+            if (lang.lookup("geiser:eval") == null) {
+                // The reason for this if block is that if someone re-imported 
this module
+                // and the following code was executed, this exception would 
happen:
+                // java.lang.IllegalStateException:
+                //   prohibited define/redefine of geiser:eval in 
#<environment kawa-environment>
+                lang.defineFunction(
+                        "geiser:eval",
+                        lang.eval("kawageiser.GeiserEval:evalStr"));
+                lang.defineFunction(
+                        "geiser:autodoc",
+                        lang.eval("kawageiser.GeiserAutodoc:autodoc"));
+                lang.defineFunction(
+                        "geiser:module-completions",
+                        
lang.eval("kawageiser.GeiserCompleteModule:completeModule"));
+                lang.defineFunction(
+                        "geiser:load-file",
+                        lang.eval("kawageiser.GeiserLoadFile:loadFile"));
+                lang.defineFunction(
+                        "geiser:completions",
+                        
lang.eval("kawageiser.GeiserCompleteSymbol:getCompletions"));
+                lang.defineFunction(
+                        "geiser:no-values",
+                        lang.eval("kawageiser.GeiserNoValues:noValues"));
+                lang.defineFunction(
+                        "geiser:complete-java",
+                        
lang.eval("kawageiser.java.GeiserCompleteJava:completeJava"));
+                lang.defineFunction(
+                        "geiser:manual-epub-unzip-to-tmp-dir",
+                        
lang.eval("kawageiser.geiserDoc.ManualEpubUnzipToTmpDir:unzipToTmpDir"));
+                lang.defineFunction(
+                        "geiser:macroexpand",
+                        lang.eval("kawageiser.GeiserMacroexpand:expand"));
+            }
         } catch (Throwable throwable) {
             throwable.printStackTrace();
         }



reply via email to

[Prev in Thread] Current Thread [Next in Thread]