From 59408f817dd4ebe0c9a6f68b1f2bb1e332cbb1cc Mon Sep 17 00:00:00 2001 From: tricktron Date: Fri, 22 Jul 2022 21:55:22 +0200 Subject: [PATCH] Configure Frege Compiler Classpath with Environment Variable (#28) * WIP: how to make the frege compiler configurable explore the effort of reading a gradle plugin property with the gradle tooling api. * feat: add shouldCorrectlyConfigureExtraClasspath test Expose two environment variables to configure the frege compiler: - FREGE_LSP_SOURCE_DIR - FREGE_LSP_EXTRA_CLASSPATH * refactor: split compilerHelper into compileOptions, compileGlobal and compileExecutor modules --- build.gradle | 2 +- gradle.properties | 3 +- .../CompileExecutor.fr} | 77 +- .../compile/CompileGlobal.fr | 18 + .../compile/CompileOptions.fr | 31 + .../diagnostic/Diagnostic.fr | 13 +- .../diagnostic/DiagnosticLSP.fr | 3 - .../thga/fregelanguageserver/hover/Hover.fr | 10 +- .../FregeLanguageServer.java | 12 +- .../FregeTextDocumentService.java | 4 +- .../CompileExecutor.java} | 701 ++++++------- .../compile/CompileGlobal.java | 172 ++++ .../compile/CompileOptions.java | 187 ++++ .../diagnostic/Diagnostic.java | 819 ++++++++------- .../diagnostic/DiagnosticLSP.java | 113 +-- .../thga/fregelanguageserver/hover/Hover.java | 946 +++++++++--------- .../fregelanguageserver/hover/HoverLSP.java | 32 +- .../lsp4j/PositionLSP4J.java | 2 +- .../fregelanguageserver/lsp4j/RangeLSP4J.java | 2 +- .../fregelanguageserver/types/Position.java | 2 +- .../thga/fregelanguageserver/types/Range.java | 2 +- src/main/resources/HoverTest.fr | 3 - src/main/resources/fregefx-0.8.2-SNAPSHOT.jar | Bin 0 -> 287800 bytes 23 files changed, 1759 insertions(+), 1395 deletions(-) rename src/main/frege/ch/fhnw/thga/fregelanguageserver/{compiler/CompilerHelper.fr => compile/CompileExecutor.fr} (73%) create mode 100644 src/main/frege/ch/fhnw/thga/fregelanguageserver/compile/CompileGlobal.fr create mode 100644 src/main/frege/ch/fhnw/thga/fregelanguageserver/compile/CompileOptions.fr rename src/main/java/ch/fhnw/thga/fregelanguageserver/{compiler/CompilerHelper.java => compile/CompileExecutor.java} (89%) create mode 100644 src/main/java/ch/fhnw/thga/fregelanguageserver/compile/CompileGlobal.java create mode 100644 src/main/java/ch/fhnw/thga/fregelanguageserver/compile/CompileOptions.java delete mode 100644 src/main/resources/HoverTest.fr create mode 100644 src/main/resources/fregefx-0.8.2-SNAPSHOT.jar diff --git a/build.gradle b/build.gradle index 322bc7c..29d8f67 100644 --- a/build.gradle +++ b/build.gradle @@ -11,7 +11,6 @@ dependencies { implementation group: 'org.eclipse.lsp4j', name: 'org.eclipse.lsp4j', version: '0.12.0' frege group: 'org.eclipse.lsp4j', name: 'org.eclipse.lsp4j', version: '0.12.0' implementation files(compileFrege.fregeCompilerJar) - } application { @@ -31,6 +30,7 @@ frege mainSourceDir = layout.projectDirectory.dir('src/main/frege') testModules = [ + 'ch.fhnw.thga.fregelanguageserver.compile.CompileExecutor', 'ch.fhnw.thga.fregelanguageserver.diagnostic.Diagnostic', 'ch.fhnw.thga.fregelanguageserver.hover.Hover' ] diff --git a/gradle.properties b/gradle.properties index 190ab61..cd58d2d 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1 +1,2 @@ -version = 3.1.0-alpha \ No newline at end of file +version = 3.2.0-alpha +gradleVersion = 7.4.2 \ No newline at end of file diff --git a/src/main/frege/ch/fhnw/thga/fregelanguageserver/compiler/CompilerHelper.fr b/src/main/frege/ch/fhnw/thga/fregelanguageserver/compile/CompileExecutor.fr similarity index 73% rename from src/main/frege/ch/fhnw/thga/fregelanguageserver/compiler/CompilerHelper.fr rename to src/main/frege/ch/fhnw/thga/fregelanguageserver/compile/CompileExecutor.fr index 36ef1d7..8b7039d 100644 --- a/src/main/frege/ch/fhnw/thga/fregelanguageserver/compiler/CompilerHelper.fr +++ b/src/main/frege/ch/fhnw/thga/fregelanguageserver/compile/CompileExecutor.fr @@ -1,12 +1,13 @@ -module ch.fhnw.thga.fregelanguageserver.compiler.CompilerHelper where +module ch.fhnw.thga.fregelanguageserver.compile.CompileExecutor where -import frege.compiler.types.Targets public(thisTarget) +import ch.fhnw.thga.fregelanguageserver.compile.CompileGlobal +import ch.fhnw.thga.fregelanguageserver.compile.CompileOptions(standardCompileOptions) import Compiler.types.Global ( - Global, StIO, Options, Message, StG, SubSt, + Global, StIO, Message, StG, SubSt, liftIO, liftStG,getSTT, getST, forsome, stio, changeST ) import Compiler.common.CompilerOptions (standardGlobal, theClassLoader) -import Control.monad.State (StateT) +import Control.monad.State (StateT, execStateT) import Compiler.passes.Fix() import Compiler.passes.Imp() import Compiler.passes.Enter() @@ -28,34 +29,11 @@ import Compiler.common.Desugar import Compiler.types.Tokens import Compiler.enums.TokenID import Compiler.types.Packs +import Test.QuickCheck (Property, once, morallyDubiousIOProperty) instance Show Message where show msg = substr (show msg.level) 0 1 ++ " " ++ show msg.pos.first.tokid ++ show msg.pos.end ++ ": " ++ msg.text -lspOptions :: Options -lspOptions = Options - { - source = "-", - sourcePath = [ "." ], - dir = ".", - path = [], - prefix = "", - encoding = Just "UTF-8", - tRanges = [], - target = thisTarget, - extending = Nothing, - implementing = [], - code = [], - flags = Flags.fromList - [ - WARNINGS, - HINTS, - VERBOSE, - IDEMODE, - IDETOKENS - ] - } - passes = [ (liftStG Fix.pass, "join definitions"), @@ -76,32 +54,23 @@ passes = (liftStG FI.cleanSymtab, "clean up") ] -lspGlobal :: IO Global -lspGlobal = do - initialLoader <- theClassLoader lspOptions - initialGlobal <- standardGlobal - pure initialGlobal. { - options = lspOptions, - sub <- SubSt. { loader = initialLoader } - } - switchState :: Global -> StG Global switchState new = do old <- getST StG.put new return old -lexParseLSP :: String -> StG Global -lexParseLSP fregeCode = do +lexParseSourceCode :: String -> StG Global +lexParseSourceCode fregeCode = do g <- getST - lexPassLSP fregeCode + lexPassSourceCode fregeCode parsePass gc <- switchState g changeST _.{ sub <- _.{ numErrors <- (gc.errors +) } } return gc -lexPassLSP :: String -> StG (String, Int) -lexPassLSP fregeCode = do +lexPassSourceCode :: String -> StG (String, Int) +lexPassSourceCode fregeCode = do tokens <- L.passCS $ CharSequence.fromString fregeCode return ("tokens", length tokens) @@ -131,17 +100,35 @@ parsePass = do | otherwise = t : ideClean ts ideClean [] = [] -compileFregeFile :: String -> StIO Global -compileFregeFile fregeCode = do - lexParseState <- liftStG $ lexParseLSP fregeCode +private compileSourceCode :: String -> StIO Global +private compileSourceCode fregeCode = do + lexParseState <- liftStG $ lexParseSourceCode fregeCode StateT.put lexParseState forsome passes runpass g <- getSTT return g +compile :: String -> IO Global -> IO Global +compile fregeCode global = do + startGlobal <- global + execStateT (compileSourceCode fregeCode) startGlobal + runpass :: (StIO (String, Int), String) -> StIO () runpass (pass, description) = do state <- getSTT when (state.errors == 0) do (itemnm, items) <- pass return () + +shouldCorrectlyConfigureExtraClasspath :: Property +shouldCorrectlyConfigureExtraClasspath = once $ morallyDubiousIOProperty do + fregeCodeWithDependency = + "module FregeFxDep where\n\n"++ + "import fregefx.JavaFxType\n\n" ++ + "main = println \"Hello FregeFX\"" + fregefxGlobal = CompileGlobal.fromOptions standardCompileOptions. + { + path = [ "./src/main/resources/fregefx-0.8.2-SNAPSHOT.jar" ] + } + actual <- compile fregeCodeWithDependency fregefxGlobal + pure $ actual.errors == 0 diff --git a/src/main/frege/ch/fhnw/thga/fregelanguageserver/compile/CompileGlobal.fr b/src/main/frege/ch/fhnw/thga/fregelanguageserver/compile/CompileGlobal.fr new file mode 100644 index 0000000..b21f6f1 --- /dev/null +++ b/src/main/frege/ch/fhnw/thga/fregelanguageserver/compile/CompileGlobal.fr @@ -0,0 +1,18 @@ +module ch.fhnw.thga.fregelanguageserver.compile.CompileGlobal where + +import ch.fhnw.thga.fregelanguageserver.compile.CompileOptions(standardCompileOptions) + +import Compiler.types.Global (Global, Options, SubSt) +import Compiler.common.CompilerOptions (standardGlobal, theClassLoader) + +fromOptions :: Options -> IO Global +fromOptions opts = do + initialLoader <- theClassLoader opts + initialGlobal <- standardGlobal + pure initialGlobal. { + options = opts, + sub <- SubSt. { loader = initialLoader } + } + +standardCompileGlobal :: IO Global +standardCompileGlobal = fromOptions standardCompileOptions \ No newline at end of file diff --git a/src/main/frege/ch/fhnw/thga/fregelanguageserver/compile/CompileOptions.fr b/src/main/frege/ch/fhnw/thga/fregelanguageserver/compile/CompileOptions.fr new file mode 100644 index 0000000..c3bbb04 --- /dev/null +++ b/src/main/frege/ch/fhnw/thga/fregelanguageserver/compile/CompileOptions.fr @@ -0,0 +1,31 @@ +module ch.fhnw.thga.fregelanguageserver.compile.CompileOptions where +import Compiler.types.Global (Options) +import frege.compiler.types.Targets public(thisTarget) +import Compiler.enums.Flags + +getEnvDefault :: String -> String -> String +getEnvDefault defaultValue envName = maybe defaultValue id $ System.getenv envName + +standardCompileOptions :: Options +standardCompileOptions = Options + { + source = "-", + sourcePath = [ getEnvDefault "." "FREGE_LS_SOURCE_DIR" ], + dir = ".", + path = [ getEnvDefault "" "FREGE_LS_EXTRA_CLASSPATH" ], + prefix = "", + encoding = Just "UTF-8", + tRanges = [], + target = thisTarget, + extending = Nothing, + implementing = [], + code = [], + flags = Flags.fromList + [ + WARNINGS, + HINTS, + VERBOSE, + IDEMODE, + IDETOKENS + ] + } \ No newline at end of file diff --git a/src/main/frege/ch/fhnw/thga/fregelanguageserver/diagnostic/Diagnostic.fr b/src/main/frege/ch/fhnw/thga/fregelanguageserver/diagnostic/Diagnostic.fr index ee7c6e9..bbf839d 100644 --- a/src/main/frege/ch/fhnw/thga/fregelanguageserver/diagnostic/Diagnostic.fr +++ b/src/main/frege/ch/fhnw/thga/fregelanguageserver/diagnostic/Diagnostic.fr @@ -1,6 +1,7 @@ module ch.fhnw.thga.fregelanguageserver.diagnostic.Diagnostic where -import ch.fhnw.thga.fregelanguageserver.compiler.CompilerHelper (compileFregeFile, lspGlobal) +import ch.fhnw.thga.fregelanguageserver.compile.CompileGlobal (standardCompileGlobal) +import ch.fhnw.thga.fregelanguageserver.compile.CompileExecutor (compile) import ch.fhnw.thga.fregelanguageserver.types.Position (Position) import ch.fhnw.thga.fregelanguageserver.types.Range (Range, tokenToRange) import Compiler.types.Global (StG, StIO, Message, Global, Severity(), tokens, getST, liftStG, liftIO) @@ -68,8 +69,7 @@ extractDiagnostics = do compileAndGetDiagnostics :: String -> IO [ Diagnostic ] compileAndGetDiagnostics fregeCode = do - startGlobal <- lspGlobal - gl <- execStateT (compileFregeFile fregeCode) startGlobal + gl <- compile fregeCode standardCompileGlobal pure $ evalState (extractDiagnostics) gl fregeLSPServerShouldMapNoCompilerMessagesToEmptyArray :: Property @@ -92,7 +92,7 @@ fregeLSPServerShouldMapSingleCompilerMessageToDiagnostics = once $ morallyDubiou message = "Could not import module frege.does.not.Exist\n(java.lang.ClassNotFoundException: frege.does.not.Exist)" } ] - gl <- lspGlobal + gl <- standardCompileGlobal actual <- compileAndGetDiagnostics fregeCodeWithError pure $ expected == actual @@ -123,7 +123,7 @@ fregeLSPServerShouldMapMultipleCompilerMessageToDiagnostics = once $ morallyDubi message = "last statement in a monadic do block must not\nbe let decls" } ] - gl <- lspGlobal + gl <- standardCompileGlobal actual <- compileAndGetDiagnostics fregeCodeWithErrors pure $ expected == actual @@ -133,10 +133,9 @@ posToTokens (p:ps) gl = tokens p gl ++ posToTokens ps gl main :: IO () main = do - lspGlobal <- lspGlobal let fregeCode = "module ch.fhnw.thga.FaultyFregeTest where\n\nerr1 = do\n x = 42\n\nerr2 = [ 22.0 ] ++ \"42\"\n\nerr3 = 42 + \"42\"\n\n" let trickyFregeCode = "module FaultyFregeTest where\n\nsimplyString s = s\n\nerr1 = (simplyString 42) ++ \"test\"" - gl <- execStateT (compileFregeFile trickyFregeCode) lspGlobal + gl <- compile trickyFregeCode standardCompileGlobal println $ CharSequence.toString gl.sub.code for gl.sub.messages println let positions = map (Message.pos) gl.sub.messages diff --git a/src/main/frege/ch/fhnw/thga/fregelanguageserver/diagnostic/DiagnosticLSP.fr b/src/main/frege/ch/fhnw/thga/fregelanguageserver/diagnostic/DiagnosticLSP.fr index fd82b10..5f23d2f 100644 --- a/src/main/frege/ch/fhnw/thga/fregelanguageserver/diagnostic/DiagnosticLSP.fr +++ b/src/main/frege/ch/fhnw/thga/fregelanguageserver/diagnostic/DiagnosticLSP.fr @@ -1,11 +1,8 @@ module ch.fhnw.thga.fregelanguageserver.diagnostic.DiagnosticLSP where -import ch.fhnw.thga.fregelanguageserver.types.Position (Position) -import ch.fhnw.thga.fregelanguageserver.types.Range (Range) import ch.fhnw.thga.fregelanguageserver.diagnostic.Diagnostic ( DiagnosticSeverity, Diagnostic, compileAndGetDiagnostics) -import ch.fhnw.thga.fregelanguageserver.lsp4j.PositionLSP4J (PositionLSP) import ch.fhnw.thga.fregelanguageserver.lsp4j.RangeLSP4J (RangeLSP) data DiagnosticSeverityLSP = pure native org.eclipse.lsp4j.DiagnosticSeverity where diff --git a/src/main/frege/ch/fhnw/thga/fregelanguageserver/hover/Hover.fr b/src/main/frege/ch/fhnw/thga/fregelanguageserver/hover/Hover.fr index 1fc4213..e75177a 100644 --- a/src/main/frege/ch/fhnw/thga/fregelanguageserver/hover/Hover.fr +++ b/src/main/frege/ch/fhnw/thga/fregelanguageserver/hover/Hover.fr @@ -1,6 +1,7 @@ module ch.fhnw.thga.fregelanguageserver.hover.Hover where -import ch.fhnw.thga.fregelanguageserver.compiler.CompilerHelper (compileFregeFile, lspGlobal) +import ch.fhnw.thga.fregelanguageserver.compile.CompileGlobal (standardCompileGlobal) +import ch.fhnw.thga.fregelanguageserver.compile.CompileExecutor (compile) import ch.fhnw.thga.fregelanguageserver.types.Position (Position) import ch.fhnw.thga.fregelanguageserver.types.Range (Range, tokenToRange) @@ -60,8 +61,8 @@ tokenToQName t = do compileAndGetTypeSignatureOnHover :: String -> Position -> IO (Maybe Hover) compileAndGetTypeSignatureOnHover fregeCode pos = do - startGlobal <- lspGlobal - gl <- execStateT (compileFregeFile fregeCode) startGlobal + startGlobal <- standardCompileGlobal + gl <- compile fregeCode standardCompileGlobal pure $ evalStateT (getTypeOnHover pos) gl getTypeOnHover :: Position -> StateT Global Maybe Hover @@ -144,7 +145,6 @@ shouldShowImportedConidDataConstructor = once $ morallyDubiousIOProperty do main :: IO () main = do - lspGlobal <- lspGlobal let fregeCode = "module HoverTest where\n\n" ++ "import frege.compiler.Main(runpass)\n\n" ++ "pass = runpass\n" ++ "me = 42\n\n" @@ -152,7 +152,7 @@ main = do let simpleFregeCode = "module HoverTest where\n\n" ++ "data MyMaybe a = MyNothing | MyJust a\n" ++ "res = MyJust 42" - gl <- execStateT (compileFregeFile fregeCode) lspGlobal + gl <- compile fregeCode standardCompileGlobal println $ CharSequence.toString gl.sub.code tokens = listFromArray gl.sub.toks for tokens println diff --git a/src/main/java/ch/fhnw/thga/fregelanguageserver/FregeLanguageServer.java b/src/main/java/ch/fhnw/thga/fregelanguageserver/FregeLanguageServer.java index 9903260..7ddd1ae 100644 --- a/src/main/java/ch/fhnw/thga/fregelanguageserver/FregeLanguageServer.java +++ b/src/main/java/ch/fhnw/thga/fregelanguageserver/FregeLanguageServer.java @@ -14,16 +14,20 @@ public class FregeLanguageServer implements LanguageServer, LanguageClientAware { - private TextDocumentService textService; - private WorkspaceService workspaceService; - LanguageClient client; - + private final TextDocumentService textService; + private final WorkspaceService workspaceService; + private LanguageClient client; public FregeLanguageServer() { textService = new FregeTextDocumentService(this); workspaceService = new FregeWorkspaceService(); } + public LanguageClient getClient() + { + return client; + } + @Override public CompletableFuture initialize(InitializeParams params) { diff --git a/src/main/java/ch/fhnw/thga/fregelanguageserver/FregeTextDocumentService.java b/src/main/java/ch/fhnw/thga/fregelanguageserver/FregeTextDocumentService.java index b79eefb..a8736d0 100644 --- a/src/main/java/ch/fhnw/thga/fregelanguageserver/FregeTextDocumentService.java +++ b/src/main/java/ch/fhnw/thga/fregelanguageserver/FregeTextDocumentService.java @@ -46,7 +46,7 @@ public void didOpen(DidOpenTextDocumentParams params) .collect(Collectors.toList()); DiagnosticService.publishCompilerDiagnostics( - simpleLanguageServer.client, + simpleLanguageServer.getClient(), currentOpenFileContents, params.getTextDocument().getUri() ); @@ -74,7 +74,7 @@ public void didClose(DidCloseTextDocumentParams params) public void didSave(DidSaveTextDocumentParams params) { DiagnosticService.publishCompilerDiagnostics( - simpleLanguageServer.client, + simpleLanguageServer.getClient(), currentOpenFileContents, params.getTextDocument().getUri() ); diff --git a/src/main/java/ch/fhnw/thga/fregelanguageserver/compiler/CompilerHelper.java b/src/main/java/ch/fhnw/thga/fregelanguageserver/compile/CompileExecutor.java similarity index 89% rename from src/main/java/ch/fhnw/thga/fregelanguageserver/compiler/CompilerHelper.java rename to src/main/java/ch/fhnw/thga/fregelanguageserver/compile/CompileExecutor.java index 973b85a..0cbbe38 100644 --- a/src/main/java/ch/fhnw/thga/fregelanguageserver/compiler/CompilerHelper.java +++ b/src/main/java/ch/fhnw/thga/fregelanguageserver/compile/CompileExecutor.java @@ -3,11 +3,11 @@ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ ς σ τ υ φ χ ψ ω « • ¦ » ∀ ∃ ∷ … → ← fi fl ƒ If you can't read this, you're out of luck. This code was generated with the frege compiler version 3.25.84 from - /Users/tricktron/github/master/frege-lsp-server/src/main/frege/ch/fhnw/thga/fregelanguageserver/compiler/CompilerHelper.fr + /Users/tricktron/github/master/frege-lsp-server/src/main/frege/ch/fhnw/thga/fregelanguageserver/compile/CompileExecutor.fr Do not edit this file! Instead, edit the source file and recompile. */ -package ch.fhnw.thga.fregelanguageserver.compiler; +package ch.fhnw.thga.fregelanguageserver.compile; import frege.run8.Func; import frege.run8.Lazy; @@ -16,6 +16,8 @@ import frege.run.RunTM; import frege.runtime.Meta; import frege.runtime.Phantom.RealWorld; +import ch.fhnw.thga.fregelanguageserver.compile.CompileGlobal; +import ch.fhnw.thga.fregelanguageserver.compile.CompileOptions; import frege.Prelude; import frege.Version; import frege.compiler.Classes; @@ -95,6 +97,7 @@ import frege.control.monad.trans.MonadIO; import frege.control.monad.trans.MonadTrans; import frege.data.Bits; +import frege.data.Char; import frege.data.Foldable; import frege.data.Graph; import frege.data.List; @@ -120,81 +123,93 @@ import frege.prelude.PreludeList; import frege.prelude.PreludeMonad; import frege.prelude.PreludeText; +import frege.system.Random; +import frege.test.QuickCheck; +import frege.test.QuickCheckArbitrary; +import frege.test.QuickCheckException; +import frege.test.QuickCheckGen; +import frege.test.QuickCheckModifiers; +import frege.test.QuickCheckProperty; +import frege.test.QuickCheckState; +import frege.test.QuickCheckTest; +import frege.test.QuickCheckText; @SuppressWarnings("unused") @Meta.FregePackage( - source="/Users/tricktron/github/master/frege-lsp-server/src/main/frege/ch/fhnw/thga/fregelanguageserver/compiler/CompilerHelper.fr", - time=1657911865336L, jmajor=11, jminor=-1, + source="/Users/tricktron/github/master/frege-lsp-server/src/main/frege/ch/fhnw/thga/fregelanguageserver/compile/CompileExecutor.fr", + time=1658516065400L, jmajor=11, jminor=-1, imps={ - "frege.compiler.Classes", "frege.compiler.common.CompilerOptions", "frege.compiler.common.Desugar", - "frege.compiler.passes.Easy", "frege.compiler.passes.Enter", "frege.compiler.grammar.Frege", - "frege.compiler.passes.Final", "frege.compiler.passes.Fields", "frege.compiler.passes.Fix", - "frege.compiler.enums.Flags", "frege.compiler.passes.GlobalLam", "frege.compiler.types.Global", - "frege.compiler.passes.Imp", "frege.compiler.passes.Instances", "frege.compiler.grammar.Lexer", - "frege.compiler.passes.LetUnroll", "frege.compiler.types.Packs", "frege.Prelude", "frege.prelude.PreludeArrays", - "frege.prelude.PreludeBase", "frege.prelude.PreludeDecimal", "frege.prelude.PreludeIO", "frege.prelude.PreludeList", - "frege.prelude.PreludeMonad", "frege.prelude.PreludeText", "frege.java.util.Regex", "frege.compiler.passes.Strict", - "frege.control.monad.State", "frege.compiler.Typecheck", "frege.compiler.types.Targets", - "frege.compiler.enums.TokenID", "frege.compiler.types.Tokens", "frege.compiler.passes.Transdef", - "frege.compiler.passes.TypeAlias" + "frege.compiler.Classes", "ch.fhnw.thga.fregelanguageserver.compile.CompileGlobal", + "ch.fhnw.thga.fregelanguageserver.compile.CompileOptions", "frege.compiler.common.CompilerOptions", + "frege.compiler.common.Desugar", "frege.compiler.passes.Easy", "frege.compiler.passes.Enter", + "frege.compiler.grammar.Frege", "frege.compiler.passes.Final", "frege.compiler.passes.Fields", + "frege.compiler.passes.Fix", "frege.compiler.enums.Flags", "frege.compiler.passes.GlobalLam", + "frege.compiler.types.Global", "frege.compiler.passes.Imp", "frege.compiler.passes.Instances", + "frege.compiler.grammar.Lexer", "frege.compiler.passes.LetUnroll", "frege.compiler.types.Packs", "frege.Prelude", + "frege.prelude.PreludeArrays", "frege.prelude.PreludeBase", "frege.prelude.PreludeDecimal", + "frege.prelude.PreludeIO", "frege.prelude.PreludeList", "frege.prelude.PreludeMonad", "frege.prelude.PreludeText", + "frege.test.QuickCheck", "frege.java.util.Regex", "frege.compiler.passes.Strict", "frege.control.monad.State", + "frege.compiler.Typecheck", "frege.compiler.enums.TokenID", "frege.compiler.types.Tokens", + "frege.compiler.passes.Transdef", "frege.compiler.passes.TypeAlias" }, nmss={ - "Classes", "CompilerOptions", "Desugar", "EA", "Enter", "F", "FI", "Fields", "Fix", - "Flags", "GL", "Global", "Imp", "Instances", "L", "LU", "Packs", "Prelude", "PreludeArrays", - "PreludeBase", "PreludeDecimal", "PreludeIO", "PreludeList", "PreludeMonad", "PreludeText", - "Regexp", "SC", "State", "TC", "Targets", "TokenID", "Tokens", "Transdef", "TypeAlias" + "Classes", "CompileGlobal", "CompileOptions", "CompilerOptions", "Desugar", "EA", + "Enter", "F", "FI", "Fields", "Fix", "Flags", "GL", "Global", "Imp", "Instances", "L", + "LU", "Packs", "Prelude", "PreludeArrays", "PreludeBase", "PreludeDecimal", "PreludeIO", + "PreludeList", "PreludeMonad", "PreludeText", "QuickCheck", "Regexp", "SC", "State", + "TC", "TokenID", "Tokens", "Transdef", "TypeAlias" }, symas={}, symcs={}, symis={ @Meta.SymI( - offset=1077, - name=@Meta.QName(kind=0, pack="ch.fhnw.thga.fregelanguageserver.compiler.CompilerHelper", base="Show_Message"), + offset=1240, + name=@Meta.QName(kind=0, pack="ch.fhnw.thga.fregelanguageserver.compile.CompileExecutor", base="Show_Message"), clas=@Meta.QName(kind=0, pack="frege.prelude.PreludeText", base="Show"), typ=0, lnks={}, funs={ @Meta.SymV( - offset=1077, + offset=1240, name=@Meta.QName( - kind=2, pack="ch.fhnw.thga.fregelanguageserver.compiler.CompilerHelper", base="Show_Message", + kind=2, pack="ch.fhnw.thga.fregelanguageserver.compile.CompileExecutor", base="Show_Message", member="showsub" ), stri="s(s)", sig=1, depth=1, rkind=13, doc="inherited from 'Show.showsub'" ), @Meta.SymV( - offset=1077, + offset=1240, name=@Meta.QName( - kind=2, pack="ch.fhnw.thga.fregelanguageserver.compiler.CompilerHelper", base="Show_Message", + kind=2, pack="ch.fhnw.thga.fregelanguageserver.compile.CompileExecutor", base="Show_Message", member="showList" ), stri="s(ss)", sig=4, depth=2, rkind=13, doc="inherited from 'Show.showList'" ), @Meta.SymV( - offset=1077, + offset=1240, name=@Meta.QName( - kind=2, pack="ch.fhnw.thga.fregelanguageserver.compiler.CompilerHelper", base="Show_Message", + kind=2, pack="ch.fhnw.thga.fregelanguageserver.compile.CompileExecutor", base="Show_Message", member="showsPrec" ), stri="s(uss)", sig=6, depth=3, rkind=13, doc="inherited from 'Show.showsPrec'" ), @Meta.SymV( - offset=1077, + offset=1240, name=@Meta.QName( - kind=2, pack="ch.fhnw.thga.fregelanguageserver.compiler.CompilerHelper", base="Show_Message", + kind=2, pack="ch.fhnw.thga.fregelanguageserver.compile.CompileExecutor", base="Show_Message", member="display" ), stri="s(s)", sig=1, depth=1, rkind=13, doc="inherited from 'Show.display'" ), @Meta.SymV( - offset=1107, + offset=1270, name=@Meta.QName( - kind=2, pack="ch.fhnw.thga.fregelanguageserver.compiler.CompilerHelper", base="Show_Message", + kind=2, pack="ch.fhnw.thga.fregelanguageserver.compile.CompileExecutor", base="Show_Message", member="show" ), stri="s(s)", sig=1, depth=1, rkind=13 ), @Meta.SymV( - offset=1077, + offset=1240, name=@Meta.QName( - kind=2, pack="ch.fhnw.thga.fregelanguageserver.compiler.CompilerHelper", base="Show_Message", + kind=2, pack="ch.fhnw.thga.fregelanguageserver.compile.CompileExecutor", base="Show_Message", member="showChars" ), stri="s(s)", sig=7, depth=1, rkind=13, doc="inherited from 'Show.showChars'" @@ -205,51 +220,45 @@ symts={}, symvs={ @Meta.SymV( - offset=3284, - name=@Meta.QName(pack="ch.fhnw.thga.fregelanguageserver.compiler.CompilerHelper", base="switchState"), + offset=2580, + name=@Meta.QName(pack="ch.fhnw.thga.fregelanguageserver.compile.CompileExecutor", base="switchState"), stri="s(u)", sig=9, depth=1, rkind=13 ), @Meta.SymV( - offset=5108, name=@Meta.QName(pack="ch.fhnw.thga.fregelanguageserver.compiler.CompilerHelper", base="runpass"), - stri="s(s(uu))", sig=11, depth=1, rkind=13 + offset=4809, + name=@Meta.QName( + pack="ch.fhnw.thga.fregelanguageserver.compile.CompileExecutor", base="shouldCorrectlyConfigureExtraClasspath" + ), + stri="u", sig=10, depth=0, rkind=8 ), @Meta.SymV( - offset=1851, name=@Meta.QName(pack="ch.fhnw.thga.fregelanguageserver.compiler.CompilerHelper", base="passes"), - stri="u", sig=12, depth=0, rkind=8 + offset=4622, name=@Meta.QName(pack="ch.fhnw.thga.fregelanguageserver.compile.CompileExecutor", base="runpass"), + stri="s(s(uu))", sig=12, depth=1, rkind=13 ), @Meta.SymV( - offset=3771, name=@Meta.QName(pack="ch.fhnw.thga.fregelanguageserver.compiler.CompilerHelper", base="parsePass"), - stri="s", sig=13, depth=0, rkind=13 + offset=1385, name=@Meta.QName(pack="ch.fhnw.thga.fregelanguageserver.compile.CompileExecutor", base="passes"), + stri="u", sig=13, depth=0, rkind=8 ), @Meta.SymV( - offset=3046, name=@Meta.QName(pack="ch.fhnw.thga.fregelanguageserver.compiler.CompilerHelper", base="lspGlobal"), - stri="u", sig=14, depth=0, rkind=8 + offset=3102, name=@Meta.QName(pack="ch.fhnw.thga.fregelanguageserver.compile.CompileExecutor", base="parsePass"), + stri="s", sig=14, depth=0, rkind=13 ), @Meta.SymV( - offset=1222, name=@Meta.QName(pack="ch.fhnw.thga.fregelanguageserver.compiler.CompilerHelper", base="lspOptions"), - stri="u", sig=15, depth=0, rkind=8 + offset=2923, + name=@Meta.QName(pack="ch.fhnw.thga.fregelanguageserver.compile.CompileExecutor", base="lexPassSourceCode"), + stri="s(s)", sig=15, depth=1, rkind=13 ), @Meta.SymV( - offset=3606, name=@Meta.QName(pack="ch.fhnw.thga.fregelanguageserver.compiler.CompilerHelper", base="lexPassLSP"), + offset=2686, + name=@Meta.QName(pack="ch.fhnw.thga.fregelanguageserver.compile.CompileExecutor", base="lexParseSourceCode"), stri="s(s)", sig=16, depth=1, rkind=13 ), @Meta.SymV( - offset=3390, - name=@Meta.QName(pack="ch.fhnw.thga.fregelanguageserver.compiler.CompilerHelper", base="lexParseLSP"), - stri="s(s)", sig=17, depth=1, rkind=13 - ), - @Meta.SymV( - offset=4895, - name=@Meta.QName(pack="ch.fhnw.thga.fregelanguageserver.compiler.CompilerHelper", base="compileFregeFile"), - stri="s(u)", sig=18, depth=1, rkind=13 - ) - }, - symls={ - @Meta.SymL( - offset=114, name=@Meta.QName(pack="ch.fhnw.thga.fregelanguageserver.compiler.CompilerHelper", base="thisTarget"), - alias=@Meta.QName(pack="frege.compiler.types.Targets", base="thisTarget") + offset=4464, name=@Meta.QName(pack="ch.fhnw.thga.fregelanguageserver.compile.CompileExecutor", base="compile"), + stri="s(us)", sig=18, depth=2, rkind=13 ) }, + symls={}, taus={ @Meta.Tau(kind=2, suba=0, tcon={@Meta.QName(kind=0, pack="frege.compiler.types.Global", base="Message")}), @Meta.Tau(kind=2, suba=0, tcon={@Meta.QName(kind=0, pack="frege.prelude.PreludeBase", base="StringJ")}), @@ -262,40 +271,41 @@ @Meta.Tau(kind=2, suba=0, tcon={@Meta.QName(kind=0, pack="frege.compiler.types.Global", base="Global")}), @Meta.Tau(kind=2, suba=0, tcon={@Meta.QName(kind=0, pack="frege.control.monad.State", base="State")}), @Meta.Tau(kind=0, suba=9, subb=8), @Meta.Tau(kind=0, suba=10, subb=8), + @Meta.Tau(kind=2, suba=0, tcon={@Meta.QName(kind=0, pack="frege.test.QuickCheckGen", base="Gen")}), + @Meta.Tau(kind=2, suba=0, tcon={@Meta.QName(kind=0, pack="frege.test.QuickCheckProperty", base="Prop")}), + @Meta.Tau(kind=0, suba=12, subb=13), @Meta.Tau(kind=2, suba=0, tcon={@Meta.QName(kind=0, pack="frege.prelude.PreludeBase", base="(,)")}), @Meta.Tau(kind=2, suba=0, tcon={@Meta.QName(kind=0, pack="frege.control.monad.State", base="StateT")}), - @Meta.Tau(kind=0, suba=13, subb=8), + @Meta.Tau(kind=0, suba=16, subb=8), @Meta.Tau(kind=2, suba=0, tcon={@Meta.QName(kind=0, pack="frege.prelude.PreludeBase", base="ST")}), @Meta.Tau(kind=2, suba=0, tcon={@Meta.QName(kind=0, pack="frege.prelude.PreludeBase", base="RealWorld")}), - @Meta.Tau(kind=0, suba=15, subb=16), @Meta.Tau(kind=0, suba=14, subb=17), @Meta.Tau(kind=0, suba=12, subb=3), - @Meta.Tau(kind=0, suba=19, subb=6), @Meta.Tau(kind=0, suba=18, subb=20), @Meta.Tau(kind=0, suba=12, subb=21), - @Meta.Tau(kind=0, suba=22, subb=3), + @Meta.Tau(kind=0, suba=18, subb=19), @Meta.Tau(kind=0, suba=17, subb=20), @Meta.Tau(kind=0, suba=15, subb=3), + @Meta.Tau(kind=0, suba=22, subb=6), @Meta.Tau(kind=0, suba=21, subb=23), @Meta.Tau(kind=0, suba=15, subb=24), + @Meta.Tau(kind=0, suba=25, subb=3), @Meta.Tau(kind=2, suba=0, tcon={@Meta.QName(kind=0, pack="frege.prelude.PreludeBase", base="()")}), - @Meta.Tau(kind=0, suba=18, subb=24), @Meta.Tau(kind=0, suba=4, subb=23), @Meta.Tau(kind=0, suba=10, subb=20), - @Meta.Tau(kind=0, suba=17, subb=8), - @Meta.Tau(kind=2, suba=0, tcon={@Meta.QName(kind=0, pack="frege.compiler.types.Global", base="Options")}), - @Meta.Tau(kind=0, suba=18, subb=8) + @Meta.Tau(kind=0, suba=21, subb=27), @Meta.Tau(kind=0, suba=4, subb=26), @Meta.Tau(kind=0, suba=10, subb=23), + @Meta.Tau(kind=0, suba=20, subb=8) }, rhos={ @Meta.Rho(rhofun=false, rhotau=0), @Meta.Rho(rhofun=false, rhotau=3), @Meta.Rho(sigma=0, rhotau=1), @Meta.Rho(rhofun=false, rhotau=5), @Meta.Rho(sigma=3, rhotau=1), @Meta.Rho(sigma=2, rhotau=4), @Meta.Rho(rhofun=false, rhotau=6), @Meta.Rho(sigma=0, rhotau=4), @Meta.Rho(sigma=5, rhotau=7), @Meta.Rho(rhofun=false, rhotau=7), @Meta.Rho(sigma=0, rhotau=9), @Meta.Rho(rhofun=false, rhotau=8), - @Meta.Rho(rhofun=false, rhotau=11), @Meta.Rho(sigma=8, rhotau=12), @Meta.Rho(rhofun=false, rhotau=23), - @Meta.Rho(rhofun=false, rhotau=25), @Meta.Rho(sigma=10, rhotau=15), @Meta.Rho(rhofun=false, rhotau=26), - @Meta.Rho(rhofun=false, rhotau=27), @Meta.Rho(rhofun=false, rhotau=28), @Meta.Rho(rhofun=false, rhotau=29), - @Meta.Rho(sigma=3, rhotau=18), @Meta.Rho(sigma=3, rhotau=12), @Meta.Rho(rhofun=false, rhotau=30), + @Meta.Rho(rhofun=false, rhotau=11), @Meta.Rho(sigma=8, rhotau=12), @Meta.Rho(rhofun=false, rhotau=14), + @Meta.Rho(rhofun=false, rhotau=26), @Meta.Rho(rhofun=false, rhotau=28), @Meta.Rho(sigma=11, rhotau=16), + @Meta.Rho(rhofun=false, rhotau=29), @Meta.Rho(rhofun=false, rhotau=30), @Meta.Rho(sigma=3, rhotau=19), + @Meta.Rho(sigma=3, rhotau=12), @Meta.Rho(rhofun=false, rhotau=31), @Meta.Rho(sigma=17, rhotau=22), @Meta.Rho(sigma=3, rhotau=23) }, sigmas={ @Meta.Sigma(rho=0), @Meta.Sigma(rho=2), @Meta.Sigma(rho=3), @Meta.Sigma(rho=1), @Meta.Sigma(rho=5), @Meta.Sigma(rho=6), @Meta.Sigma(rho=8), @Meta.Sigma(rho=10), @Meta.Sigma(rho=11), @Meta.Sigma(rho=13), - @Meta.Sigma(rho=14), @Meta.Sigma(rho=16), @Meta.Sigma(rho=17), @Meta.Sigma(rho=18), @Meta.Sigma(rho=19), + @Meta.Sigma(rho=14), @Meta.Sigma(rho=15), @Meta.Sigma(rho=17), @Meta.Sigma(rho=18), @Meta.Sigma(rho=19), @Meta.Sigma(rho=20), @Meta.Sigma(rho=21), @Meta.Sigma(rho=22), @Meta.Sigma(rho=24) }, exprs={@Meta.Expr()} ) -final public class CompilerHelper { +final public class CompileExecutor { @@ -333,9 +343,9 @@ public IShow_Message() {} return "[" + (PreludeText.joined( Thunk.*/>lazy(", "), PreludeList.*/, Global.TMessage>map( - (Func.U*/>)((final Lazy η$17365) -> Thunk.< + (Func.U*/>)((final Lazy η$19309) -> Thunk.< String/**/ - >shared((Lazy*/>)(() -> IShow_Message.show(η$17365.call())))), + >shared((Lazy*/>)(() -> IShow_Message.show(η$19309.call())))), arg$1 ) ).call() + ("]" + arg$2)); @@ -363,17 +373,17 @@ final public static PreludeBase.TList showChars(final Global.TMessage final public static State.TState switchState(final Lazy arg$1) { return State.TState.mk( (Func.U>)(( - final Lazy arg$17366 + final Lazy arg$19310 ) -> { - final Global.TGlobal v7690$16286 = arg$17366.call(); - final State.TState $17368 = State.TState.put( + final Global.TGlobal v7690$18216 = arg$19310.call(); + final State.TState $19312 = State.TState.put( arg$1 ); - final Func.U> v8822$16322 = - $17368.mem$fun; - final PreludeBase.TTuple2 $17370 = v8822$16322 - .apply(v7690$16286).call(); - return PreludeBase.TTuple2.mk(v7690$16286, $17370.mem2); + final Func.U> v8822$18252 = + $19312.mem$fun; + final PreludeBase.TTuple2 $19314 = v8822$18252 + .apply(v7690$18216).call(); + return PreludeBase.TTuple2.mk(v7690$18216, $19314.mem2); }) ); } @@ -385,28 +395,28 @@ final public static State.TState switchState(fin ) { return State.TStateT., Short>mk( (Func.U, PreludeBase.TTuple2>>)(( - final Lazy arg$17371 + final Lazy arg$19315 ) -> { return Thunk., PreludeBase.TTuple2>>lazy( (Kind.U, PreludeBase.TTuple2>)(Func.U< RealWorld, PreludeBase.TTuple2 - >)((final Lazy arg$17372) -> { - final PreludeBase.TTuple2 v2056$16393 = + >)((final Lazy arg$19316) -> { + final PreludeBase.TTuple2 v2056$18359 = PreludeMonad.IMonad_ST.>pure( PreludeBase.TTuple2.mk( - arg$17371, arg$17371 + arg$19315, arg$19315 ) - ).apply(arg$17372).call(); - final Global.TGlobal v7737$16361 = v2056$16393.mem1 + ).apply(arg$19316).call(); + final Global.TGlobal v7737$18327 = v2056$18359.mem1 .call(); final State.TStateT< Global.TGlobal, Func.U, PreludeBase.TTuple2*/, Integer> - > $17375 = arg$1.mem1.call(); - if (Global.TGlobal.errors(v7737$16361) == 0) { + > $19319 = arg$1.mem1.call(); + if (Global.TGlobal.errors(v7737$18327) == 0) { final Func.U< RealWorld, PreludeBase.TTuple2*/, Integer>, Global.TGlobal> - > v2053$16513 = RunTM.< + > v2053$18479 = RunTM.< Func.U< Global.TGlobal, Func.U< @@ -416,33 +426,33 @@ final public static State.TState switchState(fin > > > - >cast($17375.mem$run).apply(v2056$16393.mem2).call(); + >cast($19319.mem$run).apply(v2056$18359.mem2).call(); final PreludeBase.TTuple2< PreludeBase.TTuple2*/, Integer>, Global.TGlobal - > v2056$16515 = v2053$16513.apply(arg$17372).call(); - final PreludeBase.TTuple2*/, Integer> v7737$16516 = - v2056$16515.mem1.call(); - final Func.U> v2057$16521 = + > v2056$18481 = v2053$18479.apply(arg$19316).call(); + final PreludeBase.TTuple2*/, Integer> v7737$18482 = + v2056$18481.mem1.call(); + final Func.U> v2057$18487 = PreludeMonad.IMonad_ST.>pure( PreludeBase.TTuple2.mk( - Thunk.lazy(PreludeBase.TUnit.Unit), v2056$16515.mem2 + Thunk.lazy(PreludeBase.TUnit.Unit), v2056$18481.mem2 ) ); return Thunk.>nested( - (Lazy>>)(() -> v2057$16521 - .apply(arg$17372)) + (Lazy>>)(() -> v2057$18487 + .apply(arg$19316)) ); } else { - final Func.U> v2057$16527 = + final Func.U> v2057$18493 = PreludeMonad.IMonad_ST.>pure( PreludeBase.TTuple2.mk( - Thunk.lazy(PreludeBase.TUnit.Unit), v2056$16393.mem2 + Thunk.lazy(PreludeBase.TUnit.Unit), v2056$18359.mem2 ) ); return Thunk.>nested( - (Lazy>>)(() -> v2057$16527 - .apply(arg$17372)) + (Lazy>>)(() -> v2057$18493 + .apply(arg$19316)) ); } }) @@ -1553,112 +1563,31 @@ final public static State.TState switchState(fin ); }) ); -final public static Lazy lspOptions = Thunk.shared( - (Lazy)(() -> { - return Global.TOptions.mk( - "-", - PreludeBase.TList.DCons.*/>mk( - Thunk.*/>lazy("."), PreludeBase.TList.DList.*/>mk() - ), - (long)Bits.TBitSet.fromList( - Flags.IEnum_Flag.it, - PreludeBase.TList.DCons.mk( - Thunk.lazy(Flags.TFlag.WARNINGS), - PreludeBase.TList.DCons.mk( - Thunk.lazy(Flags.TFlag.HINTS), - PreludeBase.TList.DCons.mk( - Thunk.lazy(Flags.TFlag.VERBOSE), - PreludeBase.TList.DCons.mk( - Thunk.lazy(Flags.TFlag.IDEMODE), - PreludeBase.TList.DCons.mk( - Thunk.lazy(Flags.TFlag.IDETOKENS), - PreludeBase.TList.DList.mk() - ) - ) - ) - ) - ) - ), - ".", PreludeBase.TList.DList.*/>mk(), "", - PreludeBase.TMaybe.DJust.*/>mk(Thunk.*/>lazy("UTF-8")), - PreludeBase.TList.DList.>mk(), Targets.thisTarget.call(), - PreludeBase.TMaybe.DNothing.>mk(), - PreludeBase.TList.DList.>mk(), - PreludeBase.TList.DList.mk() - ); - }) - ); -final public static Lazy> lspGlobal = Thunk.>shared( - (Lazy>)(() -> { - return (Func.U)((final Lazy arg$17381) -> { - final java.net.URLClassLoader v2056$16843 = CompilerOptions.theClassLoader( - CompilerHelper.lspOptions.call() - ).apply(arg$17381).call(); - final Func.U v2053$16862 = CompilerOptions.standardGlobal - .call(); - final Global.TGlobal v2056$16865 = v2053$16862.apply(arg$17381) - .call(); - final Func.U v2057$16866 = PreludeMonad.IMonad_ST.< - RealWorld, Global.TGlobal - >pure( - Thunk.shared( - (Lazy)(() -> Global.TGlobal.chg$sub( - Global.TGlobal.upd$options(v2056$16865, CompilerHelper.lspOptions.call()), - (Func.U)(( - final Lazy η$17385 - ) -> Thunk.nested( - (Lazy>)(() -> PreludeBase.< - Global.TSubSt, Global.TSubSt, java.net.URLClassLoader - >flip( - (Func.U< - Global.TSubSt, Func.U - >)((final Lazy η$17386) -> (Func.U< - java.net.URLClassLoader, Global.TSubSt - >)((final Lazy η$17387) -> Thunk.< - Global.TSubSt - >shared( - (Lazy)(() -> Global.TSubSt.upd$loader( - η$17386 - .call(), - η$17387 - .call() - )) - ))), - Thunk.lazy(v2056$16843), η$17385 - )) - )) - )) - ) - ); - return Thunk.nested((Lazy>)(() -> v2057$16866.apply(arg$17381))); - }); - }) - ); -final public static State.TState*/, Integer>> lexPassLSP( +final public static State.TState*/, Integer>> lexPassSourceCode( final String/**/ arg$1 ) { - final State.TState> $17389 = Lexer.passCS( + final State.TState> $19325 = Lexer.passCS( (java.lang.CharSequence)(arg$1) ); - final Func.U, Global.TGlobal>> v7688$16885 = - $17389.mem$fun; + final Func.U, Global.TGlobal>> v7688$18807 = + $19325.mem$fun; return State.TState.*/, Integer>>mk( (Func.U*/, Integer>, Global.TGlobal>>)(( - final Lazy arg$17391 + final Lazy arg$19327 ) -> { - final PreludeBase.TTuple2, Global.TGlobal> $17392 = - v7688$16885.apply(arg$17391).call(); - final PreludeBase.TTuple2*/, Integer> v7686$16914 = + final PreludeBase.TTuple2, Global.TGlobal> $19328 = + v7688$18807.apply(arg$19327).call(); + final PreludeBase.TTuple2*/, Integer> v7686$18836 = PreludeBase.TTuple2.*/, Integer>mk( Thunk.*/>lazy("tokens"), Thunk.shared( (Lazy)(() -> PreludeList.IListView_$lbrack$rbrack.< Tokens.TToken - >length($17392.mem1.call())) + >length($19328.mem1.call())) ) ); return PreludeBase.TTuple2.*/, Integer>, Global.TGlobal>mk( - v7686$16914, $17392.mem2 + v7686$18836, $19328.mem2 ); }) ); @@ -1666,84 +1595,84 @@ final public static State.TState switchState(fin final public static PreludeBase.TList ideClean(PreludeBase.TList arg$1) { tailrecursion: while (true) { final PreludeBase.TList arg$1f = arg$1; - final PreludeBase.TList.DCons $17394 = arg$1f.asCons(); - if ($17394 != null) { - final Tokens.TToken t$15539 = $17394.mem1.call(); - if (TokenID.IEq_TokenID.$eq$eq(Tokens.TToken.tokid(t$15539), TokenID.TTokenID.COMMENT)) { - if (Tokens.TToken.value(t$15539).equals("}")) { - arg$1 = $17394.mem2.call(); + final PreludeBase.TList.DCons $19330 = arg$1f.asCons(); + if ($19330 != null) { + final Tokens.TToken t$17478 = $19330.mem1.call(); + if (TokenID.IEq_TokenID.$eq$eq(Tokens.TToken.tokid(t$17478), TokenID.TTokenID.COMMENT)) { + if (Tokens.TToken.value(t$17478).equals("}")) { + arg$1 = $19330.mem2.call(); continue tailrecursion; } } - if (Tokens.TToken.col(t$15539) == 0) { - arg$1 = $17394.mem2.call(); + if (Tokens.TToken.col(t$17478) == 0) { + arg$1 = $19330.mem2.call(); continue tailrecursion; } return PreludeBase.TList.DCons.mk( - t$15539, + t$17478, Thunk.>shared( - (Lazy>)(() -> CompilerHelper.ideClean( - $17394.mem2.call() + (Lazy>)(() -> CompileExecutor.ideClean( + $19330.mem2.call() )) ) ); } - final PreludeBase.TList.DList $17396 = arg$1f.asList(); - assert $17396 != null; + final PreludeBase.TList.DList $19332 = arg$1f.asList(); + assert $19332 != null; return PreludeBase.TList.DList.mk(); } } final public static State.TState*/, Integer>> parsePass = State.TState.*/, Integer>>mk( (Func.U*/, Integer>, Global.TGlobal>>)(( - final Lazy arg$17397 + final Lazy arg$19333 ) -> { - final State.TState> $17399 = + final State.TState> $19335 = Frege.pass( Thunk.>shared( (Lazy>)(() -> PreludeList.filter( - (Func.U)((final Lazy η$17398) -> Thunk.< + (Func.U)((final Lazy η$19334) -> Thunk.< Boolean - >shared((Lazy)(() -> Tokens.TToken.noComment(η$17398.call())))), + >shared((Lazy)(() -> Tokens.TToken.noComment(η$19334.call())))), PreludeArrays.IListSource_JArray.toList( - Global.TSubSt.toks(Global.TGlobal.sub(arg$17397.call())) + Global.TSubSt.toks(Global.TGlobal.sub(arg$19333.call())) ) )) ) ); final Func.U< Global.TGlobal, PreludeBase.TTuple2, Global.TGlobal> - > v7688$16648 = $17399.mem$fun; - final PreludeBase.TTuple2, Global.TGlobal> $17401 = - v7688$16648.apply(arg$17397).call(); - final PreludeBase.TMaybe v7691$16651 = $17401.mem1.call(); - final PreludeBase.TMaybe.DJust $17403 = v7691$16651.asJust(); - if ($17403 != null) { - final Desugar.TProgram $17404 = $17403.mem1.call(); - final Desugar.TProgram.DModule $17405 = $17404.asModule(); - if ($17405 != null) { + > v7688$18614 = $19335.mem$fun; + final PreludeBase.TTuple2, Global.TGlobal> $19337 = + v7688$18614.apply(arg$19333).call(); + final PreludeBase.TMaybe v7691$18617 = $19337.mem1.call(); + final PreludeBase.TMaybe.DJust $19339 = v7691$18617.asJust(); + if ($19339 != null) { + final Desugar.TProgram $19340 = $19339.mem1.call(); + final Desugar.TProgram.DModule $19341 = $19340.asModule(); + if ($19341 != null) { final PreludeBase.TTuple3< String/**/, PreludeBase.TList, PreludeBase.TMaybe*/> - > $17406 = $17405.mem1.call(); - final PreludeBase.TTuple2*/, Integer> v16081$16805 = + > $19342 = $19341.mem1.call(); + final PreludeBase.TTuple2*/, Integer> v16081$18771 = PreludeBase.TTuple2.*/, Integer>mk( Thunk.*/>lazy("tokens"), Thunk.shared( (Lazy)(() -> java.lang.reflect.Array.getLength( - Global.TSubSt.toks(Global.TGlobal.sub(arg$17397.call())) + Global.TSubSt.toks(Global.TGlobal.sub(arg$19333.call())) )) ) ); - final Lazy> tmp$16830 = Thunk.>shared( + final Lazy> tmp$18796 = Thunk.>shared( (Lazy>)(() -> { if ( Flags.isOn( - (long)Global.TOptions.flags(Global.TGlobal.options(arg$17397.call())), Flags.TFlag.IDETOKENS + (long)Global.TOptions.flags(Global.TGlobal.options(arg$19333.call())), Flags.TFlag.IDETOKENS ) ) { return State.TState.modify( - (Func.U)((final Lazy η$17408) -> Thunk.< + (Func.U)((final Lazy η$19344) -> Thunk.< Global.TGlobal >nested( (Lazy>)(() -> PreludeBase.< @@ -1752,17 +1681,17 @@ final public static PreludeBase.TList ideClean(PreludeBase.TList< (Func.U< Global.TGlobal, Func.U, Global.TGlobal> - >)((final Lazy η$17409) -> (Func.U< + >)((final Lazy η$19345) -> (Func.U< Func.U, Global.TGlobal >)(( - final Lazy> η$17410 + final Lazy> η$19346 ) -> Thunk.shared( (Lazy)(() -> Global.TGlobal.chg$sub( - η$17409.call(), η$17410.call() + η$19345.call(), η$19346.call() )) ))), (Func.U)(( - final Lazy η$17411 + final Lazy η$19347 ) -> Thunk.nested( (Lazy>)(() -> PreludeBase.< Global.TSubSt, Global.TSubSt, @@ -1778,7 +1707,7 @@ final public static PreludeBase.TList ideClean(PreludeBase.TList< Global.TSubSt > >)(( - final Lazy η$17412 + final Lazy η$19348 ) -> (Func.U< Func.U< Tokens.TToken[], @@ -1789,37 +1718,37 @@ final public static PreludeBase.TList ideClean(PreludeBase.TList< final Lazy> η$17413 + >> η$19349 ) -> Thunk.< Global.TSubSt >shared( (Lazy)(() -> Global.TSubSt.chg$toks( - η$17412 + η$19348 .call(), - η$17413 + η$19349 .call() )) ))), (Func.U< Tokens.TToken[], Tokens.TToken[] - >)((final Lazy arg$17414) -> { - final Tokens.TToken[] v2338$16783 = - arg$17414 + >)((final Lazy arg$19350) -> { + final Tokens.TToken[] v2338$18749 = + arg$19350 .call(); return Tokens.IArrayElement_Token.arrayFromList( - CompilerHelper.ideClean( + CompileExecutor.ideClean( PreludeArrays.IListSource_JArray.< Tokens.TToken >toList( - v2338$16783 + v2338$18749 ) ) ); }), - η$17411 + η$19347 )) )), - η$17408 + η$19344 )) )) ); @@ -1827,21 +1756,21 @@ final public static PreludeBase.TList ideClean(PreludeBase.TList< else { return State.TState.mk( (Func.U>)(( - final Lazy arg$17416 + final Lazy arg$19352 ) -> { return PreludeBase.TTuple2.mk( - Thunk.lazy(PreludeBase.TUnit.Unit), arg$17416 + Thunk.lazy(PreludeBase.TUnit.Unit), arg$19352 ); }) ); } }) ); - final State.TState $17417 = tmp$16830.call(); - final Func.U> v8822$16735 = - $17417.mem$fun; - final State.TState $17429 = State.TState.modify( - (Func.U)((final Lazy η$17419) -> Thunk.< + final State.TState $19353 = tmp$18796.call(); + final Func.U> v8822$18701 = + $19353.mem$fun; + final State.TState $19365 = State.TState.modify( + (Func.U)((final Lazy η$19355) -> Thunk.< Global.TGlobal >nested( (Lazy>)(() -> PreludeBase.< @@ -1849,31 +1778,31 @@ final public static PreludeBase.TList ideClean(PreludeBase.TList< >flip( (Func.U< Global.TGlobal, Func.U, Global.TGlobal> - >)((final Lazy η$17420) -> (Func.U< + >)((final Lazy η$19356) -> (Func.U< Func.U, Global.TGlobal - >)((final Lazy> η$17421) -> Thunk.< + >)((final Lazy> η$19357) -> Thunk.< Global.TGlobal >shared( (Lazy)(() -> Global.TGlobal.chg$sub( - η$17420.call(), η$17421.call() + η$19356.call(), η$19357.call() )) ))), - (Func.U)((final Lazy arg$17422) -> { + (Func.U)((final Lazy arg$19358) -> { return PreludeBase.*/>flip( (Func.U< Global.TSubSt, Func.U*/, Global.TSubSt> - >)((final Lazy η$17423) -> (Func.U< + >)((final Lazy η$19359) -> (Func.U< String/**/, Global.TSubSt - >)((final Lazy*/> η$17424) -> Thunk.< + >)((final Lazy*/> η$19360) -> Thunk.< Global.TSubSt >shared( (Lazy)(() -> Global.TSubSt.upd$thisPack( - η$17423.call(), η$17424.call() + η$19359.call(), η$19360.call() )) ))), Thunk.*/>shared( (Lazy*/>)(() -> Packs.TPack.$new( - $17406.mem1 + $19342.mem1 )) ), Thunk.nested( @@ -1891,7 +1820,7 @@ final public static PreludeBase.TList ideClean(PreludeBase.TList< >, Global.TSubSt > - >)((final Lazy η$17425) -> (Func.U< + >)((final Lazy η$19361) -> (Func.U< PreludeBase.TList< SourceDefinitions.TDefinitionS >, @@ -1899,18 +1828,18 @@ final public static PreludeBase.TList ideClean(PreludeBase.TList< >)(( final Lazy> η$17426 + >> η$19362 ) -> Thunk.< Global.TSubSt >shared( (Lazy)(() -> Global.TSubSt.upd$sourcedefs( - η$17425 + η$19361 .call(), - η$17426 + η$19362 .call() )) ))), - $17406.mem2, + $19342.mem2, Thunk.nested( (Lazy>)(() -> PreludeBase.< Global.TSubSt, @@ -1936,7 +1865,7 @@ final public static PreludeBase.TList ideClean(PreludeBase.TList< Global.TSubSt > >)(( - final Lazy η$17427 + final Lazy η$19363 ) -> (Func.U< PreludeBase.TMaybe< String/* @@ -1953,102 +1882,102 @@ final public static PreludeBase.TList ideClean(PreludeBase.TList< Character > */ - >> η$17428 + >> η$19364 ) -> Thunk.< Global.TSubSt >shared( (Lazy)(() -> Global.TSubSt.upd$packageDoc( - η$17427 + η$19363 .call(), - η$17428 + η$19364 .call() )) ))), - $17406.mem3, - arg$17422 + $19342.mem3, + arg$19358 )) ) )) ) ); }), - η$17419 + η$19355 )) )) ); - final Func.U> v8822$16677 = - $17429.mem$fun; - final PreludeBase.TTuple2 $17431 = v8822$16677 - .apply($17401.mem2).call(); - final PreludeBase.TTuple2 $17432 = v8822$16735 - .apply($17431.mem2).call(); + final Func.U> v8822$18643 = + $19365.mem$fun; + final PreludeBase.TTuple2 $19367 = v8822$18643 + .apply($19337.mem2).call(); + final PreludeBase.TTuple2 $19368 = v8822$18701 + .apply($19367.mem2).call(); return PreludeBase.TTuple2.*/, Integer>, Global.TGlobal>mk( - v16081$16805, $17432.mem2 + v16081$18771, $19368.mem2 ); } } - final PreludeBase.TTuple2*/, Integer> v16081$16831 = PreludeBase.TTuple2.< + final PreludeBase.TTuple2*/, Integer> v16081$18797 = PreludeBase.TTuple2.< String/**/, Integer >mk( Thunk.*/>lazy("tokens"), Thunk.shared( (Lazy)(() -> java.lang.reflect.Array.getLength( - Global.TSubSt.toks(Global.TGlobal.sub(arg$17397.call())) + Global.TSubSt.toks(Global.TGlobal.sub(arg$19333.call())) )) ) ); return PreludeBase.TTuple2.*/, Integer>, Global.TGlobal>mk( - v16081$16831, $17401.mem2 + v16081$18797, $19337.mem2 ); }) ); -final public static State.TState lexParseLSP(final String/**/ arg$1) { +final public static State.TState lexParseSourceCode(final String/**/ arg$1) { return State.TState.mk( (Func.U>)(( - final Lazy arg$17434 + final Lazy arg$19370 ) -> { - final State.TState $17435 = CompilerHelper.switchState( - arg$17434 + final State.TState $19371 = CompileExecutor.switchState( + arg$19370 ); - final Func.U> v7688$17020 = - $17435.mem$fun; + final Func.U> v7688$18942 = + $19371.mem$fun; final Func.U< Global.TGlobal, PreludeBase.TTuple2*/, Integer>, Global.TGlobal> - > v8822$16995 = CompilerHelper.parsePass.mem$fun; - final State.TState*/, Integer>> $17438 = - CompilerHelper.lexPassLSP(arg$1); + > v8822$18917 = CompileExecutor.parsePass.mem$fun; + final State.TState*/, Integer>> $19374 = + CompileExecutor.lexPassSourceCode(arg$1); final Func.U< Global.TGlobal, PreludeBase.TTuple2*/, Integer>, Global.TGlobal> - > v8822$16967 = $17438.mem$fun; - final PreludeBase.TTuple2*/, Integer>, Global.TGlobal> $17440 = - v8822$16967.apply(arg$17434).call(); - final PreludeBase.TTuple2*/, Integer>, Global.TGlobal> $17441 = - v8822$16995.apply($17440.mem2).call(); - final PreludeBase.TTuple2 $17442 = v7688$17020 - .apply($17441.mem2).call(); - final Global.TGlobal v7691$17023 = $17442.mem1.call(); - final State.TState $17449 = State.TState.modify( - (Func.U)((final Lazy arg$17444) -> { - final Global.TGlobal in$15533 = arg$17444.call(); + > v8822$18889 = $19374.mem$fun; + final PreludeBase.TTuple2*/, Integer>, Global.TGlobal> $19376 = + v8822$18889.apply(arg$19370).call(); + final PreludeBase.TTuple2*/, Integer>, Global.TGlobal> $19377 = + v8822$18917.apply($19376.mem2).call(); + final PreludeBase.TTuple2 $19378 = v7688$18942 + .apply($19377.mem2).call(); + final Global.TGlobal v7691$18945 = $19378.mem1.call(); + final State.TState $19385 = State.TState.modify( + (Func.U)((final Lazy arg$19380) -> { + final Global.TGlobal in$17472 = arg$19380.call(); return Thunk.shared( (Lazy)(() -> Global.TGlobal.chg$sub( - in$15533, + in$17472, (Func.U)(( - final Lazy arg$17446 + final Lazy arg$19382 ) -> { - final Global.TSubSt in$15534 = - arg$17446.call(); + final Global.TSubSt in$17473 = + arg$19382.call(); return Thunk.shared( (Lazy)(() -> Global.TSubSt.chg$numErrors( - in$15534, + in$17473, (Func.U)(( - final Lazy η$17448 + final Lazy η$19384 ) -> Thunk.< Integer >shared( (Lazy)(() -> Global.TGlobal.errors( - v7691$17023 - ) + (int)η$17448 + v7691$18945 + ) + (int)η$19384 .call()) )) )) @@ -2058,44 +1987,44 @@ final public static State.TState lexParseLSP(fin ); }) ); - final Func.U> v8822$17049 = - $17449.mem$fun; - final PreludeBase.TTuple2 $17451 = v8822$17049 - .apply($17442.mem2).call(); - return PreludeBase.TTuple2.mk(v7691$17023, $17451.mem2); + final Func.U> v8822$18971 = + $19385.mem$fun; + final PreludeBase.TTuple2 $19387 = v8822$18971 + .apply($19378.mem2).call(); + return PreludeBase.TTuple2.mk(v7691$18945, $19387.mem2); }) ); } -final public static State.TStateT, Global.TGlobal> compileFregeFile( +final public static State.TStateT, Global.TGlobal> compileSourceCode( final Lazy*/> arg$1 ) { - final State.TStateT, Global.TGlobal> $17452 = Global.< + final State.TStateT, Global.TGlobal> $19388 = Global.< Global.TGlobal >liftStG( Thunk.>shared( - (Lazy>)(() -> CompilerHelper.lexParseLSP( + (Lazy>)(() -> CompileExecutor.lexParseSourceCode( arg$1.call() )) ) ); - final Func.U, PreludeBase.TTuple2>> v7734$17091 = - $17452.mem$run; + final Func.U, PreludeBase.TTuple2>> v7734$19035 = + $19388.mem$run; return State.TStateT., Global.TGlobal>mk( (Func.U, PreludeBase.TTuple2>>)(( - final Lazy arg$17454 + final Lazy arg$19390 ) -> { return Thunk., PreludeBase.TTuple2>>lazy( (Kind.U, PreludeBase.TTuple2>)(Func.U< RealWorld, PreludeBase.TTuple2 - >)((final Lazy arg$17455) -> { - final PreludeBase.TTuple2 v2056$17126 = + >)((final Lazy arg$19391) -> { + final PreludeBase.TTuple2 v2056$19070 = RunTM.< Func.U< Global.TGlobal, Func.U> > - >cast(v7734$17091).apply(arg$17454).call().apply(arg$17455) + >cast(v7734$19035).apply(arg$19390).call().apply(arg$19391) .call(); - final State.TStateT, Short> $17458 = + final State.TStateT, Short> $19394 = Global.< PreludeBase.TTuple2< State.TStateT< @@ -2106,7 +2035,7 @@ final public static State.TState lexParseLSP(fin >, Short >forsome( - CompilerHelper.passes.call(), + CompileExecutor.passes.call(), (Func.U< PreludeBase.TTuple2< State.TStateT< @@ -2123,59 +2052,135 @@ final public static State.TState lexParseLSP(fin PreludeBase.TTuple2*/, Integer> >, String/**/ - >> η$17457 + >> η$19393 ) -> Thunk., Short>>shared( (Lazy, Short - >>)(() -> CompilerHelper.runpass(η$17457.call())) + >>)(() -> CompileExecutor.runpass(η$19393.call())) )) ); final Func.U< Global.TGlobal, Kind.U, PreludeBase.TTuple2> - > v8728$17213 = $17458.mem$run; - final State.TStateT, Short> $17460 = + > v8728$19157 = $19394.mem$run; + final State.TStateT, Short> $19396 = State.TStateT.>put( - PreludeMonad.IMonad_ST.mk(), v2056$17126.mem1 + PreludeMonad.IMonad_ST.mk(), v2056$19070.mem1 ); final Func.U< Global.TGlobal, Kind.U, PreludeBase.TTuple2> - > v8728$17156 = $17460.mem$run; - final Func.U> v2053$17187 = + > v8728$19100 = $19396.mem$run; + final Func.U> v2053$19131 = RunTM.< Func.U>> - >cast(v8728$17156).apply(v2056$17126.mem2).call(); - final PreludeBase.TTuple2 v2056$17190 = - v2053$17187.apply(arg$17455).call(); - final Func.U> v2053$17244 = + >cast(v8728$19100).apply(v2056$19070.mem2).call(); + final PreludeBase.TTuple2 v2056$19134 = + v2053$19131.apply(arg$19391).call(); + final Func.U> v2053$19188 = RunTM.< Func.U>> - >cast(v8728$17213).apply(v2056$17190.mem2).call(); - final PreludeBase.TTuple2 v2056$17247 = - v2053$17244.apply(arg$17455).call(); - final Func.U> v2053$17299 = + >cast(v8728$19157).apply(v2056$19134.mem2).call(); + final PreludeBase.TTuple2 v2056$19191 = + v2053$19188.apply(arg$19391).call(); + final Func.U> v2053$19243 = PreludeMonad.IMonad_ST.>pure( PreludeBase.TTuple2.mk( - v2056$17247.mem2, v2056$17247.mem2 + v2056$19191.mem2, v2056$19191.mem2 ) ); - final PreludeBase.TTuple2 v2056$17302 = - v2053$17299.apply(arg$17455).call(); - final Global.TGlobal v7737$17270 = v2056$17302.mem1 + final PreludeBase.TTuple2 v2056$19246 = + v2053$19243.apply(arg$19391).call(); + final Global.TGlobal v7737$19214 = v2056$19246.mem1 .call(); - final Func.U> v2057$17303 = + final Func.U> v2057$19247 = PreludeMonad.IMonad_ST.>pure( PreludeBase.TTuple2.mk( - v7737$17270, v2056$17302.mem2 + v7737$19214, v2056$19246.mem2 ) ); return Thunk.>nested( - (Lazy>>)(() -> v2057$17303 - .apply(arg$17455)) + (Lazy>>)(() -> v2057$19247 + .apply(arg$19391)) ); }) ); }) ); } +final public static Func.U compile( + final Lazy*/> arg$1, final Func.U arg$2 +) { + return (Func.U)((final Lazy arg$19406) -> { + final Global.TGlobal v2056$19015 = arg$2.apply(arg$19406).call(); + final Func.U v2057$19016 = Func.coerceU( + State., Global.TGlobal>execStateT( + PreludeMonad.IMonad_ST.mk(), + Thunk., Global.TGlobal>>shared( + (Lazy, Global.TGlobal + >>)(() -> CompileExecutor.compileSourceCode(arg$1)) + ), + v2056$19015 + ) + ); + return Thunk.nested((Lazy>)(() -> v2057$19016.apply(arg$19406))); + }); +} +final public static Lazy +>> shouldCorrectlyConfigureExtraClasspath = Thunk.< + QuickCheckGen.TGen> +>shared( + (Lazy>>)(() -> { + return QuickCheckProperty.>>once( + new QuickCheckProperty.ITestable_Gen>( + QuickCheckProperty.ITestable_Prop.it + ), + Thunk.>>shared( + (Lazy + >>)(() -> QuickCheckProperty.morallyDubiousIOProperty( + QuickCheckProperty.ITestable_Bool.it, + (Func.U)((final Lazy arg$19409) -> { + final Global.TGlobal v2056$18297 = CompileExecutor.compile( + Thunk.*/>shared( + (Lazy + */>)(() -> "module FregeFxDep where\n\n" + ("import fregefx.JavaFxType\n\n" + "main = println \"Hello FregeFX\"")) + ), + CompileGlobal.fromOptions( + Global.TOptions.upd$path( + CompileOptions.standardCompileOptions + .call(), + PreludeBase.TList.DCons.< + String/**/ + >mk( + Thunk.*/>lazy( + "./src/main/resources/fregefx-0.8.2-SNAPSHOT.jar" + ), + PreludeBase.TList.DList.< + String/**/ + >mk() + ) + ) + ) + ).apply(arg$19409).call(); + final Func.U v2057$18298 = + PreludeMonad.IMonad_ST.pure( + Thunk.shared( + (Lazy)(() -> Global.TGlobal.errors( + v2056$18297 + ) == 0) + ) + ); + return Thunk.nested( + (Lazy>)(() -> v2057$18298 + .apply(arg$19409)) + ); + }) + )) + ) + ); + }) + ); } diff --git a/src/main/java/ch/fhnw/thga/fregelanguageserver/compile/CompileGlobal.java b/src/main/java/ch/fhnw/thga/fregelanguageserver/compile/CompileGlobal.java new file mode 100644 index 0000000..0a4922c --- /dev/null +++ b/src/main/java/ch/fhnw/thga/fregelanguageserver/compile/CompileGlobal.java @@ -0,0 +1,172 @@ +/* + Source code is in UTF-8 encoding. The following symbols may appear, among others: + α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ ς σ τ υ φ χ ψ ω « • ¦ » ∀ ∃ ∷ … → ← fi fl ƒ + If you can't read this, you're out of luck. This code was generated with the frege compiler version 3.25.84 + from + /Users/tricktron/github/master/frege-lsp-server/src/main/frege/ch/fhnw/thga/fregelanguageserver/compile/CompileGlobal.fr + Do not edit this file! Instead, edit the source file and recompile. +*/ + +package ch.fhnw.thga.fregelanguageserver.compile; + +import frege.run8.Func; +import frege.run8.Lazy; +import frege.run8.Thunk; +import frege.run.Kind; +import frege.run.RunTM; +import frege.runtime.Meta; +import frege.runtime.Phantom.RealWorld; +import ch.fhnw.thga.fregelanguageserver.compile.CompileOptions; +import frege.Prelude; +import frege.Version; +import frege.compiler.Classtools; +import frege.compiler.common.CompilerOptions; +import frege.compiler.common.Roman; +import frege.compiler.enums.CaseKind; +import frege.compiler.enums.Flags; +import frege.compiler.enums.Literals; +import frege.compiler.enums.RFlag; +import frege.compiler.enums.SymState; +import frege.compiler.enums.TokenID; +import frege.compiler.enums.Visibility; +import frege.compiler.instances.PositionedSName; +import frege.compiler.types.AbstractJava; +import frege.compiler.types.ConstructorField; +import frege.compiler.types.Expression; +import frege.compiler.types.External; +import frege.compiler.types.Global; +import frege.compiler.types.ImportDetails; +import frege.compiler.types.JNames; +import frege.compiler.types.NSNames; +import frege.compiler.types.Packs; +import frege.compiler.types.Patterns; +import frege.compiler.types.Positions; +import frege.compiler.types.QNames; +import frege.compiler.types.SNames; +import frege.compiler.types.SourceDefinitions; +import frege.compiler.types.Strictness; +import frege.compiler.types.Symbols; +import frege.compiler.types.Targets; +import frege.compiler.types.Tokens; +import frege.compiler.types.Types; +import frege.control.Category; +import frege.control.Semigroupoid; +import frege.control.monad.State; +import frege.control.monad.trans.MonadIO; +import frege.control.monad.trans.MonadTrans; +import frege.data.Bits; +import frege.data.Foldable; +import frege.data.Monoid; +import frege.data.Traversable; +import frege.data.TreeMap; +import frege.data.Tuples; +import frege.data.wrapper.Const; +import frege.data.wrapper.Dual; +import frege.data.wrapper.Endo; +import frege.data.wrapper.Identity; +import frege.data.wrapper.Num; +import frege.java.IO; +import frege.java.Lang; +import frege.java.Net; +import frege.java.Util; +import frege.java.util.Regex; +import frege.prelude.Maybe; +import frege.prelude.PreludeArrays; +import frege.prelude.PreludeBase; +import frege.prelude.PreludeDecimal; +import frege.prelude.PreludeIO; +import frege.prelude.PreludeList; +import frege.prelude.PreludeMonad; +import frege.prelude.PreludeText; + +@SuppressWarnings("unused") +@Meta.FregePackage( + source="/Users/tricktron/github/master/frege-lsp-server/src/main/frege/ch/fhnw/thga/fregelanguageserver/compile/CompileGlobal.fr", + time=1658516064633L, jmajor=11, jminor=-1, + imps={ + "ch.fhnw.thga.fregelanguageserver.compile.CompileOptions", "frege.compiler.common.CompilerOptions", + "frege.compiler.types.Global", "frege.Prelude", "frege.prelude.PreludeArrays", "frege.prelude.PreludeBase", + "frege.prelude.PreludeDecimal", "frege.prelude.PreludeIO", "frege.prelude.PreludeList", + "frege.prelude.PreludeMonad", "frege.prelude.PreludeText", "frege.java.util.Regex" + }, + nmss={ + "CompileOptions", "CompilerOptions", "Global", "Prelude", "PreludeArrays", "PreludeBase", "PreludeDecimal", + "PreludeIO", "PreludeList", "PreludeMonad", "PreludeText", "Regexp" + }, + symas={}, symcs={}, symis={}, symts={}, + symvs={ + @Meta.SymV( + offset=530, + name=@Meta.QName(pack="ch.fhnw.thga.fregelanguageserver.compile.CompileGlobal", base="standardCompileGlobal"), + stri="u", sig=0, depth=0, rkind=8 + ), + @Meta.SymV( + offset=284, name=@Meta.QName(pack="ch.fhnw.thga.fregelanguageserver.compile.CompileGlobal", base="fromOptions"), + stri="s(s)", sig=2, depth=1, rkind=13 + ) + }, + symls={}, + taus={ + @Meta.Tau(kind=2, suba=0, tcon={@Meta.QName(kind=0, pack="frege.prelude.PreludeBase", base="ST")}), + @Meta.Tau(kind=2, suba=0, tcon={@Meta.QName(kind=0, pack="frege.prelude.PreludeBase", base="RealWorld")}), + @Meta.Tau(kind=0, suba=0, subb=1), + @Meta.Tau(kind=2, suba=0, tcon={@Meta.QName(kind=0, pack="frege.compiler.types.Global", base="Global")}), + @Meta.Tau(kind=0, suba=2, subb=3), + @Meta.Tau(kind=2, suba=0, tcon={@Meta.QName(kind=0, pack="frege.compiler.types.Global", base="Options")}) + }, + rhos={@Meta.Rho(rhofun=false, rhotau=4), @Meta.Rho(rhofun=false, rhotau=5), @Meta.Rho(sigma=1, rhotau=0)}, + sigmas={@Meta.Sigma(rho=0), @Meta.Sigma(rho=1), @Meta.Sigma(rho=2)}, exprs={@Meta.Expr()} +) +final public class CompileGlobal { + + + + + +final public static Func.U fromOptions(final Global.TOptions arg$1) { + return (Func.U)((final Lazy arg$13593) -> { + final java.net.URLClassLoader v2056$13557 = CompilerOptions.theClassLoader( + arg$1 + ).apply(arg$13593).call(); + final Func.U v2053$13576 = CompilerOptions.standardGlobal + .call(); + final Global.TGlobal v2056$13579 = v2053$13576.apply(arg$13593).call(); + final Func.U v2057$13580 = PreludeMonad.IMonad_ST.< + RealWorld, Global.TGlobal + >pure( + Thunk.shared( + (Lazy)(() -> Global.TGlobal.chg$sub( + Global.TGlobal.upd$options(v2056$13579, arg$1), + (Func.U)((final Lazy η$13597) -> Thunk.< + Global.TSubSt + >nested( + (Lazy>)(() -> PreludeBase.< + Global.TSubSt, Global.TSubSt, java.net.URLClassLoader + >flip( + (Func.U>)(( + final Lazy η$13598 + ) -> (Func.U)(( + final Lazy η$13599 + ) -> Thunk.shared( + (Lazy)(() -> Global.TSubSt.upd$loader( + η$13598.call(), η$13599.call() + )) + ))), + Thunk.lazy(v2056$13557), η$13597 + )) + )) + )) + ) + ); + return Thunk.nested((Lazy>)(() -> v2057$13580.apply(arg$13593))); + }); +} +final public static Lazy> standardCompileGlobal = Thunk.< + Func.U +>shared( + (Lazy>)(() -> { + return CompileGlobal.fromOptions(CompileOptions.standardCompileOptions.call()); + }) + ); + +} diff --git a/src/main/java/ch/fhnw/thga/fregelanguageserver/compile/CompileOptions.java b/src/main/java/ch/fhnw/thga/fregelanguageserver/compile/CompileOptions.java new file mode 100644 index 0000000..6e0ac22 --- /dev/null +++ b/src/main/java/ch/fhnw/thga/fregelanguageserver/compile/CompileOptions.java @@ -0,0 +1,187 @@ +/* + Source code is in UTF-8 encoding. The following symbols may appear, among others: + α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ ς σ τ υ φ χ ψ ω « • ¦ » ∀ ∃ ∷ … → ← fi fl ƒ + If you can't read this, you're out of luck. This code was generated with the frege compiler version 3.25.84 + from + /Users/tricktron/github/master/frege-lsp-server/src/main/frege/ch/fhnw/thga/fregelanguageserver/compile/CompileOptions.fr + Do not edit this file! Instead, edit the source file and recompile. +*/ + +package ch.fhnw.thga.fregelanguageserver.compile; + +import frege.run8.Func; +import frege.run8.Lazy; +import frege.run8.Thunk; +import frege.run.Kind; +import frege.run.RunTM; +import frege.runtime.Meta; +import frege.runtime.Phantom.RealWorld; +import frege.Prelude; +import frege.compiler.common.Roman; +import frege.compiler.enums.CaseKind; +import frege.compiler.enums.Flags; +import frege.compiler.enums.Literals; +import frege.compiler.enums.RFlag; +import frege.compiler.enums.SymState; +import frege.compiler.enums.TokenID; +import frege.compiler.enums.Visibility; +import frege.compiler.instances.PositionedSName; +import frege.compiler.types.AbstractJava; +import frege.compiler.types.ConstructorField; +import frege.compiler.types.Expression; +import frege.compiler.types.External; +import frege.compiler.types.Global; +import frege.compiler.types.ImportDetails; +import frege.compiler.types.JNames; +import frege.compiler.types.NSNames; +import frege.compiler.types.Packs; +import frege.compiler.types.Patterns; +import frege.compiler.types.Positions; +import frege.compiler.types.QNames; +import frege.compiler.types.SNames; +import frege.compiler.types.SourceDefinitions; +import frege.compiler.types.Strictness; +import frege.compiler.types.Symbols; +import frege.compiler.types.Targets; +import frege.compiler.types.Tokens; +import frege.compiler.types.Types; +import frege.control.Category; +import frege.control.Semigroupoid; +import frege.control.monad.State; +import frege.control.monad.trans.MonadIO; +import frege.control.monad.trans.MonadTrans; +import frege.data.Bits; +import frege.data.Foldable; +import frege.data.Monoid; +import frege.data.Traversable; +import frege.data.TreeMap; +import frege.data.Tuples; +import frege.data.wrapper.Const; +import frege.data.wrapper.Dual; +import frege.data.wrapper.Endo; +import frege.data.wrapper.Identity; +import frege.data.wrapper.Num; +import frege.java.IO; +import frege.java.Lang; +import frege.java.Net; +import frege.java.Util; +import frege.java.util.Regex; +import frege.prelude.Maybe; +import frege.prelude.PreludeArrays; +import frege.prelude.PreludeBase; +import frege.prelude.PreludeDecimal; +import frege.prelude.PreludeIO; +import frege.prelude.PreludeList; +import frege.prelude.PreludeMonad; +import frege.prelude.PreludeText; + +@SuppressWarnings("unused") +@Meta.FregePackage( + source="/Users/tricktron/github/master/frege-lsp-server/src/main/frege/ch/fhnw/thga/fregelanguageserver/compile/CompileOptions.fr", + time=1658516063778L, jmajor=11, jminor=-1, + imps={ + "frege.compiler.enums.Flags", "frege.compiler.types.Global", "frege.Prelude", "frege.prelude.PreludeArrays", + "frege.prelude.PreludeBase", "frege.prelude.PreludeDecimal", "frege.prelude.PreludeIO", "frege.prelude.PreludeList", + "frege.prelude.PreludeMonad", "frege.prelude.PreludeText", "frege.java.util.Regex", "frege.compiler.types.Targets" + }, + nmss={ + "Flags", "Global", "Prelude", "PreludeArrays", "PreludeBase", "PreludeDecimal", "PreludeIO", + "PreludeList", "PreludeMonad", "PreludeText", "Regexp", "Targets" + }, + symas={}, symcs={}, symis={}, symts={}, + symvs={ + @Meta.SymV( + offset=320, + name=@Meta.QName(pack="ch.fhnw.thga.fregelanguageserver.compile.CompileOptions", base="standardCompileOptions"), + stri="u", sig=0, depth=0, rkind=8 + ), + @Meta.SymV( + offset=192, + name=@Meta.QName(pack="ch.fhnw.thga.fregelanguageserver.compile.CompileOptions", base="getEnvDefault"), + stri="s(us)", sig=2, depth=2, rkind=12 + ) + }, + symls={ + @Meta.SymL( + offset=151, name=@Meta.QName(pack="ch.fhnw.thga.fregelanguageserver.compile.CompileOptions", base="thisTarget"), + alias=@Meta.QName(pack="frege.compiler.types.Targets", base="thisTarget") + ) + }, + taus={ + @Meta.Tau(kind=2, suba=0, tcon={@Meta.QName(kind=0, pack="frege.compiler.types.Global", base="Options")}), + @Meta.Tau(kind=2, suba=0, tcon={@Meta.QName(kind=0, pack="frege.prelude.PreludeBase", base="StringJ")}), + @Meta.Tau(kind=2, suba=0, tcon={@Meta.QName(kind=0, pack="frege.prelude.PreludeBase", base="Char")}), + @Meta.Tau(kind=0, suba=1, subb=2) + }, + rhos={ + @Meta.Rho(rhofun=false, rhotau=0), @Meta.Rho(rhofun=false, rhotau=3), @Meta.Rho(sigma=1, rhotau=1), + @Meta.Rho(sigma=1, rhotau=2) + }, + sigmas={@Meta.Sigma(rho=0), @Meta.Sigma(rho=1), @Meta.Sigma(rho=3)}, exprs={@Meta.Expr()} +) +final public class CompileOptions { + + + + + +final public static Lazy*/> getEnvDefault( + final Lazy*/> arg$1, final String/**/ arg$2 +) { + return PreludeBase.*/, String/**/>maybe( + arg$1, + (Func.U*/, String/**/>)((final Lazy*/> arg$12943) -> { + return arg$12943; + }), + PreludeBase._toMaybe(System.getenv(arg$2)) + ); +} +final public static Lazy standardCompileOptions = Thunk.shared( + (Lazy)(() -> { + return Global.TOptions.mk( + "-", + PreludeBase.TList.DCons.*/>mk( + Thunk.*/>nested( + (Lazy*/>>)(() -> CompileOptions.getEnvDefault( + Thunk.*/>lazy("."), "FREGE_LS_SOURCE_DIR" + )) + ), + PreludeBase.TList.DList.*/>mk() + ), + (long)Bits.TBitSet.fromList( + Flags.IEnum_Flag.it, + PreludeBase.TList.DCons.mk( + Thunk.lazy(Flags.TFlag.WARNINGS), + PreludeBase.TList.DCons.mk( + Thunk.lazy(Flags.TFlag.HINTS), + PreludeBase.TList.DCons.mk( + Thunk.lazy(Flags.TFlag.VERBOSE), + PreludeBase.TList.DCons.mk( + Thunk.lazy(Flags.TFlag.IDEMODE), + PreludeBase.TList.DCons.mk( + Thunk.lazy(Flags.TFlag.IDETOKENS), + PreludeBase.TList.DList.mk() + ) + ) + ) + ) + ) + ), + ".", + PreludeBase.TList.DCons.*/>mk( + Thunk.*/>nested( + (Lazy*/>>)(() -> CompileOptions.getEnvDefault( + Thunk.*/>lazy(""), "FREGE_LS_EXTRA_CLASSPATH" + )) + ), + PreludeBase.TList.DList.*/>mk() + ), + "", PreludeBase.TMaybe.DJust.*/>mk(Thunk.*/>lazy("UTF-8")), + PreludeBase.TList.DList.>mk(), Targets.thisTarget.call(), + PreludeBase.TMaybe.DNothing.>mk(), + PreludeBase.TList.DList.>mk(), PreludeBase.TList.DList.mk() + ); + }) + ); + +} diff --git a/src/main/java/ch/fhnw/thga/fregelanguageserver/diagnostic/Diagnostic.java b/src/main/java/ch/fhnw/thga/fregelanguageserver/diagnostic/Diagnostic.java index e7fbdc6..4eb2403 100644 --- a/src/main/java/ch/fhnw/thga/fregelanguageserver/diagnostic/Diagnostic.java +++ b/src/main/java/ch/fhnw/thga/fregelanguageserver/diagnostic/Diagnostic.java @@ -16,7 +16,9 @@ import frege.run.RunTM; import frege.runtime.Meta; import frege.runtime.Phantom.RealWorld; -import ch.fhnw.thga.fregelanguageserver.compiler.CompilerHelper; +import ch.fhnw.thga.fregelanguageserver.compile.CompileExecutor; +import ch.fhnw.thga.fregelanguageserver.compile.CompileGlobal; +import ch.fhnw.thga.fregelanguageserver.compile.CompileOptions; import ch.fhnw.thga.fregelanguageserver.types.Position; import ch.fhnw.thga.fregelanguageserver.types.Range; import frege.Prelude; @@ -138,9 +140,10 @@ @SuppressWarnings("unused") @Meta.FregePackage( source="/Users/tricktron/github/master/frege-lsp-server/src/main/frege/ch/fhnw/thga/fregelanguageserver/diagnostic/Diagnostic.fr", - time=1657911866830L, jmajor=11, jminor=-1, + time=1658516066148L, jmajor=11, jminor=-1, imps={ - "ch.fhnw.thga.fregelanguageserver.compiler.CompilerHelper", "frege.compiler.types.Global", + "ch.fhnw.thga.fregelanguageserver.compile.CompileExecutor", + "ch.fhnw.thga.fregelanguageserver.compile.CompileGlobal", "frege.compiler.types.Global", "ch.fhnw.thga.fregelanguageserver.types.Position", "frege.compiler.types.Positions", "frege.Prelude", "frege.prelude.PreludeArrays", "frege.prelude.PreludeBase", "frege.prelude.PreludeDecimal", "frege.prelude.PreludeIO", "frege.prelude.PreludeList", "frege.prelude.PreludeMonad", "frege.prelude.PreludeText", @@ -148,151 +151,149 @@ "frege.control.monad.State", "frege.compiler.types.Tokens" }, nmss={ - "CompilerHelper", "Global", "Position", "Positions", "Prelude", "PreludeArrays", "PreludeBase", - "PreludeDecimal", "PreludeIO", "PreludeList", "PreludeMonad", "PreludeText", "QuickCheck", - "Range", "Regexp", "State", "Tokens" + "CompileExecutor", "CompileGlobal", "Global", "Position", "Positions", "Prelude", "PreludeArrays", + "PreludeBase", "PreludeDecimal", "PreludeIO", "PreludeList", "PreludeMonad", "PreludeText", + "QuickCheck", "Range", "Regexp", "State", "Tokens" }, symas={}, symcs={}, symis={ @Meta.SymI( - offset=1116, + offset=1182, name=@Meta.QName(kind=0, pack="ch.fhnw.thga.fregelanguageserver.diagnostic.Diagnostic", base="Show_Diagnostic"), clas=@Meta.QName(kind=0, pack="frege.prelude.PreludeText", base="Show"), typ=0, lnks={}, funs={ @Meta.SymV( - offset=1116, + offset=1182, name=@Meta.QName( kind=2, pack="ch.fhnw.thga.fregelanguageserver.diagnostic.Diagnostic", base="Show_Diagnostic", - member="showsPrec" + member="showsub" ), - stri="s(uss)", sig=3, depth=3, rkind=13, doc="inherited from 'Show.showsPrec'" + stri="s(s)", sig=1, depth=1, rkind=13, doc="Function generated for derived instance." ), @Meta.SymV( - offset=1116, + offset=1182, name=@Meta.QName( kind=2, pack="ch.fhnw.thga.fregelanguageserver.diagnostic.Diagnostic", base="Show_Diagnostic", - member="showsub" + member="showList" ), - stri="s(s)", sig=4, depth=1, rkind=13, doc="Function generated for derived instance." + stri="s(ss)", sig=4, depth=2, rkind=13, doc="inherited from 'Show.showList'" ), @Meta.SymV( - offset=1116, + offset=1182, name=@Meta.QName( kind=2, pack="ch.fhnw.thga.fregelanguageserver.diagnostic.Diagnostic", base="Show_Diagnostic", - member="showChars" + member="showsPrec" ), - stri="s(s)", sig=5, depth=1, rkind=13, doc="inherited from 'Show.showChars'" + stri="s(uss)", sig=6, depth=3, rkind=13, doc="inherited from 'Show.showsPrec'" ), @Meta.SymV( - offset=1116, + offset=1182, name=@Meta.QName( kind=2, pack="ch.fhnw.thga.fregelanguageserver.diagnostic.Diagnostic", base="Show_Diagnostic", member="display" ), - stri="s(s)", sig=4, depth=1, rkind=13, doc="inherited from 'Show.display'" + stri="s(s)", sig=1, depth=1, rkind=13, doc="inherited from 'Show.display'" ), @Meta.SymV( - offset=1116, + offset=1182, name=@Meta.QName( kind=2, pack="ch.fhnw.thga.fregelanguageserver.diagnostic.Diagnostic", base="Show_Diagnostic", member="show" ), - stri="s(s)", sig=4, depth=1, rkind=13, doc="Function generated for derived instance." + stri="s(s)", sig=1, depth=1, rkind=13, doc="Function generated for derived instance." ), @Meta.SymV( - offset=1116, + offset=1182, name=@Meta.QName( kind=2, pack="ch.fhnw.thga.fregelanguageserver.diagnostic.Diagnostic", base="Show_Diagnostic", - member="showList" + member="showChars" ), - stri="s(ss)", sig=7, depth=2, rkind=13, doc="inherited from 'Show.showList'" + stri="s(s)", sig=7, depth=1, rkind=13, doc="inherited from 'Show.showChars'" ) } ), @Meta.SymI( - offset=728, + offset=794, name=@Meta.QName( kind=0, pack="ch.fhnw.thga.fregelanguageserver.diagnostic.Diagnostic", base="Show_DiagnosticSeverity" ), clas=@Meta.QName(kind=0, pack="frege.prelude.PreludeText", base="Show"), typ=8, lnks={}, funs={ @Meta.SymV( - offset=728, + offset=794, name=@Meta.QName( kind=2, pack="ch.fhnw.thga.fregelanguageserver.diagnostic.Diagnostic", base="Show_DiagnosticSeverity", - member="showsPrec" + member="showsub" ), - stri="s(uss)", sig=9, depth=3, rkind=13, doc="inherited from 'Show.showsPrec'" + stri="s(s)", sig=9, depth=1, rkind=13, doc="Function generated for derived instance." ), @Meta.SymV( - offset=728, + offset=794, name=@Meta.QName( kind=2, pack="ch.fhnw.thga.fregelanguageserver.diagnostic.Diagnostic", base="Show_DiagnosticSeverity", - member="showsub" + member="showList" ), - stri="s(s)", sig=10, depth=1, rkind=13, doc="Function generated for derived instance." + stri="s(ss)", sig=11, depth=2, rkind=13, doc="inherited from 'Show.showList'" ), @Meta.SymV( - offset=728, + offset=794, name=@Meta.QName( kind=2, pack="ch.fhnw.thga.fregelanguageserver.diagnostic.Diagnostic", base="Show_DiagnosticSeverity", - member="showChars" + member="showsPrec" ), - stri="s(s)", sig=11, depth=1, rkind=13, doc="inherited from 'Show.showChars'" + stri="s(uss)", sig=12, depth=3, rkind=13, doc="inherited from 'Show.showsPrec'" ), @Meta.SymV( - offset=728, + offset=794, name=@Meta.QName( kind=2, pack="ch.fhnw.thga.fregelanguageserver.diagnostic.Diagnostic", base="Show_DiagnosticSeverity", member="display" ), - stri="s(s)", sig=10, depth=1, rkind=13, doc="inherited from 'Show.display'" + stri="s(s)", sig=9, depth=1, rkind=13, doc="inherited from 'Show.display'" ), @Meta.SymV( - offset=728, + offset=794, name=@Meta.QName( kind=2, pack="ch.fhnw.thga.fregelanguageserver.diagnostic.Diagnostic", base="Show_DiagnosticSeverity", member="show" ), - stri="s(s)", sig=10, depth=1, rkind=13, doc="Function generated for derived instance." + stri="s(s)", sig=9, depth=1, rkind=13, doc="Function generated for derived instance." ), @Meta.SymV( - offset=728, + offset=794, name=@Meta.QName( kind=2, pack="ch.fhnw.thga.fregelanguageserver.diagnostic.Diagnostic", base="Show_DiagnosticSeverity", - member="showList" + member="showChars" ), - stri="s(ss)", sig=13, depth=2, rkind=13, doc="inherited from 'Show.showList'" + stri="s(s)", sig=13, depth=1, rkind=13, doc="inherited from 'Show.showChars'" ) } ), @Meta.SymI( - offset=699, - name=@Meta.QName( - kind=0, pack="ch.fhnw.thga.fregelanguageserver.diagnostic.Diagnostic", base="Eq_DiagnosticSeverity" - ), - clas=@Meta.QName(kind=0, pack="frege.prelude.PreludeBase", base="Eq"), typ=8, lnks={}, + offset=1161, + name=@Meta.QName(kind=0, pack="ch.fhnw.thga.fregelanguageserver.diagnostic.Diagnostic", base="Eq_Diagnostic"), + clas=@Meta.QName(kind=0, pack="frege.prelude.PreludeBase", base="Eq"), typ=0, lnks={}, funs={ @Meta.SymV( - offset=699, + offset=1161, name=@Meta.QName( - kind=2, pack="ch.fhnw.thga.fregelanguageserver.diagnostic.Diagnostic", base="Eq_DiagnosticSeverity", + kind=2, pack="ch.fhnw.thga.fregelanguageserver.diagnostic.Diagnostic", base="Eq_Diagnostic", member="hashCode" ), stri="s(s)", sig=14, depth=1, rkind=13, doc="Function generated for derived instance." ), @Meta.SymV( - offset=699, + offset=1161, name=@Meta.QName( - kind=2, pack="ch.fhnw.thga.fregelanguageserver.diagnostic.Diagnostic", base="Eq_DiagnosticSeverity", + kind=2, pack="ch.fhnw.thga.fregelanguageserver.diagnostic.Diagnostic", base="Eq_Diagnostic", member="!=" ), stri="s(ss)", sig=15, depth=2, rkind=13, doc="inherited from 'Eq.!='", op=96 ), @Meta.SymV( - offset=699, + offset=1161, name=@Meta.QName( - kind=2, pack="ch.fhnw.thga.fregelanguageserver.diagnostic.Diagnostic", base="Eq_DiagnosticSeverity", + kind=2, pack="ch.fhnw.thga.fregelanguageserver.diagnostic.Diagnostic", base="Eq_Diagnostic", member="==" ), stri="s(ss)", sig=15, depth=2, rkind=13, doc="Function generated for derived instance.", op=96 @@ -300,30 +301,32 @@ } ), @Meta.SymI( - offset=1095, - name=@Meta.QName(kind=0, pack="ch.fhnw.thga.fregelanguageserver.diagnostic.Diagnostic", base="Eq_Diagnostic"), - clas=@Meta.QName(kind=0, pack="frege.prelude.PreludeBase", base="Eq"), typ=0, lnks={}, + offset=765, + name=@Meta.QName( + kind=0, pack="ch.fhnw.thga.fregelanguageserver.diagnostic.Diagnostic", base="Eq_DiagnosticSeverity" + ), + clas=@Meta.QName(kind=0, pack="frege.prelude.PreludeBase", base="Eq"), typ=8, lnks={}, funs={ @Meta.SymV( - offset=1095, + offset=765, name=@Meta.QName( - kind=2, pack="ch.fhnw.thga.fregelanguageserver.diagnostic.Diagnostic", base="Eq_Diagnostic", + kind=2, pack="ch.fhnw.thga.fregelanguageserver.diagnostic.Diagnostic", base="Eq_DiagnosticSeverity", member="hashCode" ), stri="s(s)", sig=16, depth=1, rkind=13, doc="Function generated for derived instance." ), @Meta.SymV( - offset=1095, + offset=765, name=@Meta.QName( - kind=2, pack="ch.fhnw.thga.fregelanguageserver.diagnostic.Diagnostic", base="Eq_Diagnostic", + kind=2, pack="ch.fhnw.thga.fregelanguageserver.diagnostic.Diagnostic", base="Eq_DiagnosticSeverity", member="!=" ), stri="s(ss)", sig=17, depth=2, rkind=13, doc="inherited from 'Eq.!='", op=96 ), @Meta.SymV( - offset=1095, + offset=765, name=@Meta.QName( - kind=2, pack="ch.fhnw.thga.fregelanguageserver.diagnostic.Diagnostic", base="Eq_Diagnostic", + kind=2, pack="ch.fhnw.thga.fregelanguageserver.diagnostic.Diagnostic", base="Eq_DiagnosticSeverity", member="==" ), stri="s(ss)", sig=17, depth=2, rkind=13, doc="Function generated for derived instance.", op=96 @@ -333,28 +336,28 @@ }, symts={ @Meta.SymT( - offset=960, + offset=1026, name=@Meta.QName(kind=0, pack="ch.fhnw.thga.fregelanguageserver.diagnostic.Diagnostic", base="Diagnostic"), typ=0, kind=12, cons={ @Meta.SymD( - offset=973, + offset=1039, name=@Meta.QName( kind=2, pack="ch.fhnw.thga.fregelanguageserver.diagnostic.Diagnostic", base="Diagnostic", member="Diagnostic" ), cid=0, typ=19, fields={ - @Meta.Field(name="range", offset=990, sigma=18, strict=false), - @Meta.Field(name="severity", offset=1013, sigma=8, strict=false), - @Meta.Field(name="source", offset=1049, sigma=2, strict=false), - @Meta.Field(name="message", offset=1073, sigma=2, strict=false) + @Meta.Field(name="range", offset=1056, sigma=18, strict=false), + @Meta.Field(name="severity", offset=1079, sigma=8, strict=false), + @Meta.Field(name="source", offset=1115, sigma=3, strict=false), + @Meta.Field(name="message", offset=1139, sigma=3, strict=false) } ) }, lnks={ @Meta.SymL( - offset=1116, + offset=1182, name=@Meta.QName( kind=2, pack="ch.fhnw.thga.fregelanguageserver.diagnostic.Diagnostic", base="Diagnostic", member="showsPrec" @@ -365,7 +368,7 @@ ) ), @Meta.SymL( - offset=1116, + offset=1182, name=@Meta.QName( kind=2, pack="ch.fhnw.thga.fregelanguageserver.diagnostic.Diagnostic", base="Diagnostic", member="showChars" @@ -376,7 +379,7 @@ ) ), @Meta.SymL( - offset=1116, + offset=1182, name=@Meta.QName( kind=2, pack="ch.fhnw.thga.fregelanguageserver.diagnostic.Diagnostic", base="Diagnostic", member="showList" @@ -387,7 +390,7 @@ ) ), @Meta.SymL( - offset=1116, + offset=1182, name=@Meta.QName( kind=2, pack="ch.fhnw.thga.fregelanguageserver.diagnostic.Diagnostic", base="Diagnostic", member="show" @@ -398,7 +401,7 @@ ) ), @Meta.SymL( - offset=1116, + offset=1182, name=@Meta.QName( kind=2, pack="ch.fhnw.thga.fregelanguageserver.diagnostic.Diagnostic", base="Diagnostic", member="showsub" @@ -409,7 +412,7 @@ ) ), @Meta.SymL( - offset=1095, + offset=1161, name=@Meta.QName( kind=2, pack="ch.fhnw.thga.fregelanguageserver.diagnostic.Diagnostic", base="Diagnostic", member="hashCode" @@ -420,7 +423,7 @@ ) ), @Meta.SymL( - offset=1116, + offset=1182, name=@Meta.QName( kind=2, pack="ch.fhnw.thga.fregelanguageserver.diagnostic.Diagnostic", base="Diagnostic", member="display" @@ -431,7 +434,7 @@ ) ), @Meta.SymL( - offset=1095, + offset=1161, name=@Meta.QName( kind=2, pack="ch.fhnw.thga.fregelanguageserver.diagnostic.Diagnostic", base="Diagnostic", member="!=" @@ -442,7 +445,7 @@ ) ), @Meta.SymL( - offset=1095, + offset=1161, name=@Meta.QName( kind=2, pack="ch.fhnw.thga.fregelanguageserver.diagnostic.Diagnostic", base="Diagnostic", member="==" @@ -455,7 +458,7 @@ }, funs={ @Meta.SymV( - offset=1050, + offset=1116, name=@Meta.QName( kind=2, pack="ch.fhnw.thga.fregelanguageserver.diagnostic.Diagnostic", base="Diagnostic", member="upd$source" @@ -463,7 +466,7 @@ stri="s(su)", sig=20, depth=2, rkind=13, doc="update field @source@" ), @Meta.SymV( - offset=991, + offset=1057, name=@Meta.QName( kind=2, pack="ch.fhnw.thga.fregelanguageserver.diagnostic.Diagnostic", base="Diagnostic", member="upd$range" @@ -471,7 +474,7 @@ stri="s(su)", sig=21, depth=2, rkind=13, doc="update field @range@" ), @Meta.SymV( - offset=1014, + offset=1080, name=@Meta.QName( kind=2, pack="ch.fhnw.thga.fregelanguageserver.diagnostic.Diagnostic", base="Diagnostic", member="upd$severity" @@ -479,15 +482,15 @@ stri="s(su)", sig=22, depth=2, rkind=13, doc="update field @severity@" ), @Meta.SymV( - offset=1050, + offset=1116, name=@Meta.QName( kind=2, pack="ch.fhnw.thga.fregelanguageserver.diagnostic.Diagnostic", base="Diagnostic", member="source" ), - stri="s(s)", sig=4, depth=1, rkind=13, doc="access field @source@" + stri="s(s)", sig=1, depth=1, rkind=13, doc="access field @source@" ), @Meta.SymV( - offset=1074, + offset=1140, name=@Meta.QName( kind=2, pack="ch.fhnw.thga.fregelanguageserver.diagnostic.Diagnostic", base="Diagnostic", member="upd$message" @@ -495,7 +498,7 @@ stri="s(su)", sig=20, depth=2, rkind=13, doc="update field @message@" ), @Meta.SymV( - offset=991, + offset=1057, name=@Meta.QName( kind=2, pack="ch.fhnw.thga.fregelanguageserver.diagnostic.Diagnostic", base="Diagnostic", member="range" @@ -503,7 +506,7 @@ stri="s(s)", sig=23, depth=1, rkind=13, doc="access field @range@" ), @Meta.SymV( - offset=1014, + offset=1080, name=@Meta.QName( kind=2, pack="ch.fhnw.thga.fregelanguageserver.diagnostic.Diagnostic", base="Diagnostic", member="severity" @@ -511,7 +514,7 @@ stri="s(s)", sig=24, depth=1, rkind=13, doc="access field @severity@" ), @Meta.SymV( - offset=1050, + offset=1116, name=@Meta.QName( kind=2, pack="ch.fhnw.thga.fregelanguageserver.diagnostic.Diagnostic", base="Diagnostic", member="has$source" @@ -519,7 +522,7 @@ stri="s(u)", sig=26, depth=1, rkind=13, doc="check if constructor has field @source@" ), @Meta.SymV( - offset=991, + offset=1057, name=@Meta.QName( kind=2, pack="ch.fhnw.thga.fregelanguageserver.diagnostic.Diagnostic", base="Diagnostic", member="has$range" @@ -527,7 +530,7 @@ stri="s(u)", sig=26, depth=1, rkind=13, doc="check if constructor has field @range@" ), @Meta.SymV( - offset=1014, + offset=1080, name=@Meta.QName( kind=2, pack="ch.fhnw.thga.fregelanguageserver.diagnostic.Diagnostic", base="Diagnostic", member="has$severity" @@ -535,7 +538,7 @@ stri="s(u)", sig=26, depth=1, rkind=13, doc="check if constructor has field @severity@" ), @Meta.SymV( - offset=1014, + offset=1080, name=@Meta.QName( kind=2, pack="ch.fhnw.thga.fregelanguageserver.diagnostic.Diagnostic", base="Diagnostic", member="chg$severity" @@ -543,7 +546,7 @@ stri="s(su)", sig=28, depth=2, rkind=13, doc="change field @severity@" ), @Meta.SymV( - offset=1050, + offset=1116, name=@Meta.QName( kind=2, pack="ch.fhnw.thga.fregelanguageserver.diagnostic.Diagnostic", base="Diagnostic", member="chg$source" @@ -551,7 +554,7 @@ stri="s(su)", sig=30, depth=2, rkind=13, doc="change field @source@" ), @Meta.SymV( - offset=1074, + offset=1140, name=@Meta.QName( kind=2, pack="ch.fhnw.thga.fregelanguageserver.diagnostic.Diagnostic", base="Diagnostic", member="chg$message" @@ -559,7 +562,7 @@ stri="s(su)", sig=30, depth=2, rkind=13, doc="change field @message@" ), @Meta.SymV( - offset=991, + offset=1057, name=@Meta.QName( kind=2, pack="ch.fhnw.thga.fregelanguageserver.diagnostic.Diagnostic", base="Diagnostic", member="chg$range" @@ -567,7 +570,7 @@ stri="s(su)", sig=32, depth=2, rkind=13, doc="change field @range@" ), @Meta.SymV( - offset=1074, + offset=1140, name=@Meta.QName( kind=2, pack="ch.fhnw.thga.fregelanguageserver.diagnostic.Diagnostic", base="Diagnostic", member="has$message" @@ -575,25 +578,25 @@ stri="s(u)", sig=26, depth=1, rkind=13, doc="check if constructor has field @message@" ), @Meta.SymV( - offset=1074, + offset=1140, name=@Meta.QName( kind=2, pack="ch.fhnw.thga.fregelanguageserver.diagnostic.Diagnostic", base="Diagnostic", member="message" ), - stri="s(s)", sig=4, depth=1, rkind=13, doc="access field @message@" + stri="s(s)", sig=1, depth=1, rkind=13, doc="access field @message@" ) }, prod=true ), @Meta.SymT( - offset=640, + offset=706, name=@Meta.QName( kind=0, pack="ch.fhnw.thga.fregelanguageserver.diagnostic.Diagnostic", base="DiagnosticSeverity" ), typ=8, kind=12, cons={ @Meta.SymD( - offset=669, + offset=735, name=@Meta.QName( kind=2, pack="ch.fhnw.thga.fregelanguageserver.diagnostic.Diagnostic", base="DiagnosticSeverity", member="WARNING" @@ -601,7 +604,7 @@ cid=1, typ=8, fields={} ), @Meta.SymD( - offset=693, + offset=759, name=@Meta.QName( kind=2, pack="ch.fhnw.thga.fregelanguageserver.diagnostic.Diagnostic", base="DiagnosticSeverity", member="HINT" @@ -609,7 +612,7 @@ cid=3, typ=8, fields={} ), @Meta.SymD( - offset=661, + offset=727, name=@Meta.QName( kind=2, pack="ch.fhnw.thga.fregelanguageserver.diagnostic.Diagnostic", base="DiagnosticSeverity", member="ERROR" @@ -617,7 +620,7 @@ cid=0, typ=8, fields={} ), @Meta.SymD( - offset=679, + offset=745, name=@Meta.QName( kind=2, pack="ch.fhnw.thga.fregelanguageserver.diagnostic.Diagnostic", base="DiagnosticSeverity", member="INFORMATION" @@ -627,29 +630,29 @@ }, lnks={ @Meta.SymL( - offset=728, + offset=794, name=@Meta.QName( kind=2, pack="ch.fhnw.thga.fregelanguageserver.diagnostic.Diagnostic", base="DiagnosticSeverity", - member="showsPrec" + member="showsub" ), alias=@Meta.QName( kind=2, pack="ch.fhnw.thga.fregelanguageserver.diagnostic.Diagnostic", base="Show_DiagnosticSeverity", - member="showsPrec" + member="showsub" ) ), @Meta.SymL( - offset=728, + offset=794, name=@Meta.QName( kind=2, pack="ch.fhnw.thga.fregelanguageserver.diagnostic.Diagnostic", base="DiagnosticSeverity", - member="showsub" + member="showList" ), alias=@Meta.QName( kind=2, pack="ch.fhnw.thga.fregelanguageserver.diagnostic.Diagnostic", base="Show_DiagnosticSeverity", - member="showsub" + member="showList" ) ), @Meta.SymL( - offset=728, + offset=794, name=@Meta.QName( kind=2, pack="ch.fhnw.thga.fregelanguageserver.diagnostic.Diagnostic", base="DiagnosticSeverity", member="showChars" @@ -660,29 +663,29 @@ ) ), @Meta.SymL( - offset=728, + offset=794, name=@Meta.QName( kind=2, pack="ch.fhnw.thga.fregelanguageserver.diagnostic.Diagnostic", base="DiagnosticSeverity", - member="show" + member="showsPrec" ), alias=@Meta.QName( kind=2, pack="ch.fhnw.thga.fregelanguageserver.diagnostic.Diagnostic", base="Show_DiagnosticSeverity", - member="show" + member="showsPrec" ) ), @Meta.SymL( - offset=728, + offset=765, name=@Meta.QName( kind=2, pack="ch.fhnw.thga.fregelanguageserver.diagnostic.Diagnostic", base="DiagnosticSeverity", - member="showList" + member="hashCode" ), alias=@Meta.QName( - kind=2, pack="ch.fhnw.thga.fregelanguageserver.diagnostic.Diagnostic", base="Show_DiagnosticSeverity", - member="showList" + kind=2, pack="ch.fhnw.thga.fregelanguageserver.diagnostic.Diagnostic", base="Eq_DiagnosticSeverity", + member="hashCode" ) ), @Meta.SymL( - offset=728, + offset=794, name=@Meta.QName( kind=2, pack="ch.fhnw.thga.fregelanguageserver.diagnostic.Diagnostic", base="DiagnosticSeverity", member="display" @@ -693,7 +696,7 @@ ) ), @Meta.SymL( - offset=699, + offset=765, name=@Meta.QName( kind=2, pack="ch.fhnw.thga.fregelanguageserver.diagnostic.Diagnostic", base="DiagnosticSeverity", member="!=" @@ -704,7 +707,7 @@ ) ), @Meta.SymL( - offset=699, + offset=765, name=@Meta.QName( kind=2, pack="ch.fhnw.thga.fregelanguageserver.diagnostic.Diagnostic", base="DiagnosticSeverity", member="==" @@ -715,14 +718,14 @@ ) ), @Meta.SymL( - offset=699, + offset=794, name=@Meta.QName( kind=2, pack="ch.fhnw.thga.fregelanguageserver.diagnostic.Diagnostic", base="DiagnosticSeverity", - member="hashCode" + member="show" ), alias=@Meta.QName( - kind=2, pack="ch.fhnw.thga.fregelanguageserver.diagnostic.Diagnostic", base="Eq_DiagnosticSeverity", - member="hashCode" + kind=2, pack="ch.fhnw.thga.fregelanguageserver.diagnostic.Diagnostic", base="Show_DiagnosticSeverity", + member="show" ) ) }, @@ -731,25 +734,25 @@ }, symvs={ @Meta.SymV( - offset=1140, + offset=1206, name=@Meta.QName(pack="ch.fhnw.thga.fregelanguageserver.diagnostic.Diagnostic", base="tokensToRange"), stri="s(s)", sig=34, depth=1, rkind=13 ), @Meta.SymV( - offset=5024, name=@Meta.QName(pack="ch.fhnw.thga.fregelanguageserver.diagnostic.Diagnostic", base="posToTokens"), + offset=5073, name=@Meta.QName(pack="ch.fhnw.thga.fregelanguageserver.diagnostic.Diagnostic", base="posToTokens"), stri="s(su)", sig=37, depth=2, rkind=45 ), @Meta.SymV( - offset=5165, name=@Meta.QName(pack="ch.fhnw.thga.fregelanguageserver.diagnostic.Diagnostic", base="main"), + offset=5214, name=@Meta.QName(pack="ch.fhnw.thga.fregelanguageserver.diagnostic.Diagnostic", base="main"), stri="u", sig=38, depth=0, rkind=8 ), @Meta.SymV( - offset=760, + offset=826, name=@Meta.QName(pack="ch.fhnw.thga.fregelanguageserver.diagnostic.Diagnostic", base="fromCompilerSeverity"), stri="s(s)", sig=40, depth=1, rkind=13 ), @Meta.SymV( - offset=2877, + offset=2902, name=@Meta.QName( pack="ch.fhnw.thga.fregelanguageserver.diagnostic.Diagnostic", base="fregeLSPServerShouldMapSingleCompilerMessageToDiagnostics" @@ -757,7 +760,7 @@ stri="u", sig=41, depth=0, rkind=8 ), @Meta.SymV( - offset=3648, + offset=3685, name=@Meta.QName( pack="ch.fhnw.thga.fregelanguageserver.diagnostic.Diagnostic", base="fregeLSPServerShouldMapMultipleCompilerMessageToDiagnostics" @@ -765,7 +768,7 @@ stri="u", sig=41, depth=0, rkind=8 ), @Meta.SymV( - offset=2484, + offset=2509, name=@Meta.QName( pack="ch.fhnw.thga.fregelanguageserver.diagnostic.Diagnostic", base="fregeLSPServerShouldMapNoCompilerMessagesToEmptyArray" @@ -773,57 +776,57 @@ stri="u", sig=41, depth=0, rkind=8 ), @Meta.SymV( - offset=2052, + offset=2118, name=@Meta.QName(pack="ch.fhnw.thga.fregelanguageserver.diagnostic.Diagnostic", base="extractDiagnostics"), stri="s", sig=42, depth=0, rkind=13 ), @Meta.SymV( - offset=1702, + offset=1768, name=@Meta.QName( pack="ch.fhnw.thga.fregelanguageserver.diagnostic.Diagnostic", base="createDiagnosticFromMessage" ), stri="s(s)", sig=44, depth=1, rkind=13 ), @Meta.SymV( - offset=1552, + offset=1618, name=@Meta.QName(pack="ch.fhnw.thga.fregelanguageserver.diagnostic.Diagnostic", base="createRangeFromPos"), stri="s(s)", sig=46, depth=1, rkind=13 ), @Meta.SymV( - offset=2234, + offset=2300, name=@Meta.QName(pack="ch.fhnw.thga.fregelanguageserver.diagnostic.Diagnostic", base="compileAndGetDiagnostics"), stri="s(u)", sig=47, depth=1, rkind=13 ) }, symls={ @Meta.SymL( - offset=669, name=@Meta.QName(pack="ch.fhnw.thga.fregelanguageserver.diagnostic.Diagnostic", base="WARNING"), + offset=735, name=@Meta.QName(pack="ch.fhnw.thga.fregelanguageserver.diagnostic.Diagnostic", base="WARNING"), alias=@Meta.QName( kind=2, pack="ch.fhnw.thga.fregelanguageserver.diagnostic.Diagnostic", base="DiagnosticSeverity", member="WARNING" ) ), @Meta.SymL( - offset=693, name=@Meta.QName(pack="ch.fhnw.thga.fregelanguageserver.diagnostic.Diagnostic", base="HINT"), + offset=745, name=@Meta.QName(pack="ch.fhnw.thga.fregelanguageserver.diagnostic.Diagnostic", base="INFORMATION"), alias=@Meta.QName( - kind=2, pack="ch.fhnw.thga.fregelanguageserver.diagnostic.Diagnostic", base="DiagnosticSeverity", member="HINT" + kind=2, pack="ch.fhnw.thga.fregelanguageserver.diagnostic.Diagnostic", base="DiagnosticSeverity", + member="INFORMATION" ) ), @Meta.SymL( - offset=679, name=@Meta.QName(pack="ch.fhnw.thga.fregelanguageserver.diagnostic.Diagnostic", base="INFORMATION"), + offset=759, name=@Meta.QName(pack="ch.fhnw.thga.fregelanguageserver.diagnostic.Diagnostic", base="HINT"), alias=@Meta.QName( - kind=2, pack="ch.fhnw.thga.fregelanguageserver.diagnostic.Diagnostic", base="DiagnosticSeverity", - member="INFORMATION" + kind=2, pack="ch.fhnw.thga.fregelanguageserver.diagnostic.Diagnostic", base="DiagnosticSeverity", member="HINT" ) ), @Meta.SymL( - offset=661, name=@Meta.QName(pack="ch.fhnw.thga.fregelanguageserver.diagnostic.Diagnostic", base="ERROR"), + offset=727, name=@Meta.QName(pack="ch.fhnw.thga.fregelanguageserver.diagnostic.Diagnostic", base="ERROR"), alias=@Meta.QName( kind=2, pack="ch.fhnw.thga.fregelanguageserver.diagnostic.Diagnostic", base="DiagnosticSeverity", member="ERROR" ) ), @Meta.SymL( - offset=973, name=@Meta.QName(pack="ch.fhnw.thga.fregelanguageserver.diagnostic.Diagnostic", base="Diagnostic"), + offset=1039, name=@Meta.QName(pack="ch.fhnw.thga.fregelanguageserver.diagnostic.Diagnostic", base="Diagnostic"), alias=@Meta.QName( kind=2, pack="ch.fhnw.thga.fregelanguageserver.diagnostic.Diagnostic", base="Diagnostic", member="Diagnostic" ) @@ -834,31 +837,32 @@ kind=2, suba=0, tcon={@Meta.QName(kind=0, pack="ch.fhnw.thga.fregelanguageserver.diagnostic.Diagnostic", base="Diagnostic")} ), - @Meta.Tau(kind=2, suba=0, tcon={@Meta.QName(kind=0, pack="frege.prelude.PreludeBase", base="Int")}), @Meta.Tau(kind=2, suba=0, tcon={@Meta.QName(kind=0, pack="frege.prelude.PreludeBase", base="StringJ")}), @Meta.Tau(kind=2, suba=0, tcon={@Meta.QName(kind=0, pack="frege.prelude.PreludeBase", base="Char")}), - @Meta.Tau(kind=0, suba=2, subb=3), + @Meta.Tau(kind=0, suba=1, subb=2), @Meta.Tau(kind=2, suba=0, tcon={@Meta.QName(kind=0, pack="frege.prelude.PreludeBase", base="[]")}), - @Meta.Tau(kind=0, suba=5, subb=3), @Meta.Tau(kind=0, suba=5, subb=0), + @Meta.Tau(kind=0, suba=4, subb=0), + @Meta.Tau(kind=2, suba=0, tcon={@Meta.QName(kind=0, pack="frege.prelude.PreludeBase", base="Int")}), + @Meta.Tau(kind=0, suba=4, subb=2), @Meta.Tau( kind=2, suba=0, tcon={ @Meta.QName(kind=0, pack="ch.fhnw.thga.fregelanguageserver.diagnostic.Diagnostic", base="DiagnosticSeverity") } ), - @Meta.Tau(kind=0, suba=5, subb=8), + @Meta.Tau(kind=0, suba=4, subb=8), @Meta.Tau(kind=2, suba=0, tcon={@Meta.QName(kind=0, pack="frege.prelude.PreludeBase", base="Bool")}), @Meta.Tau( kind=2, suba=0, tcon={@Meta.QName(kind=0, pack="ch.fhnw.thga.fregelanguageserver.types.Range", base="Range")} ), @Meta.Tau(kind=9), @Meta.Tau(suba=12, tvar="α"), @Meta.Tau(kind=2, suba=0, tcon={@Meta.QName(kind=0, pack="frege.prelude.PreludeBase", base="->")}), - @Meta.Tau(kind=0, suba=14, subb=8), @Meta.Tau(kind=0, suba=15, subb=8), @Meta.Tau(kind=0, suba=14, subb=4), - @Meta.Tau(kind=0, suba=17, subb=4), @Meta.Tau(kind=0, suba=14, subb=11), @Meta.Tau(kind=0, suba=19, subb=11), + @Meta.Tau(kind=0, suba=14, subb=8), @Meta.Tau(kind=0, suba=15, subb=8), @Meta.Tau(kind=0, suba=14, subb=3), + @Meta.Tau(kind=0, suba=17, subb=3), @Meta.Tau(kind=0, suba=14, subb=11), @Meta.Tau(kind=0, suba=19, subb=11), @Meta.Tau(kind=2, suba=0, tcon={@Meta.QName(kind=0, pack="frege.compiler.types.Tokens", base="Token")}), - @Meta.Tau(kind=0, suba=5, subb=21), + @Meta.Tau(kind=0, suba=4, subb=21), @Meta.Tau(kind=2, suba=0, tcon={@Meta.QName(kind=0, pack="frege.compiler.types.Positions", base="Position")}), - @Meta.Tau(kind=0, suba=5, subb=23), + @Meta.Tau(kind=0, suba=4, subb=23), @Meta.Tau(kind=2, suba=0, tcon={@Meta.QName(kind=0, pack="frege.compiler.types.Global", base="Global")}), @Meta.Tau(kind=2, suba=0, tcon={@Meta.QName(kind=0, pack="frege.prelude.PreludeBase", base="ST")}), @Meta.Tau(kind=2, suba=0, tcon={@Meta.QName(kind=0, pack="frege.prelude.PreludeBase", base="RealWorld")}), @@ -870,21 +874,21 @@ @Meta.Tau(kind=2, suba=0, tcon={@Meta.QName(kind=0, pack="frege.test.QuickCheckProperty", base="Prop")}), @Meta.Tau(kind=0, suba=32, subb=33), @Meta.Tau(kind=2, suba=0, tcon={@Meta.QName(kind=0, pack="frege.control.monad.State", base="State")}), - @Meta.Tau(kind=0, suba=35, subb=25), @Meta.Tau(kind=0, suba=36, subb=7), + @Meta.Tau(kind=0, suba=35, subb=25), @Meta.Tau(kind=0, suba=36, subb=5), @Meta.Tau(kind=2, suba=0, tcon={@Meta.QName(kind=0, pack="frege.compiler.types.Global", base="Message")}), - @Meta.Tau(kind=0, suba=36, subb=0), @Meta.Tau(kind=0, suba=36, subb=11), @Meta.Tau(kind=0, suba=28, subb=7) + @Meta.Tau(kind=0, suba=36, subb=0), @Meta.Tau(kind=0, suba=36, subb=11), @Meta.Tau(kind=0, suba=28, subb=5) }, rhos={ - @Meta.Rho(rhofun=false, rhotau=0), @Meta.Rho(rhofun=false, rhotau=1), @Meta.Rho(rhofun=false, rhotau=4), - @Meta.Rho(sigma=2, rhotau=2), @Meta.Rho(sigma=0, rhotau=3), @Meta.Rho(sigma=1, rhotau=4), - @Meta.Rho(sigma=0, rhotau=2), @Meta.Rho(rhofun=false, rhotau=6), @Meta.Rho(sigma=0, rhotau=7), - @Meta.Rho(rhofun=false, rhotau=7), @Meta.Rho(sigma=6, rhotau=3), @Meta.Rho(rhofun=false, rhotau=8), - @Meta.Rho(sigma=8, rhotau=3), @Meta.Rho(sigma=1, rhotau=12), @Meta.Rho(sigma=8, rhotau=2), - @Meta.Rho(sigma=8, rhotau=7), @Meta.Rho(rhofun=false, rhotau=9), @Meta.Rho(sigma=12, rhotau=3), - @Meta.Rho(sigma=8, rhotau=1), @Meta.Rho(rhofun=false, rhotau=10), @Meta.Rho(sigma=8, rhotau=19), - @Meta.Rho(sigma=8, rhotau=20), @Meta.Rho(sigma=0, rhotau=1), @Meta.Rho(sigma=0, rhotau=19), - @Meta.Rho(sigma=0, rhotau=23), @Meta.Rho(rhofun=false, rhotau=11), @Meta.Rho(sigma=2, rhotau=0), - @Meta.Rho(sigma=2, rhotau=26), @Meta.Rho(sigma=8, rhotau=27), @Meta.Rho(sigma=18, rhotau=28), + @Meta.Rho(rhofun=false, rhotau=0), @Meta.Rho(rhofun=false, rhotau=3), @Meta.Rho(sigma=0, rhotau=1), + @Meta.Rho(rhofun=false, rhotau=5), @Meta.Rho(sigma=3, rhotau=1), @Meta.Rho(sigma=2, rhotau=4), + @Meta.Rho(rhofun=false, rhotau=6), @Meta.Rho(sigma=0, rhotau=4), @Meta.Rho(sigma=5, rhotau=7), + @Meta.Rho(rhofun=false, rhotau=7), @Meta.Rho(sigma=0, rhotau=9), @Meta.Rho(rhofun=false, rhotau=8), + @Meta.Rho(sigma=8, rhotau=1), @Meta.Rho(rhofun=false, rhotau=9), @Meta.Rho(sigma=10, rhotau=4), + @Meta.Rho(sigma=8, rhotau=4), @Meta.Rho(sigma=5, rhotau=15), @Meta.Rho(sigma=8, rhotau=9), + @Meta.Rho(sigma=0, rhotau=6), @Meta.Rho(rhofun=false, rhotau=10), @Meta.Rho(sigma=0, rhotau=19), + @Meta.Rho(sigma=0, rhotau=20), @Meta.Rho(sigma=8, rhotau=6), @Meta.Rho(sigma=8, rhotau=19), + @Meta.Rho(sigma=8, rhotau=23), @Meta.Rho(rhofun=false, rhotau=11), @Meta.Rho(sigma=3, rhotau=0), + @Meta.Rho(sigma=3, rhotau=26), @Meta.Rho(sigma=8, rhotau=27), @Meta.Rho(sigma=18, rhotau=28), @Meta.Rho(sigma=0, rhotau=26), @Meta.Rho(sigma=18, rhotau=0), @Meta.Rho(sigma=0, rhotau=31), @Meta.Rho(sigma=8, rhotau=0), @Meta.Rho(sigma=0, rhotau=33), @Meta.Rho(sigma=0, rhotau=25), @Meta.Rho(sigma=0, rhotau=11), @Meta.Rho(rhofun=false, rhotau=13), @Meta.Rho(sigma=25, rhotau=19), @@ -897,12 +901,12 @@ @Meta.Rho(rhofun=false, rhotau=34), @Meta.Rho(rhofun=false, rhotau=37), @Meta.Rho(rhofun=false, rhotau=38), @Meta.Rho(rhofun=false, rhotau=39), @Meta.Rho(sigma=43, rhotau=60), @Meta.Rho(rhofun=false, rhotau=23), @Meta.Rho(rhofun=false, rhotau=40), @Meta.Rho(sigma=45, rhotau=63), @Meta.Rho(rhofun=false, rhotau=41), - @Meta.Rho(sigma=2, rhotau=65) + @Meta.Rho(sigma=3, rhotau=65) }, sigmas={ - @Meta.Sigma(rho=0), @Meta.Sigma(rho=1), @Meta.Sigma(rho=2), @Meta.Sigma(rho=5), @Meta.Sigma(rho=6), - @Meta.Sigma(rho=8), @Meta.Sigma(rho=9), @Meta.Sigma(rho=10), @Meta.Sigma(rho=11), @Meta.Sigma(rho=13), - @Meta.Sigma(rho=14), @Meta.Sigma(rho=15), @Meta.Sigma(rho=16), @Meta.Sigma(rho=17), @Meta.Sigma(rho=18), + @Meta.Sigma(rho=0), @Meta.Sigma(rho=2), @Meta.Sigma(rho=3), @Meta.Sigma(rho=1), @Meta.Sigma(rho=5), + @Meta.Sigma(rho=6), @Meta.Sigma(rho=8), @Meta.Sigma(rho=10), @Meta.Sigma(rho=11), @Meta.Sigma(rho=12), + @Meta.Sigma(rho=13), @Meta.Sigma(rho=14), @Meta.Sigma(rho=16), @Meta.Sigma(rho=17), @Meta.Sigma(rho=18), @Meta.Sigma(rho=21), @Meta.Sigma(rho=22), @Meta.Sigma(rho=24), @Meta.Sigma(rho=25), @Meta.Sigma(rho=29), @Meta.Sigma(rho=30), @Meta.Sigma(rho=32), @Meta.Sigma(rho=34), @Meta.Sigma(rho=35), @Meta.Sigma(rho=36), @Meta.Sigma(rho=37), @Meta.Sigma(bound={"α"}, kinds={12}, rho=38), @Meta.Sigma(rho=39), @Meta.Sigma(rho=41), @@ -920,104 +924,99 @@ final public class Diagnostic { final public static class IShow_Diagnostic implements PreludeText.CShow { public IShow_Diagnostic() {} final public static IShow_Diagnostic it = new IShow_Diagnostic(); + @Override final public String/**/ ƒshowsub(final Lazy arg$1) { + return IShow_Diagnostic.showsub(arg$1.call()); + } + @Override final public String/**/ ƒshowList( + final Lazy> arg$1, final Lazy*/> arg$2 + ) { + return IShow_Diagnostic.showList(arg$1.call(), arg$2.call()); + } @Override final public String/**/ ƒshowsPrec( final Lazy arg$1, final Lazy arg$2, final Lazy*/> arg$3 ) { return IShow_Diagnostic.showsPrec(arg$1, arg$2.call(), arg$3.call()); } - @Override final public String/**/ ƒshowsub(final Lazy arg$1) { - return IShow_Diagnostic.showsub(arg$1.call()); - } - @Override final public PreludeBase.TList ƒshowChars(final Lazy arg$1) { - return IShow_Diagnostic.showChars(arg$1.call()); - } @Override final public String/**/ ƒdisplay(final Lazy arg$1) { return IShow_Diagnostic.display(arg$1.call()); } @Override final public String/**/ ƒshow(final Lazy arg$1) { return IShow_Diagnostic.show(arg$1.call()); } - @Override final public String/**/ ƒshowList( - final Lazy> arg$1, final Lazy*/> arg$2 - ) { - return IShow_Diagnostic.showList(arg$1.call(), arg$2.call()); - } - final public static String/**/ showsPrec( - final Lazy arg$1, final TDiagnostic arg$2, final String/**/ arg$3 - ) { - return IShow_Diagnostic.show(arg$2) + arg$3; + @Override final public PreludeBase.TList ƒshowChars(final Lazy arg$1) { + return IShow_Diagnostic.showChars(arg$1.call()); } final public static String/**/ showsub(final TDiagnostic arg$1) { - final String/**/ a4$17473 = arg$1.mem$message.call(); - final String/**/ a3$17472 = arg$1.mem$source.call(); - final short a2$17471 = (short)arg$1.mem$severity.call(); - final Range.TRange a1$17470 = arg$1.mem$range.call(); - return ("(" + (((((((("Diagnostic" + " ") + Range.IShow_Range.showsub(a1$17470)) + " ") + IShow_DiagnosticSeverity.showsub( - a2$17471 - )) + " ") + PreludeText.IShow_String.showsub(a3$17472)) + " ") + PreludeText.IShow_String.showsub( - a4$17473 + final String/**/ a4$17474 = arg$1.mem$message.call(); + final String/**/ a3$17473 = arg$1.mem$source.call(); + final short a2$17472 = (short)arg$1.mem$severity.call(); + final Range.TRange a1$17471 = arg$1.mem$range.call(); + return ("(" + (((((((("Diagnostic" + " ") + Range.IShow_Range.showsub(a1$17471)) + " ") + IShow_DiagnosticSeverity.showsub( + a2$17472 + )) + " ") + PreludeText.IShow_String.showsub(a3$17473)) + " ") + PreludeText.IShow_String.showsub( + a4$17474 ))) + ")"; } - final public static PreludeBase.TList showChars(final TDiagnostic arg$1) { - return PreludeList.IListView_StringJ.toList(IShow_Diagnostic.show(arg$1)); - } - final public static String/**/ display(final TDiagnostic arg$1) { - return IShow_Diagnostic.show(arg$1); - } - final public static String/**/ show(final TDiagnostic arg$1) { - final String/**/ a4$17468 = arg$1.mem$message.call(); - final String/**/ a3$17467 = arg$1.mem$source.call(); - final short a2$17466 = (short)arg$1.mem$severity.call(); - final Range.TRange a1$17465 = arg$1.mem$range.call(); - return ((((((("Diagnostic" + " ") + Range.IShow_Range.showsub(a1$17465)) + " ") + IShow_DiagnosticSeverity.showsub( - a2$17466 - )) + " ") + PreludeText.IShow_String.showsub(a3$17467)) + " ") + PreludeText.IShow_String.showsub( - a4$17468 - ); - } final public static String/**/ showList( final PreludeBase.TList arg$1, final String/**/ arg$2 ) { return "[" + (PreludeText.joined( Thunk.*/>lazy(", "), PreludeList.*/, TDiagnostic>map( - (Func.U*/>)((final Lazy η$18742) -> Thunk.< + (Func.U*/>)((final Lazy η$18677) -> Thunk.< String/**/ - >shared((Lazy*/>)(() -> IShow_Diagnostic.show(η$18742.call())))), + >shared((Lazy*/>)(() -> IShow_Diagnostic.show(η$18677.call())))), arg$1 ) ).call() + ("]" + arg$2)); } + final public static String/**/ showsPrec( + final Lazy arg$1, final TDiagnostic arg$2, final String/**/ arg$3 + ) { + return IShow_Diagnostic.show(arg$2) + arg$3; + } + final public static String/**/ display(final TDiagnostic arg$1) { + return IShow_Diagnostic.show(arg$1); + } + final public static String/**/ show(final TDiagnostic arg$1) { + final String/**/ a4$17469 = arg$1.mem$message.call(); + final String/**/ a3$17468 = arg$1.mem$source.call(); + final short a2$17467 = (short)arg$1.mem$severity.call(); + final Range.TRange a1$17466 = arg$1.mem$range.call(); + return ((((((("Diagnostic" + " ") + Range.IShow_Range.showsub(a1$17466)) + " ") + IShow_DiagnosticSeverity.showsub( + a2$17467 + )) + " ") + PreludeText.IShow_String.showsub(a3$17468)) + " ") + PreludeText.IShow_String.showsub( + a4$17469 + ); + } + final public static PreludeBase.TList showChars(final TDiagnostic arg$1) { + return PreludeList.IListView_StringJ.toList(IShow_Diagnostic.show(arg$1)); + } } final public static class IShow_DiagnosticSeverity implements PreludeText.CShow { public IShow_DiagnosticSeverity() {} final public static IShow_DiagnosticSeverity it = new IShow_DiagnosticSeverity(); + @Override final public String/**/ ƒshowsub(final Lazy arg$1) { + return IShow_DiagnosticSeverity.showsub((short)arg$1.call()); + } + @Override final public String/**/ ƒshowList( + final Lazy> arg$1, final Lazy*/> arg$2 + ) { + return IShow_DiagnosticSeverity.showList(arg$1.call(), arg$2.call()); + } @Override final public String/**/ ƒshowsPrec( final Lazy arg$1, final Lazy arg$2, final Lazy*/> arg$3 ) { return IShow_DiagnosticSeverity.showsPrec(arg$1, (short)arg$2.call(), arg$3.call()); } - @Override final public String/**/ ƒshowsub(final Lazy arg$1) { - return IShow_DiagnosticSeverity.showsub((short)arg$1.call()); - } - @Override final public PreludeBase.TList ƒshowChars(final Lazy arg$1) { - return IShow_DiagnosticSeverity.showChars((short)arg$1.call()); - } @Override final public String/**/ ƒdisplay(final Lazy arg$1) { return IShow_DiagnosticSeverity.display((short)arg$1.call()); } @Override final public String/**/ ƒshow(final Lazy arg$1) { return IShow_DiagnosticSeverity.show((short)arg$1.call()); } - @Override final public String/**/ ƒshowList( - final Lazy> arg$1, final Lazy*/> arg$2 - ) { - return IShow_DiagnosticSeverity.showList(arg$1.call(), arg$2.call()); - } - final public static String/**/ showsPrec( - final Lazy arg$1, final short arg$2, final String/**/ arg$3 - ) { - return IShow_DiagnosticSeverity.show(arg$2) + arg$3; + @Override final public PreludeBase.TList ƒshowChars(final Lazy arg$1) { + return IShow_DiagnosticSeverity.showChars((short)arg$1.call()); } final public static String/**/ showsub(final short arg$1) { if (arg$1 == TDiagnosticSeverity.ERROR) { @@ -1032,8 +1031,21 @@ public IShow_DiagnosticSeverity() {} assert arg$1 == TDiagnosticSeverity.HINT; return "HINT"; } - final public static PreludeBase.TList showChars(final short arg$1) { - return PreludeList.IListView_StringJ.toList(IShow_DiagnosticSeverity.show(arg$1)); + final public static String/**/ showList(final PreludeBase.TList arg$1, final String/**/ arg$2) { + return "[" + (PreludeText.joined( + Thunk.*/>lazy(", "), + PreludeList.*/, Short>map( + (Func.U*/>)((final Lazy η$18691) -> Thunk.< + String/**/ + >shared((Lazy*/>)(() -> IShow_DiagnosticSeverity.show((short)η$18691.call())))), + arg$1 + ) + ).call() + ("]" + arg$2)); + } + final public static String/**/ showsPrec( + final Lazy arg$1, final short arg$2, final String/**/ arg$3 + ) { + return IShow_DiagnosticSeverity.show(arg$2) + arg$3; } final public static String/**/ display(final short arg$1) { return IShow_DiagnosticSeverity.show(arg$1); @@ -1051,16 +1063,52 @@ final public static PreludeBase.TList showChars(final short arg$1) { assert arg$1 == TDiagnosticSeverity.HINT; return "HINT"; } - final public static String/**/ showList(final PreludeBase.TList arg$1, final String/**/ arg$2) { - return "[" + (PreludeText.joined( - Thunk.*/>lazy(", "), - PreludeList.*/, Short>map( - (Func.U*/>)((final Lazy η$18752) -> Thunk.< - String/**/ - >shared((Lazy*/>)(() -> IShow_DiagnosticSeverity.show((short)η$18752.call())))), - arg$1 - ) - ).call() + ("]" + arg$2)); + final public static PreludeBase.TList showChars(final short arg$1) { + return PreludeList.IListView_StringJ.toList(IShow_DiagnosticSeverity.show(arg$1)); + } +} +final public static class IEq_Diagnostic implements PreludeBase.CEq { + public IEq_Diagnostic() {} + final public static IEq_Diagnostic it = new IEq_Diagnostic(); + @Override final public int ƒhashCode(final Lazy arg$1) { + return IEq_Diagnostic.hashCode(arg$1.call()); + } + @Override final public boolean ƒ$excl$eq(final Lazy arg$1, final Lazy arg$2) { + return IEq_Diagnostic.$excl$eq(arg$1.call(), arg$2.call()); + } + @Override final public boolean ƒ$eq$eq(final Lazy arg$1, final Lazy arg$2) { + return IEq_Diagnostic.$eq$eq(arg$1.call(), arg$2.call()); + } + final public static int hashCode(final TDiagnostic arg$1) { + final String/**/ a4$17464 = arg$1.mem$message.call(); + final String/**/ a3$17463 = arg$1.mem$source.call(); + final short a2$17462 = (short)arg$1.mem$severity.call(); + final Range.TRange a1$17461 = arg$1.mem$range.call(); + return (31 * ((31 * ((31 * ((31 * ((31 * 1) + RunTM.constructor(arg$1))) + Range.IEq_Range.hashCode( + a1$17461 + ))) + IEq_DiagnosticSeverity.hashCode(a2$17462))) + a3$17463.hashCode())) + a4$17464 + .hashCode(); + } + final public static boolean $excl$eq(final TDiagnostic arg$1, final TDiagnostic arg$2) { + if (IEq_Diagnostic.$eq$eq(arg$1, arg$2)) { + return false; + } + else { + return true; + } + } + final public static boolean $eq$eq(final TDiagnostic arg$1, final TDiagnostic arg$2) { + final String/**/ µ$$17536 = arg$1.mem$message.call(); + final String/**/ µ$$17535 = arg$1.mem$source.call(); + final short µ$$17534 = (short)arg$1.mem$severity.call(); + final Range.TRange µ$$17533 = arg$1.mem$range.call(); + final String/**/ µ$$17540 = arg$2.mem$message.call(); + final String/**/ µ$$17539 = arg$2.mem$source.call(); + final short µ$$17538 = (short)arg$2.mem$severity.call(); + final Range.TRange µ$$17537 = arg$2.mem$range.call(); + return Range.IEq_Range.$eq$eq(µ$$17533, µ$$17537) && (IEq_DiagnosticSeverity.$eq$eq( + µ$$17534, µ$$17538 + ) && (µ$$17535.equals(µ$$17539) && µ$$17536.equals(µ$$17540))); } } final public static class IEq_DiagnosticSeverity implements PreludeBase.CEq { @@ -1105,50 +1153,6 @@ final public static int hashCode(final short arg$1) { } } } -final public static class IEq_Diagnostic implements PreludeBase.CEq { - public IEq_Diagnostic() {} - final public static IEq_Diagnostic it = new IEq_Diagnostic(); - @Override final public int ƒhashCode(final Lazy arg$1) { - return IEq_Diagnostic.hashCode(arg$1.call()); - } - @Override final public boolean ƒ$excl$eq(final Lazy arg$1, final Lazy arg$2) { - return IEq_Diagnostic.$excl$eq(arg$1.call(), arg$2.call()); - } - @Override final public boolean ƒ$eq$eq(final Lazy arg$1, final Lazy arg$2) { - return IEq_Diagnostic.$eq$eq(arg$1.call(), arg$2.call()); - } - final public static int hashCode(final TDiagnostic arg$1) { - final String/**/ a4$17463 = arg$1.mem$message.call(); - final String/**/ a3$17462 = arg$1.mem$source.call(); - final short a2$17461 = (short)arg$1.mem$severity.call(); - final Range.TRange a1$17460 = arg$1.mem$range.call(); - return (31 * ((31 * ((31 * ((31 * ((31 * 1) + RunTM.constructor(arg$1))) + Range.IEq_Range.hashCode( - a1$17460 - ))) + IEq_DiagnosticSeverity.hashCode(a2$17461))) + a3$17462.hashCode())) + a4$17463 - .hashCode(); - } - final public static boolean $excl$eq(final TDiagnostic arg$1, final TDiagnostic arg$2) { - if (IEq_Diagnostic.$eq$eq(arg$1, arg$2)) { - return false; - } - else { - return true; - } - } - final public static boolean $eq$eq(final TDiagnostic arg$1, final TDiagnostic arg$2) { - final String/**/ µ$$17535 = arg$1.mem$message.call(); - final String/**/ µ$$17534 = arg$1.mem$source.call(); - final short µ$$17533 = (short)arg$1.mem$severity.call(); - final Range.TRange µ$$17532 = arg$1.mem$range.call(); - final String/**/ µ$$17539 = arg$2.mem$message.call(); - final String/**/ µ$$17538 = arg$2.mem$source.call(); - final short µ$$17537 = (short)arg$2.mem$severity.call(); - final Range.TRange µ$$17536 = arg$2.mem$range.call(); - return Range.IEq_Range.$eq$eq(µ$$17532, µ$$17536) && (IEq_DiagnosticSeverity.$eq$eq( - µ$$17533, µ$$17537 - ) && (µ$$17534.equals(µ$$17538) && µ$$17535.equals(µ$$17539))); - } -} final public static class TDiagnostic implements frege.runtime.Value, Lazy { private TDiagnostic( final Lazy arg$1, final Lazy arg$2, final Lazy*/> arg$3, @@ -1194,19 +1198,19 @@ final public Thunk asThunk() { return TDiagnostic.mk(arg$1.mem$range, arg$2, arg$1.mem$source, arg$1.mem$message); } final public static String/**/ source(final TDiagnostic arg$1) { - final String/**/ a3$17391 = arg$1.mem$source.call(); - return a3$17391; + final String/**/ a3$17394 = arg$1.mem$source.call(); + return a3$17394; } final public static TDiagnostic upd$message(final TDiagnostic arg$1, final Lazy*/> arg$2) { return TDiagnostic.mk(arg$1.mem$range, arg$1.mem$severity, arg$1.mem$source, arg$2); } final public static Range.TRange range(final TDiagnostic arg$1) { - final Range.TRange a1$17353 = arg$1.mem$range.call(); - return a1$17353; + final Range.TRange a1$17356 = arg$1.mem$range.call(); + return a1$17356; } final public static short severity(final TDiagnostic arg$1) { - final short a2$17372 = (short)arg$1.mem$severity.call(); - return a2$17372; + final short a2$17375 = (short)arg$1.mem$severity.call(); + return a2$17375; } final public static <α> boolean has$source(final Lazy<α> arg$1) { return true; @@ -1254,8 +1258,8 @@ final public static short severity(final TDiagnostic arg$1) { return true; } final public static String/**/ message(final TDiagnostic arg$1) { - final String/**/ a4$17338 = arg$1.mem$message.call(); - return a4$17338; + final String/**/ a4$17341 = arg$1.mem$message.call(); + return a4$17341; } } final public static class TDiagnosticSeverity { @@ -1265,40 +1269,40 @@ final public static class TDiagnosticSeverity { final public static short INFORMATION = 2; } final public static Range.TRange tokensToRange(final PreludeBase.TList arg$1) { - final PreludeBase.TList.DList $18779 = arg$1.asList(); - if ($18779 != null) { + final PreludeBase.TList.DList $18718 = arg$1.asList(); + if ($18718 != null) { return Range.TRange.mk( Position.TPosition.mk(Thunk.lazy(1), Thunk.lazy(0)), Position.TPosition.mk(Thunk.lazy(2), Thunk.lazy(0)) ); } - final PreludeBase.TList.DCons $18780 = arg$1.asCons(); - if ($18780 != null) { - final PreludeBase.TList $18781 = $18780.mem2.call(); - final PreludeBase.TList.DList $18782 = $18781.asList(); - if ($18782 != null) { - final Tokens.TToken tk$17407 = $18780.mem1.call(); - return Range.tokenToRange(tk$17407); + final PreludeBase.TList.DCons $18719 = arg$1.asCons(); + if ($18719 != null) { + final PreludeBase.TList $18720 = $18719.mem2.call(); + final PreludeBase.TList.DList $18721 = $18720.asList(); + if ($18721 != null) { + final Tokens.TToken tk$17410 = $18719.mem1.call(); + return Range.tokenToRange(tk$17410); } } - final Lazy endToken$17410 = Thunk.shared( + final Lazy endToken$17413 = Thunk.shared( (Lazy)(() -> PreludeList.last(arg$1)) ); - final Lazy startToken$17409 = Thunk.shared( + final Lazy startToken$17412 = Thunk.shared( (Lazy)(() -> PreludeList.IListView_$lbrack$rbrack.head( arg$1 )) ); return Range.TRange.mk( Position.TPosition.mk( - Thunk.lazy(Tokens.TToken.line(startToken$17409.call())), - Thunk.lazy(Tokens.TToken.col(startToken$17409.call())) + Thunk.lazy(Tokens.TToken.line(startToken$17412.call())), + Thunk.lazy(Tokens.TToken.col(startToken$17412.call())) ), Position.TPosition.mk( - Thunk.lazy(Tokens.TToken.line(endToken$17410.call())), + Thunk.lazy(Tokens.TToken.line(endToken$17413.call())), Thunk.shared( - (Lazy)(() -> Tokens.TToken.col(endToken$17410.call()) + Tokens.TToken.value( - endToken$17410.call() + (Lazy)(() -> Tokens.TToken.col(endToken$17413.call()) + Tokens.TToken.value( + endToken$17413.call() ).length()) ) ) @@ -1307,74 +1311,61 @@ final public static Range.TRange tokensToRange(final PreludeBase.TList posToTokens( final PreludeBase.TList arg$1, final Lazy arg$2 ) { - final PreludeBase.TList.DCons $18784 = arg$1.asCons(); - if ($18784 != null) { - final Positions.TPosition µ$$17530 = $18784.mem1.call(); + final PreludeBase.TList.DCons $18723 = arg$1.asCons(); + if ($18723 != null) { + final Positions.TPosition µ$$17531 = $18723.mem1.call(); return PreludeList.IListMonoid_$lbrack$rbrack.$plus$plus( - Global.tokens(µ$$17530, arg$2), + Global.tokens(µ$$17531, arg$2), Thunk.>shared( (Lazy>)(() -> Diagnostic.posToTokens( - $18784.mem2.call(), arg$2 + $18723.mem2.call(), arg$2 )) ) ); } - final PreludeBase.TList.DList $18786 = arg$1.asList(); - assert $18786 != null; + final PreludeBase.TList.DList $18725 = arg$1.asList(); + assert $18725 != null; return PreludeBase.TList.DList.mk(); } final public static Lazy> $main = Thunk.>shared( (Lazy>)(() -> { - return (Func.U)((final Lazy arg$18787) -> { - final Global.TGlobal v2056$18297 = CompilerHelper.lspGlobal.call() - .apply(arg$18787).call(); - final Func.U v2053$18316 = Func.coerceU( - State., Global.TGlobal>execStateT( - PreludeMonad.IMonad_ST.mk(), - Thunk., Global.TGlobal>>shared( - (Lazy, Global.TGlobal - >>)(() -> CompilerHelper.compileFregeFile( - Thunk.*/>lazy( - "module FaultyFregeTest where\n\nsimplyString s = s\n\nerr1 = (simplyString 42) ++ \"test\"" - ) - )) - ), - v2056$18297 - ) + return (Func.U)((final Lazy arg$18726) -> { + final Global.TGlobal v2056$18280 = CompileExecutor.compile( + Thunk.*/>lazy( + "module FaultyFregeTest where\n\nsimplyString s = s\n\nerr1 = (simplyString 42) ++ \"test\"" + ), + CompileGlobal.standardCompileGlobal.call() + ).apply(arg$18726).call(); + final Func.U v4793$18302 = Prelude.*/>println( + PreludeText.IShow_String.it, Global.TSubSt.code(Global.TGlobal.sub(v2056$18280)).toString() ); - final Global.TGlobal v2056$18319 = v2053$18316.apply(arg$18787) - .call(); - final Func.U v4793$18341 = Prelude.*/>println( - PreludeText.IShow_String.it, Global.TSubSt.code(Global.TGlobal.sub(v2056$18319)).toString() - ); - final short v4796$18343 = (short)v4793$18341.apply(arg$18787).call(); - final Func.U v4797$18344 = ((Func.U)(( - final Lazy arg$18794 + final short v4796$18304 = (short)v4793$18302.apply(arg$18726).call(); + final Func.U v4797$18305 = ((Func.U)(( + final Lazy arg$18731 ) -> { - final short v4796$18374 = (short)Func.coerceU( + final short v4796$18335 = (short)Func.coerceU( PreludeMonad., Global.TMessage, Short, PreludeBase.TList>$for( PreludeMonad.IMonad_ST.mk(), PreludeList.IListSource_$lbrack$rbrack.>mk(), Thunk., Global.TMessage>>lazy( (Kind.U, Global.TMessage>)Global.TSubSt.messages( - Global.TGlobal.sub(v2056$18319) + Global.TGlobal.sub(v2056$18280) ) ), (Func.U, Short>>)(( - final Lazy η$18793 + final Lazy η$18730 ) -> Thunk., Short>>shared( (Lazy, Short>>)(() -> (Kind.U< Func.U, Short >)Thunk.>shared( (Lazy>)(() -> Prelude.< Global.TMessage - >println(CompilerHelper.IShow_Message.it, η$18793.call())) + >println(CompileExecutor.IShow_Message.it, η$18730.call())) ).call()) )) ) - ).apply(arg$18794).call(); - final Func.U v4797$18375 = Thunk.>shared( + ).apply(arg$18731).call(); + final Func.U v4797$18336 = Thunk.>shared( (Lazy>)(() -> Func.coerceU( Thunk., Short>>shared( (Lazy, Short>>)(() -> PreludeMonad.< @@ -1404,23 +1395,23 @@ final public static PreludeBase.TList posToTokens( Global.TMessage, Positions.TPosition >)(( - final Lazy η$18791 + final Lazy η$18728 ) -> Global.TMessage.pos( - η$18791 + η$18728 .call() )), Global.TSubSt.messages( Global.TGlobal.sub( - v2056$18319 + v2056$18280 ) ) ), - v2056$18319 + v2056$18280 )) ).call()) ), (Func.U, Short>>)(( - final Lazy η$18792 + final Lazy η$18729 ) -> Thunk., Short>>shared( (Lazy, Short>>)(() -> (Kind.U< Func.U, Short @@ -1431,7 +1422,7 @@ final public static PreludeBase.TList posToTokens( Tokens.TToken >println( Tokens.IShow_Token.it, - η$18792 + η$18729 .call() )) ).call()) @@ -1440,9 +1431,9 @@ final public static PreludeBase.TList posToTokens( ).call() )) ).call(); - return Thunk.nested((Lazy>)(() -> v4797$18375.apply(arg$18794))); + return Thunk.nested((Lazy>)(() -> v4797$18336.apply(arg$18731))); })).call(); - return Thunk.nested((Lazy>)(() -> v4797$18344.apply(arg$18787))); + return Thunk.nested((Lazy>)(() -> v4797$18305.apply(arg$18726))); }); }) ); @@ -1459,16 +1450,16 @@ final public static short fromCompilerSeverity(final short arg$1) { final public static State.TState createRangeFromPos(final Positions.TPosition arg$1) { return State.TState.mk( (Func.U>)(( - final Lazy arg$18800 + final Lazy arg$18737 ) -> { - final State.TState $18801 = State.IMonad_State.< + final State.TState $18738 = State.IMonad_State.< Global.TGlobal, Range.TRange - >pure(Diagnostic.tokensToRange(Global.tokens(arg$1, arg$18800))); - final Func.U> v7693$18619 = - $18801.mem$fun; + >pure(Diagnostic.tokensToRange(Global.tokens(arg$1, arg$18737))); + final Func.U> v7693$18580 = + $18738.mem$fun; return Thunk.>nested( - (Lazy>>)(() -> v7693$18619 - .apply(arg$18800)) + (Lazy>>)(() -> v7693$18580 + .apply(arg$18737)) ); }) ); @@ -1476,22 +1467,22 @@ final public static State.TState createRangeFromPo final public static State.TState createDiagnosticFromMessage( final Global.TMessage arg$1 ) { - final State.TState $18803 = Diagnostic.createRangeFromPos( + final State.TState $18740 = Diagnostic.createRangeFromPos( Global.TMessage.pos(arg$1) ); - final Func.U> v7688$18581 = - $18803.mem$fun; + final Func.U> v7688$18542 = + $18740.mem$fun; return State.TState.mk( (Func.U>)(( - final Lazy arg$18805 + final Lazy arg$18742 ) -> { - final PreludeBase.TTuple2 $18806 = v7688$18581 - .apply(arg$18805).call(); - final State.TState $18807 = State.IMonad_State.< + final PreludeBase.TTuple2 $18743 = v7688$18542 + .apply(arg$18742).call(); + final State.TState $18744 = State.IMonad_State.< Global.TGlobal, TDiagnostic >pure( TDiagnostic.mk( - $18806.mem1, + $18743.mem1, Thunk.shared( (Lazy)(() -> Diagnostic.fromCompilerSeverity( Global.TMessage.level(arg$1) @@ -1501,11 +1492,11 @@ final public static State.TState createDiagnosticFr Thunk.*/>lazy(Global.TMessage.text(arg$1)) ) ); - final Func.U> v7693$18586 = - $18807.mem$fun; + final Func.U> v7693$18547 = + $18744.mem$fun; return Thunk.>nested( - (Lazy>>)(() -> v7693$18586 - .apply($18806.mem2)) + (Lazy>>)(() -> v7693$18547 + .apply($18743.mem2)) ); }) ); @@ -1513,65 +1504,53 @@ final public static State.TState createDiagnosticFr final public static State.TState> extractDiagnostics = State.TState.>mk( (Func.U, Global.TGlobal>>)(( - final Lazy arg$18809 + final Lazy arg$18746 ) -> { - final Global.TGlobal v7690$18548 = arg$18809.call(); - final State.TState> $18812 = + final Global.TGlobal v7690$18509 = arg$18746.call(); + final State.TState> $18749 = State.TState.>coerce( PreludeMonad., TDiagnostic>sequence( State.IMonad_State.mk(), State.IMonad_State.mk(), PreludeMonad.IFunctor_$lbrack$rbrack.>fmap( (Func.U>)(( - final Lazy η$18811 + final Lazy η$18748 ) -> Thunk.>shared( (Lazy>)(() -> Diagnostic.createDiagnosticFromMessage( - η$18811.call() + η$18748.call() )) )), - Global.TSubSt.messages(Global.TGlobal.sub(v7690$18548)) + Global.TSubSt.messages(Global.TGlobal.sub(v7690$18509)) )., TDiagnostic>>simsalabim() ) ); - final Func.U, Global.TGlobal>> v7693$18551 = - $18812.mem$fun; + final Func.U, Global.TGlobal>> v7693$18512 = + $18749.mem$fun; return Thunk., Global.TGlobal>>nested( - (Lazy, Global.TGlobal>>>)(() -> v7693$18551 - .apply(v7690$18548)) + (Lazy, Global.TGlobal>>>)(() -> v7693$18512 + .apply(v7690$18509)) ); }) ); final public static Func.U> compileAndGetDiagnostics( final Lazy*/> arg$1 ) { - return (Func.U>)((final Lazy arg$18814) -> { - final Global.TGlobal v2056$18658 = CompilerHelper.lspGlobal.call().apply(arg$18814) - .call(); - final Func.U v2053$18677 = Func.coerceU( - State., Global.TGlobal>execStateT( - PreludeMonad.IMonad_ST.mk(), - Thunk., Global.TGlobal>>shared( - (Lazy, Global.TGlobal - >>)(() -> CompilerHelper.compileFregeFile(arg$1)) - ), - v2056$18658 - ) - ); - final Global.TGlobal v2056$18680 = v2053$18677.apply(arg$18814).call(); - final Func.U> v2057$18681 = PreludeMonad.IMonad_ST.< + return (Func.U>)((final Lazy arg$18751) -> { + final Global.TGlobal v2056$18619 = CompileExecutor.compile(arg$1, CompileGlobal.standardCompileGlobal.call()) + .apply(arg$18751).call(); + final Func.U> v2057$18620 = PreludeMonad.IMonad_ST.< RealWorld, PreludeBase.TList >pure( Thunk.>shared( (Lazy>)(() -> State.< Global.TGlobal, PreludeBase.TList - >evalState(Diagnostic.extractDiagnostics, v2056$18680)) + >evalState(Diagnostic.extractDiagnostics, v2056$18619)) ) ); return Thunk.>nested( - (Lazy>>)(() -> v2057$18681.apply( - arg$18814 + (Lazy>>)(() -> v2057$18620.apply( + arg$18751 )) ); }); @@ -1591,18 +1570,18 @@ final public static Func.U> compileAnd QuickCheckProperty.TRose >>)(() -> QuickCheckProperty.morallyDubiousIOProperty( QuickCheckProperty.ITestable_Bool.it, - (Func.U)((final Lazy arg$18819) -> { - final Global.TGlobal v2056$18403 = CompilerHelper.lspGlobal - .call().apply(arg$18819).call(); - final Func.U> v2053$18422 = + (Func.U)((final Lazy arg$18754) -> { + final Global.TGlobal v2056$18364 = CompileGlobal.standardCompileGlobal + .call().apply(arg$18754).call(); + final Func.U> v2053$18383 = Diagnostic.compileAndGetDiagnostics( Thunk.*/>lazy( "module ch.fhnw.thga.FaultyFregeTest where\n\nimport Does.not.Exist" ) ); - final PreludeBase.TList v2056$18425 = - v2053$18422.apply(arg$18819).call(); - final Func.U v2057$18426 = + final PreludeBase.TList v2056$18386 = + v2053$18383.apply(arg$18754).call(); + final Func.U v2057$18387 = PreludeMonad.IMonad_ST.pure( Thunk.shared( (Lazy)(() -> PreludeBase.IEq_$lbrack$rbrack.< @@ -1653,13 +1632,13 @@ final public static Func.U> compileAnd TDiagnostic >mk() ), - v2056$18425 + v2056$18386 )) ) ); return Thunk.nested( - (Lazy>)(() -> v2057$18426 - .apply(arg$18819)) + (Lazy>)(() -> v2057$18387 + .apply(arg$18754)) ); }) )) @@ -1682,29 +1661,29 @@ final public static Func.U> compileAnd QuickCheckProperty.TRose >>)(() -> QuickCheckProperty.morallyDubiousIOProperty( QuickCheckProperty.ITestable_Bool.it, - (Func.U)((final Lazy arg$18824) -> { - final PreludeBase.TList v2056$18519 = + (Func.U)((final Lazy arg$18759) -> { + final PreludeBase.TList v2056$18480 = Diagnostic.compileAndGetDiagnostics( Thunk.*/>shared( (Lazy */>)(() -> "module CorrectFregeTest where\n\n" + "ok = 42 + 42") ) - ).apply(arg$18824).call(); - final Func.U v2057$18520 = + ).apply(arg$18759).call(); + final Func.U v2057$18481 = PreludeMonad.IMonad_ST.pure( Thunk.shared( (Lazy)(() -> PreludeBase.IEq_$lbrack$rbrack.< TDiagnostic >$eq$eq( IEq_Diagnostic.it, PreludeBase.TList.DList.mk(), - v2056$18519 + v2056$18480 )) ) ); return Thunk.nested( - (Lazy>)(() -> v2057$18520 - .apply(arg$18824)) + (Lazy>)(() -> v2057$18481 + .apply(arg$18759)) ); }) )) @@ -1727,18 +1706,18 @@ final public static Func.U> compileAnd QuickCheckProperty.TRose >>)(() -> QuickCheckProperty.morallyDubiousIOProperty( QuickCheckProperty.ITestable_Bool.it, - (Func.U)((final Lazy arg$18827) -> { - final Global.TGlobal v2056$18461 = CompilerHelper.lspGlobal - .call().apply(arg$18827).call(); - final Func.U> v2053$18480 = + (Func.U)((final Lazy arg$18762) -> { + final Global.TGlobal v2056$18422 = CompileGlobal.standardCompileGlobal + .call().apply(arg$18762).call(); + final Func.U> v2053$18441 = Diagnostic.compileAndGetDiagnostics( Thunk.*/>lazy( "module ch.fhnw.thga.FaultyFregeTest where\n\nerr1 = do\n x = 42\n\nerr2 = [ 22.0 ] ++ \"42\"\n\nerr3 = 42 + \"42\"" ) ); - final PreludeBase.TList v2056$18483 = - v2053$18480.apply(arg$18827).call(); - final Func.U v2057$18484 = + final PreludeBase.TList v2056$18444 = + v2053$18441.apply(arg$18762).call(); + final Func.U v2057$18445 = PreludeMonad.IMonad_ST.pure( Thunk.shared( (Lazy)(() -> PreludeBase.IEq_$lbrack$rbrack.< @@ -1899,13 +1878,13 @@ final public static Func.U> compileAnd ) ) ), - v2056$18483 + v2056$18444 )) ) ); return Thunk.nested( - (Lazy>)(() -> v2057$18484 - .apply(arg$18827)) + (Lazy>)(() -> v2057$18445 + .apply(arg$18762)) ); }) )) diff --git a/src/main/java/ch/fhnw/thga/fregelanguageserver/diagnostic/DiagnosticLSP.java b/src/main/java/ch/fhnw/thga/fregelanguageserver/diagnostic/DiagnosticLSP.java index a6aa346..2ab5f7d 100644 --- a/src/main/java/ch/fhnw/thga/fregelanguageserver/diagnostic/DiagnosticLSP.java +++ b/src/main/java/ch/fhnw/thga/fregelanguageserver/diagnostic/DiagnosticLSP.java @@ -16,7 +16,9 @@ import frege.run.RunTM; import frege.runtime.Meta; import frege.runtime.Phantom.RealWorld; -import ch.fhnw.thga.fregelanguageserver.compiler.CompilerHelper; +import ch.fhnw.thga.fregelanguageserver.compile.CompileExecutor; +import ch.fhnw.thga.fregelanguageserver.compile.CompileGlobal; +import ch.fhnw.thga.fregelanguageserver.compile.CompileOptions; import ch.fhnw.thga.fregelanguageserver.diagnostic.Diagnostic; import ch.fhnw.thga.fregelanguageserver.lsp4j.PositionLSP4J; import ch.fhnw.thga.fregelanguageserver.lsp4j.RangeLSP4J; @@ -141,29 +143,28 @@ @SuppressWarnings("unused") @Meta.FregePackage( source="/Users/tricktron/github/master/frege-lsp-server/src/main/frege/ch/fhnw/thga/fregelanguageserver/diagnostic/DiagnosticLSP.fr", - time=1657911867310L, jmajor=11, jminor=-1, + time=1658516066690L, jmajor=11, jminor=-1, imps={ - "ch.fhnw.thga.fregelanguageserver.diagnostic.Diagnostic", "ch.fhnw.thga.fregelanguageserver.types.Position", - "ch.fhnw.thga.fregelanguageserver.lsp4j.PositionLSP4J", "frege.Prelude", "frege.prelude.PreludeArrays", + "ch.fhnw.thga.fregelanguageserver.diagnostic.Diagnostic", "frege.Prelude", "frege.prelude.PreludeArrays", "frege.prelude.PreludeBase", "frege.prelude.PreludeDecimal", "frege.prelude.PreludeIO", "frege.prelude.PreludeList", - "frege.prelude.PreludeMonad", "frege.prelude.PreludeText", "ch.fhnw.thga.fregelanguageserver.types.Range", - "ch.fhnw.thga.fregelanguageserver.lsp4j.RangeLSP4J", "frege.java.util.Regex" + "frege.prelude.PreludeMonad", "frege.prelude.PreludeText", "ch.fhnw.thga.fregelanguageserver.lsp4j.RangeLSP4J", + "frege.java.util.Regex" }, nmss={ - "Diagnostic", "Position", "PositionLSP4J", "Prelude", "PreludeArrays", "PreludeBase", "PreludeDecimal", - "PreludeIO", "PreludeList", "PreludeMonad", "PreludeText", "Range", "RangeLSP4J", "Regexp" + "Diagnostic", "Prelude", "PreludeArrays", "PreludeBase", "PreludeDecimal", "PreludeIO", "PreludeList", + "PreludeMonad", "PreludeText", "RangeLSP4J", "Regexp" }, symas={}, symcs={}, symis={}, symts={ @Meta.SymT( - offset=473, + offset=273, name=@Meta.QName( kind=0, pack="ch.fhnw.thga.fregelanguageserver.diagnostic.DiagnosticLSP", base="DiagnosticSeverityLSP" ), typ=0, kind=2, cons={}, lnks={}, funs={ @Meta.SymV( - offset=672, + offset=472, name=@Meta.QName( kind=2, pack="ch.fhnw.thga.fregelanguageserver.diagnostic.DiagnosticLSP", base="DiagnosticSeverityLSP", member="warning" @@ -172,7 +173,7 @@ depth=0, rkind=9 ), @Meta.SymV( - offset=880, + offset=680, name=@Meta.QName( kind=2, pack="ch.fhnw.thga.fregelanguageserver.diagnostic.DiagnosticLSP", base="DiagnosticSeverityLSP", member="hint" @@ -181,7 +182,7 @@ rkind=9 ), @Meta.SymV( - offset=568, + offset=368, name=@Meta.QName( kind=2, pack="ch.fhnw.thga.fregelanguageserver.diagnostic.DiagnosticLSP", base="DiagnosticSeverityLSP", member="error" @@ -190,7 +191,7 @@ rkind=9 ), @Meta.SymV( - offset=973, + offset=773, name=@Meta.QName( kind=2, pack="ch.fhnw.thga.fregelanguageserver.diagnostic.DiagnosticLSP", base="DiagnosticSeverityLSP", member="fromCompilerSeverity" @@ -198,7 +199,7 @@ stri="s(s)", sig=2, depth=1, rkind=13 ), @Meta.SymV( - offset=776, + offset=576, name=@Meta.QName( kind=2, pack="ch.fhnw.thga.fregelanguageserver.diagnostic.DiagnosticLSP", base="DiagnosticSeverityLSP", member="information" @@ -210,12 +211,12 @@ pur=true, nativ="org.eclipse.lsp4j.DiagnosticSeverity" ), @Meta.SymT( - offset=1253, + offset=1053, name=@Meta.QName(kind=0, pack="ch.fhnw.thga.fregelanguageserver.diagnostic.DiagnosticLSP", base="DiagnosticLSP"), typ=3, kind=2, cons={}, lnks={}, funs={ @Meta.SymV( - offset=1415, + offset=1215, name=@Meta.QName( kind=2, pack="ch.fhnw.thga.fregelanguageserver.diagnostic.DiagnosticLSP", base="DiagnosticLSP", member="fromDiagnostic" @@ -223,7 +224,7 @@ stri="s(s(ssss))", sig=5, depth=1, rkind=13 ), @Meta.SymV( - offset=1332, + offset=1132, name=@Meta.QName( kind=2, pack="ch.fhnw.thga.fregelanguageserver.diagnostic.DiagnosticLSP", base="DiagnosticLSP", member="new" @@ -234,12 +235,12 @@ pur=true, nativ="org.eclipse.lsp4j.Diagnostic" ), @Meta.SymT( - offset=1696, + offset=1496, name=@Meta.QName(kind=0, pack="ch.fhnw.thga.fregelanguageserver.diagnostic.DiagnosticLSP", base="ArrayList"), typ=9, kind=24, cons={}, lnks={}, funs={ @Meta.SymV( - offset=1810, + offset=1610, name=@Meta.QName( kind=2, pack="ch.fhnw.thga.fregelanguageserver.diagnostic.DiagnosticLSP", base="ArrayList", member="new" @@ -247,7 +248,7 @@ stri="s(s)", sig=11, nativ="new", depth=1, rkind=9 ), @Meta.SymV( - offset=1752, + offset=1552, name=@Meta.QName( kind=2, pack="ch.fhnw.thga.fregelanguageserver.diagnostic.DiagnosticLSP", base="ArrayList", member="add" @@ -255,7 +256,7 @@ stri="s(ss)", sig=14, nativ="add", depth=2, rkind=9 ), @Meta.SymV( - offset=1852, + offset=1652, name=@Meta.QName( kind=2, pack="ch.fhnw.thga.fregelanguageserver.diagnostic.DiagnosticLSP", base="ArrayList", member="fromFregeList" @@ -268,7 +269,7 @@ }, symvs={ @Meta.SymV( - offset=2116, + offset=1916, name=@Meta.QName( pack="ch.fhnw.thga.fregelanguageserver.diagnostic.DiagnosticLSP", base="compileAndGetDiagnosticsLSP" ), @@ -368,13 +369,13 @@ final public static org.eclipse.lsp4j.DiagnosticSeverity fromCompilerSeverity(fi } final public static class TDiagnosticLSP { final public static org.eclipse.lsp4j.Diagnostic fromDiagnostic(final Diagnostic.TDiagnostic arg$1) { - final String/**/ message$17366 = arg$1.mem$message.call(); - final String/**/ source$17365 = arg$1.mem$source.call(); - final short severity$17364 = (short)arg$1.mem$severity.call(); - final Range.TRange range$17363 = arg$1.mem$range.call(); + final String/**/ message$17364 = arg$1.mem$message.call(); + final String/**/ source$17363 = arg$1.mem$source.call(); + final short severity$17362 = (short)arg$1.mem$severity.call(); + final Range.TRange range$17361 = arg$1.mem$range.call(); return new org.eclipse.lsp4j.Diagnostic( - RangeLSP4J.TRangeLSP.fromRange(range$17363), message$17366, - TDiagnosticSeverityLSP.fromCompilerSeverity(severity$17364), source$17365 + RangeLSP4J.TRangeLSP.fromRange(range$17361), message$17364, + TDiagnosticSeverityLSP.fromCompilerSeverity(severity$17362), source$17363 ); } } @@ -392,15 +393,15 @@ final public static class TArrayList { }); } final public static <𝓐, 𝓢> Func.U<𝓢, java.util.ArrayList<𝓐>> fromFregeList(final Lazy> arg$1) { - return (Func.U<𝓢, java.util.ArrayList<𝓐>>)((final Lazy<𝓢> arg$17517) -> { - final java.util.ArrayList<𝓐> v2056$17497 = TArrayList.<𝓐, 𝓢>$new(PreludeBase.TUnit.Unit) - .apply(arg$17517).call(); - final Func.U<𝓢, java.util.ArrayList<𝓐>> v2057$17498 = DiagnosticLSP.<𝓐, 𝓢>go( - arg$1.call(), Thunk.>lazy(v2056$17497) + return (Func.U<𝓢, java.util.ArrayList<𝓐>>)((final Lazy<𝓢> arg$17515) -> { + final java.util.ArrayList<𝓐> v2056$17495 = TArrayList.<𝓐, 𝓢>$new(PreludeBase.TUnit.Unit) + .apply(arg$17515).call(); + final Func.U<𝓢, java.util.ArrayList<𝓐>> v2057$17496 = DiagnosticLSP.<𝓐, 𝓢>go( + arg$1.call(), Thunk.>lazy(v2056$17495) ); return Thunk.>nested( - (Lazy>>)(() -> v2057$17498.apply( - arg$17517 + (Lazy>>)(() -> v2057$17496.apply( + arg$17515 )) ); }); @@ -409,55 +410,55 @@ final public static class TArrayList { final public static <𝓐, 𝓢> Func.U<𝓢, java.util.ArrayList<𝓐>> go( final PreludeBase.TList<𝓐> arg$1, final Lazy> arg$2 ) { - final PreludeBase.TList.DCons<𝓐> $17520 = arg$1.asCons(); - if ($17520 != null) { - final 𝓐 µ$$17379 = $17520.mem1.call(); - return (Func.U<𝓢, java.util.ArrayList<𝓐>>)((final Lazy<𝓢> arg$17522) -> { - final boolean v4796$17451 = (boolean)TArrayList.<𝓐, 𝓢>add(arg$2.call(), µ$$17379) - .apply(arg$17522).call(); - final Func.U<𝓢, java.util.ArrayList<𝓐>> v4797$17452 = Thunk.>>shared( + final PreludeBase.TList.DCons<𝓐> $17518 = arg$1.asCons(); + if ($17518 != null) { + final 𝓐 µ$$17377 = $17518.mem1.call(); + return (Func.U<𝓢, java.util.ArrayList<𝓐>>)((final Lazy<𝓢> arg$17520) -> { + final boolean v4796$17449 = (boolean)TArrayList.<𝓐, 𝓢>add(arg$2.call(), µ$$17377) + .apply(arg$17520).call(); + final Func.U<𝓢, java.util.ArrayList<𝓐>> v4797$17450 = Thunk.>>shared( (Lazy>>)(() -> DiagnosticLSP.<𝓐, 𝓢>go( - $17520.mem2.call(), arg$2 + $17518.mem2.call(), arg$2 )) ).call(); return Thunk.>nested( - (Lazy>>)(() -> v4797$17452.apply( - arg$17522 + (Lazy>>)(() -> v4797$17450.apply( + arg$17520 )) ); }); } - final PreludeBase.TList.DList<𝓐> $17525 = arg$1.asList(); - assert $17525 != null; + final PreludeBase.TList.DList<𝓐> $17523 = arg$1.asList(); + assert $17523 != null; return PreludeMonad.IMonad_ST.<𝓢, java.util.ArrayList<𝓐>>pure(arg$2); } final public static Func.U> compileAndGetDiagnosticsLSP( final Lazy*/> arg$1 ) { - return (Func.U>)((final Lazy arg$17526) -> { - final PreludeBase.TList v2056$17475 = Diagnostic.compileAndGetDiagnostics( + return (Func.U>)((final Lazy arg$17524) -> { + final PreludeBase.TList v2056$17473 = Diagnostic.compileAndGetDiagnostics( arg$1 - ).apply(arg$17526).call(); - final Func.U> v2057$17476 = + ).apply(arg$17524).call(); + final Func.U> v2057$17474 = TArrayList.fromFregeList( Thunk.>shared( (Lazy>)(() -> PreludeMonad.IFunctor_$lbrack$rbrack.< Diagnostic.TDiagnostic, org.eclipse.lsp4j.Diagnostic >fmap( (Func.U)(( - final Lazy η$17528 + final Lazy η$17526 ) -> Thunk.shared( (Lazy)(() -> TDiagnosticLSP.fromDiagnostic( - η$17528.call() + η$17526.call() )) )), - v2056$17475 + v2056$17473 )) ) ); return Thunk.>nested( - (Lazy>>)(() -> v2057$17476 - .apply(arg$17526)) + (Lazy>>)(() -> v2057$17474 + .apply(arg$17524)) ); }); } diff --git a/src/main/java/ch/fhnw/thga/fregelanguageserver/hover/Hover.java b/src/main/java/ch/fhnw/thga/fregelanguageserver/hover/Hover.java index 8d37123..69d451d 100644 --- a/src/main/java/ch/fhnw/thga/fregelanguageserver/hover/Hover.java +++ b/src/main/java/ch/fhnw/thga/fregelanguageserver/hover/Hover.java @@ -15,7 +15,9 @@ import frege.run.RunTM; import frege.runtime.Meta; import frege.runtime.Phantom.RealWorld; -import ch.fhnw.thga.fregelanguageserver.compiler.CompilerHelper; +import ch.fhnw.thga.fregelanguageserver.compile.CompileExecutor; +import ch.fhnw.thga.fregelanguageserver.compile.CompileGlobal; +import ch.fhnw.thga.fregelanguageserver.compile.CompileOptions; import ch.fhnw.thga.fregelanguageserver.types.Position; import ch.fhnw.thga.fregelanguageserver.types.Range; import frege.Prelude; @@ -151,9 +153,10 @@ @SuppressWarnings("unused") @Meta.FregePackage( source="/Users/tricktron/github/master/frege-lsp-server/src/main/frege/ch/fhnw/thga/fregelanguageserver/hover/Hover.fr", - time=1657911866867L, jmajor=11, jminor=-1, + time=1658516066199L, jmajor=11, jminor=-1, imps={ - "ch.fhnw.thga.fregelanguageserver.compiler.CompilerHelper", "frege.compiler.types.Global", "frege.data.List", + "ch.fhnw.thga.fregelanguageserver.compile.CompileExecutor", + "ch.fhnw.thga.fregelanguageserver.compile.CompileGlobal", "frege.compiler.types.Global", "frege.data.List", "frege.control.monad.trans.MonadTrans", "ch.fhnw.thga.fregelanguageserver.types.Position", "frege.Prelude", "frege.prelude.PreludeArrays", "frege.prelude.PreludeBase", "frege.prelude.PreludeDecimal", "frege.prelude.PreludeIO", "frege.prelude.PreludeList", "frege.prelude.PreludeMonad", "frege.prelude.PreludeText", @@ -161,130 +164,130 @@ "frege.java.util.Regex", "frege.control.monad.State", "frege.compiler.types.Tokens", "frege.ide.Utilities" }, nmss={ - "CompilerHelper", "Global", "List", "MonadTrans", "Position", "Prelude", "PreludeArrays", "PreludeBase", - "PreludeDecimal", "PreludeIO", "PreludeList", "PreludeMonad", "PreludeText", "QNames", - "QuickCheck", "Range", "Regexp", "State", "Tokens", "Utilities" + "CompileExecutor", "CompileGlobal", "Global", "List", "MonadTrans", "Position", "Prelude", + "PreludeArrays", "PreludeBase", "PreludeDecimal", "PreludeIO", "PreludeList", "PreludeMonad", + "PreludeText", "QNames", "QuickCheck", "Range", "Regexp", "State", "Tokens", "Utilities" }, symas={}, symcs={}, symis={ @Meta.SymI( - offset=1055, name=@Meta.QName(kind=0, pack="ch.fhnw.thga.fregelanguageserver.hover.Hover", base="Show_Hover"), + offset=917, + name=@Meta.QName(kind=0, pack="ch.fhnw.thga.fregelanguageserver.hover.Hover", base="Show_FregeCodeBlock"), clas=@Meta.QName(kind=0, pack="frege.prelude.PreludeText", base="Show"), typ=0, lnks={}, funs={ @Meta.SymV( - offset=1055, + offset=917, name=@Meta.QName( - kind=2, pack="ch.fhnw.thga.fregelanguageserver.hover.Hover", base="Show_Hover", member="showsPrec" + kind=2, pack="ch.fhnw.thga.fregelanguageserver.hover.Hover", base="Show_FregeCodeBlock", member="showsub" ), - stri="s(uss)", sig=3, depth=3, rkind=13, doc="inherited from 'Show.showsPrec'" + stri="s(s)", sig=1, depth=1, rkind=13, doc="inherited from 'Show.showsub'" ), @Meta.SymV( - offset=1055, + offset=917, name=@Meta.QName( - kind=2, pack="ch.fhnw.thga.fregelanguageserver.hover.Hover", base="Show_Hover", member="showsub" + kind=2, pack="ch.fhnw.thga.fregelanguageserver.hover.Hover", base="Show_FregeCodeBlock", member="showList" ), - stri="s(s)", sig=4, depth=1, rkind=13, doc="Function generated for derived instance." + stri="s(ss)", sig=4, depth=2, rkind=13, doc="inherited from 'Show.showList'" ), @Meta.SymV( - offset=1055, + offset=917, name=@Meta.QName( - kind=2, pack="ch.fhnw.thga.fregelanguageserver.hover.Hover", base="Show_Hover", member="showChars" + kind=2, pack="ch.fhnw.thga.fregelanguageserver.hover.Hover", base="Show_FregeCodeBlock", member="showsPrec" ), - stri="s(s)", sig=5, depth=1, rkind=13, doc="inherited from 'Show.showChars'" + stri="s(uss)", sig=6, depth=3, rkind=13, doc="inherited from 'Show.showsPrec'" ), @Meta.SymV( - offset=1055, + offset=917, name=@Meta.QName( - kind=2, pack="ch.fhnw.thga.fregelanguageserver.hover.Hover", base="Show_Hover", member="display" + kind=2, pack="ch.fhnw.thga.fregelanguageserver.hover.Hover", base="Show_FregeCodeBlock", member="display" ), - stri="s(s)", sig=4, depth=1, rkind=13, doc="inherited from 'Show.display'" + stri="s(s)", sig=1, depth=1, rkind=13, doc="inherited from 'Show.display'" ), @Meta.SymV( - offset=1055, + offset=956, name=@Meta.QName( - kind=2, pack="ch.fhnw.thga.fregelanguageserver.hover.Hover", base="Show_Hover", member="show" + kind=2, pack="ch.fhnw.thga.fregelanguageserver.hover.Hover", base="Show_FregeCodeBlock", member="show" ), - stri="s(s)", sig=4, depth=1, rkind=13, doc="Function generated for derived instance." + stri="s(s(s))", sig=1, depth=1, rkind=13 ), @Meta.SymV( - offset=1055, + offset=917, name=@Meta.QName( - kind=2, pack="ch.fhnw.thga.fregelanguageserver.hover.Hover", base="Show_Hover", member="showList" + kind=2, pack="ch.fhnw.thga.fregelanguageserver.hover.Hover", base="Show_FregeCodeBlock", member="showChars" ), - stri="s(ss)", sig=7, depth=2, rkind=13, doc="inherited from 'Show.showList'" + stri="s(s)", sig=7, depth=1, rkind=13, doc="inherited from 'Show.showChars'" ) } ), @Meta.SymI( - offset=851, - name=@Meta.QName(kind=0, pack="ch.fhnw.thga.fregelanguageserver.hover.Hover", base="Show_FregeCodeBlock"), + offset=1121, name=@Meta.QName(kind=0, pack="ch.fhnw.thga.fregelanguageserver.hover.Hover", base="Show_Hover"), clas=@Meta.QName(kind=0, pack="frege.prelude.PreludeText", base="Show"), typ=8, lnks={}, funs={ @Meta.SymV( - offset=851, + offset=1121, name=@Meta.QName( - kind=2, pack="ch.fhnw.thga.fregelanguageserver.hover.Hover", base="Show_FregeCodeBlock", member="showsPrec" + kind=2, pack="ch.fhnw.thga.fregelanguageserver.hover.Hover", base="Show_Hover", member="showsub" ), - stri="s(uss)", sig=9, depth=3, rkind=13, doc="inherited from 'Show.showsPrec'" + stri="s(s)", sig=9, depth=1, rkind=13, doc="Function generated for derived instance." ), @Meta.SymV( - offset=851, + offset=1121, name=@Meta.QName( - kind=2, pack="ch.fhnw.thga.fregelanguageserver.hover.Hover", base="Show_FregeCodeBlock", member="showsub" + kind=2, pack="ch.fhnw.thga.fregelanguageserver.hover.Hover", base="Show_Hover", member="showList" ), - stri="s(s)", sig=10, depth=1, rkind=13, doc="inherited from 'Show.showsub'" + stri="s(ss)", sig=11, depth=2, rkind=13, doc="inherited from 'Show.showList'" ), @Meta.SymV( - offset=851, + offset=1121, name=@Meta.QName( - kind=2, pack="ch.fhnw.thga.fregelanguageserver.hover.Hover", base="Show_FregeCodeBlock", member="showChars" + kind=2, pack="ch.fhnw.thga.fregelanguageserver.hover.Hover", base="Show_Hover", member="showsPrec" ), - stri="s(s)", sig=11, depth=1, rkind=13, doc="inherited from 'Show.showChars'" + stri="s(uss)", sig=12, depth=3, rkind=13, doc="inherited from 'Show.showsPrec'" ), @Meta.SymV( - offset=851, + offset=1121, name=@Meta.QName( - kind=2, pack="ch.fhnw.thga.fregelanguageserver.hover.Hover", base="Show_FregeCodeBlock", member="display" + kind=2, pack="ch.fhnw.thga.fregelanguageserver.hover.Hover", base="Show_Hover", member="display" ), - stri="s(s)", sig=10, depth=1, rkind=13, doc="inherited from 'Show.display'" + stri="s(s)", sig=9, depth=1, rkind=13, doc="inherited from 'Show.display'" ), @Meta.SymV( - offset=890, + offset=1121, name=@Meta.QName( - kind=2, pack="ch.fhnw.thga.fregelanguageserver.hover.Hover", base="Show_FregeCodeBlock", member="show" + kind=2, pack="ch.fhnw.thga.fregelanguageserver.hover.Hover", base="Show_Hover", member="show" ), - stri="s(s(s))", sig=10, depth=1, rkind=13 + stri="s(s)", sig=9, depth=1, rkind=13, doc="Function generated for derived instance." ), @Meta.SymV( - offset=851, + offset=1121, name=@Meta.QName( - kind=2, pack="ch.fhnw.thga.fregelanguageserver.hover.Hover", base="Show_FregeCodeBlock", member="showList" + kind=2, pack="ch.fhnw.thga.fregelanguageserver.hover.Hover", base="Show_Hover", member="showChars" ), - stri="s(ss)", sig=13, depth=2, rkind=13, doc="inherited from 'Show.showList'" + stri="s(s)", sig=13, depth=1, rkind=13, doc="inherited from 'Show.showChars'" ) } ), @Meta.SymI( - offset=826, + offset=892, name=@Meta.QName(kind=0, pack="ch.fhnw.thga.fregelanguageserver.hover.Hover", base="Eq_FregeCodeBlock"), - clas=@Meta.QName(kind=0, pack="frege.prelude.PreludeBase", base="Eq"), typ=8, lnks={}, + clas=@Meta.QName(kind=0, pack="frege.prelude.PreludeBase", base="Eq"), typ=0, lnks={}, funs={ @Meta.SymV( - offset=826, + offset=892, name=@Meta.QName( kind=2, pack="ch.fhnw.thga.fregelanguageserver.hover.Hover", base="Eq_FregeCodeBlock", member="hashCode" ), stri="s(s)", sig=14, depth=1, rkind=13, doc="Function generated for derived instance." ), @Meta.SymV( - offset=826, + offset=892, name=@Meta.QName( kind=2, pack="ch.fhnw.thga.fregelanguageserver.hover.Hover", base="Eq_FregeCodeBlock", member="!=" ), stri="s(ss)", sig=15, depth=2, rkind=13, doc="inherited from 'Eq.!='", op=96 ), @Meta.SymV( - offset=826, + offset=892, name=@Meta.QName( kind=2, pack="ch.fhnw.thga.fregelanguageserver.hover.Hover", base="Eq_FregeCodeBlock", member="==" ), @@ -293,23 +296,23 @@ } ), @Meta.SymI( - offset=1039, name=@Meta.QName(kind=0, pack="ch.fhnw.thga.fregelanguageserver.hover.Hover", base="Eq_Hover"), - clas=@Meta.QName(kind=0, pack="frege.prelude.PreludeBase", base="Eq"), typ=0, lnks={}, + offset=1105, name=@Meta.QName(kind=0, pack="ch.fhnw.thga.fregelanguageserver.hover.Hover", base="Eq_Hover"), + clas=@Meta.QName(kind=0, pack="frege.prelude.PreludeBase", base="Eq"), typ=8, lnks={}, funs={ @Meta.SymV( - offset=1039, + offset=1105, name=@Meta.QName( kind=2, pack="ch.fhnw.thga.fregelanguageserver.hover.Hover", base="Eq_Hover", member="hashCode" ), stri="s(s)", sig=16, depth=1, rkind=13, doc="Function generated for derived instance." ), @Meta.SymV( - offset=1039, + offset=1105, name=@Meta.QName(kind=2, pack="ch.fhnw.thga.fregelanguageserver.hover.Hover", base="Eq_Hover", member="!="), stri="s(ss)", sig=17, depth=2, rkind=13, doc="inherited from 'Eq.!='", op=96 ), @Meta.SymV( - offset=1039, + offset=1105, name=@Meta.QName(kind=2, pack="ch.fhnw.thga.fregelanguageserver.hover.Hover", base="Eq_Hover", member="=="), stri="s(ss)", sig=17, depth=2, rkind=13, doc="Function generated for derived instance.", op=96 ) @@ -318,63 +321,63 @@ }, symts={ @Meta.SymT( - offset=968, name=@Meta.QName(kind=0, pack="ch.fhnw.thga.fregelanguageserver.hover.Hover", base="Hover"), typ=0, + offset=1034, name=@Meta.QName(kind=0, pack="ch.fhnw.thga.fregelanguageserver.hover.Hover", base="Hover"), typ=8, kind=12, cons={ @Meta.SymD( - offset=976, + offset=1042, name=@Meta.QName(kind=2, pack="ch.fhnw.thga.fregelanguageserver.hover.Hover", base="Hover", member="Hover"), cid=0, typ=19, fields={ - @Meta.Field(name="range", offset=988, sigma=18, strict=false), - @Meta.Field(name="content", offset=1010, sigma=8, strict=false) + @Meta.Field(name="range", offset=1054, sigma=18, strict=false), + @Meta.Field(name="content", offset=1076, sigma=0, strict=false) } ) }, lnks={ @Meta.SymL( - offset=1055, - name=@Meta.QName( - kind=2, pack="ch.fhnw.thga.fregelanguageserver.hover.Hover", base="Hover", member="showsPrec" - ), + offset=1121, + name=@Meta.QName(kind=2, pack="ch.fhnw.thga.fregelanguageserver.hover.Hover", base="Hover", member="showsub"), alias=@Meta.QName( - kind=2, pack="ch.fhnw.thga.fregelanguageserver.hover.Hover", base="Show_Hover", member="showsPrec" + kind=2, pack="ch.fhnw.thga.fregelanguageserver.hover.Hover", base="Show_Hover", member="showsub" ) ), @Meta.SymL( - offset=1055, + offset=1121, name=@Meta.QName( - kind=2, pack="ch.fhnw.thga.fregelanguageserver.hover.Hover", base="Hover", member="showChars" + kind=2, pack="ch.fhnw.thga.fregelanguageserver.hover.Hover", base="Hover", member="showList" ), alias=@Meta.QName( - kind=2, pack="ch.fhnw.thga.fregelanguageserver.hover.Hover", base="Show_Hover", member="showChars" + kind=2, pack="ch.fhnw.thga.fregelanguageserver.hover.Hover", base="Show_Hover", member="showList" ) ), @Meta.SymL( - offset=1055, + offset=1121, name=@Meta.QName(kind=2, pack="ch.fhnw.thga.fregelanguageserver.hover.Hover", base="Hover", member="show"), alias=@Meta.QName( kind=2, pack="ch.fhnw.thga.fregelanguageserver.hover.Hover", base="Show_Hover", member="show" ) ), @Meta.SymL( - offset=1055, + offset=1121, name=@Meta.QName( - kind=2, pack="ch.fhnw.thga.fregelanguageserver.hover.Hover", base="Hover", member="showList" + kind=2, pack="ch.fhnw.thga.fregelanguageserver.hover.Hover", base="Hover", member="showChars" ), alias=@Meta.QName( - kind=2, pack="ch.fhnw.thga.fregelanguageserver.hover.Hover", base="Show_Hover", member="showList" + kind=2, pack="ch.fhnw.thga.fregelanguageserver.hover.Hover", base="Show_Hover", member="showChars" ) ), @Meta.SymL( - offset=1055, - name=@Meta.QName(kind=2, pack="ch.fhnw.thga.fregelanguageserver.hover.Hover", base="Hover", member="showsub"), + offset=1121, + name=@Meta.QName( + kind=2, pack="ch.fhnw.thga.fregelanguageserver.hover.Hover", base="Hover", member="showsPrec" + ), alias=@Meta.QName( - kind=2, pack="ch.fhnw.thga.fregelanguageserver.hover.Hover", base="Show_Hover", member="showsub" + kind=2, pack="ch.fhnw.thga.fregelanguageserver.hover.Hover", base="Show_Hover", member="showsPrec" ) ), @Meta.SymL( - offset=1039, + offset=1105, name=@Meta.QName( kind=2, pack="ch.fhnw.thga.fregelanguageserver.hover.Hover", base="Hover", member="hashCode" ), @@ -383,94 +386,94 @@ ) ), @Meta.SymL( - offset=1055, + offset=1121, name=@Meta.QName(kind=2, pack="ch.fhnw.thga.fregelanguageserver.hover.Hover", base="Hover", member="display"), alias=@Meta.QName( kind=2, pack="ch.fhnw.thga.fregelanguageserver.hover.Hover", base="Show_Hover", member="display" ) ), @Meta.SymL( - offset=1039, + offset=1105, name=@Meta.QName(kind=2, pack="ch.fhnw.thga.fregelanguageserver.hover.Hover", base="Hover", member="!="), alias=@Meta.QName(kind=2, pack="ch.fhnw.thga.fregelanguageserver.hover.Hover", base="Eq_Hover", member="!=") ), @Meta.SymL( - offset=1039, + offset=1105, name=@Meta.QName(kind=2, pack="ch.fhnw.thga.fregelanguageserver.hover.Hover", base="Hover", member="=="), alias=@Meta.QName(kind=2, pack="ch.fhnw.thga.fregelanguageserver.hover.Hover", base="Eq_Hover", member="==") ) }, funs={ @Meta.SymV( - offset=989, + offset=1055, name=@Meta.QName( kind=2, pack="ch.fhnw.thga.fregelanguageserver.hover.Hover", base="Hover", member="upd$range" ), stri="s(su)", sig=20, depth=2, rkind=13, doc="update field @range@" ), @Meta.SymV( - offset=1011, + offset=1077, name=@Meta.QName( kind=2, pack="ch.fhnw.thga.fregelanguageserver.hover.Hover", base="Hover", member="upd$content" ), stri="s(su)", sig=21, depth=2, rkind=13, doc="update field @content@" ), @Meta.SymV( - offset=1011, + offset=1077, name=@Meta.QName( kind=2, pack="ch.fhnw.thga.fregelanguageserver.hover.Hover", base="Hover", member="has$content" ), stri="s(u)", sig=23, depth=1, rkind=13, doc="check if constructor has field @content@" ), @Meta.SymV( - offset=989, + offset=1055, name=@Meta.QName( kind=2, pack="ch.fhnw.thga.fregelanguageserver.hover.Hover", base="Hover", member="has$range" ), stri="s(u)", sig=23, depth=1, rkind=13, doc="check if constructor has field @range@" ), @Meta.SymV( - offset=989, + offset=1055, + name=@Meta.QName(kind=2, pack="ch.fhnw.thga.fregelanguageserver.hover.Hover", base="Hover", member="range"), + stri="s(s)", sig=24, depth=1, rkind=13, doc="access field @range@" + ), + @Meta.SymV( + offset=1055, name=@Meta.QName( kind=2, pack="ch.fhnw.thga.fregelanguageserver.hover.Hover", base="Hover", member="chg$range" ), - stri="s(su)", sig=25, depth=2, rkind=13, doc="change field @range@" + stri="s(su)", sig=26, depth=2, rkind=13, doc="change field @range@" ), @Meta.SymV( - offset=1011, + offset=1077, name=@Meta.QName( kind=2, pack="ch.fhnw.thga.fregelanguageserver.hover.Hover", base="Hover", member="chg$content" ), - stri="s(su)", sig=27, depth=2, rkind=13, doc="change field @content@" + stri="s(su)", sig=28, depth=2, rkind=13, doc="change field @content@" ), @Meta.SymV( - offset=1011, + offset=1077, name=@Meta.QName(kind=2, pack="ch.fhnw.thga.fregelanguageserver.hover.Hover", base="Hover", member="content"), - stri="s(s)", sig=28, depth=1, rkind=13, doc="access field @content@" - ), - @Meta.SymV( - offset=989, - name=@Meta.QName(kind=2, pack="ch.fhnw.thga.fregelanguageserver.hover.Hover", base="Hover", member="range"), - stri="s(s)", sig=29, depth=1, rkind=13, doc="access field @range@" + stri="s(s)", sig=29, depth=1, rkind=13, doc="access field @content@" ) }, prod=true ), @Meta.SymT( - offset=770, name=@Meta.QName(kind=0, pack="ch.fhnw.thga.fregelanguageserver.hover.Hover", base="FregeCodeBlock"), - typ=8, kind=12, + offset=836, name=@Meta.QName(kind=0, pack="ch.fhnw.thga.fregelanguageserver.hover.Hover", base="FregeCodeBlock"), + typ=0, kind=12, cons={ @Meta.SymD( - offset=787, + offset=853, name=@Meta.QName( kind=2, pack="ch.fhnw.thga.fregelanguageserver.hover.Hover", base="FregeCodeBlock", member="FregeCodeBlock" ), - cid=0, typ=30, fields={@Meta.Field(name="code", offset=808, sigma=2, strict=false)} + cid=0, typ=30, fields={@Meta.Field(name="code", offset=874, sigma=3, strict=false)} ) }, lnks={ @Meta.SymL( - offset=851, + offset=917, name=@Meta.QName( kind=2, pack="ch.fhnw.thga.fregelanguageserver.hover.Hover", base="FregeCodeBlock", member="showsPrec" ), @@ -479,7 +482,7 @@ ) ), @Meta.SymL( - offset=851, + offset=917, name=@Meta.QName( kind=2, pack="ch.fhnw.thga.fregelanguageserver.hover.Hover", base="FregeCodeBlock", member="showChars" ), @@ -488,7 +491,7 @@ ) ), @Meta.SymL( - offset=851, + offset=917, name=@Meta.QName( kind=2, pack="ch.fhnw.thga.fregelanguageserver.hover.Hover", base="FregeCodeBlock", member="showList" ), @@ -497,7 +500,7 @@ ) ), @Meta.SymL( - offset=851, + offset=917, name=@Meta.QName( kind=2, pack="ch.fhnw.thga.fregelanguageserver.hover.Hover", base="FregeCodeBlock", member="showsub" ), @@ -506,7 +509,7 @@ ) ), @Meta.SymL( - offset=826, + offset=892, name=@Meta.QName( kind=2, pack="ch.fhnw.thga.fregelanguageserver.hover.Hover", base="FregeCodeBlock", member="hashCode" ), @@ -515,7 +518,7 @@ ) ), @Meta.SymL( - offset=851, + offset=917, name=@Meta.QName( kind=2, pack="ch.fhnw.thga.fregelanguageserver.hover.Hover", base="FregeCodeBlock", member="display" ), @@ -524,7 +527,7 @@ ) ), @Meta.SymL( - offset=826, + offset=892, name=@Meta.QName( kind=2, pack="ch.fhnw.thga.fregelanguageserver.hover.Hover", base="FregeCodeBlock", member="!=" ), @@ -533,7 +536,7 @@ ) ), @Meta.SymL( - offset=826, + offset=892, name=@Meta.QName( kind=2, pack="ch.fhnw.thga.fregelanguageserver.hover.Hover", base="FregeCodeBlock", member="==" ), @@ -542,7 +545,7 @@ ) ), @Meta.SymL( - offset=890, + offset=956, name=@Meta.QName( kind=2, pack="ch.fhnw.thga.fregelanguageserver.hover.Hover", base="FregeCodeBlock", member="show" ), @@ -553,32 +556,32 @@ }, funs={ @Meta.SymV( - offset=809, + offset=875, name=@Meta.QName( kind=2, pack="ch.fhnw.thga.fregelanguageserver.hover.Hover", base="FregeCodeBlock", member="upd$code" ), stri="s(su)", sig=31, depth=2, rkind=13, doc="update field @code@" ), @Meta.SymV( - offset=809, + offset=875, name=@Meta.QName( kind=2, pack="ch.fhnw.thga.fregelanguageserver.hover.Hover", base="FregeCodeBlock", member="has$code" ), stri="s(u)", sig=23, depth=1, rkind=13, doc="check if constructor has field @code@" ), @Meta.SymV( - offset=809, + offset=875, name=@Meta.QName( kind=2, pack="ch.fhnw.thga.fregelanguageserver.hover.Hover", base="FregeCodeBlock", member="chg$code" ), stri="s(su)", sig=33, depth=2, rkind=13, doc="change field @code@" ), @Meta.SymV( - offset=809, + offset=875, name=@Meta.QName( kind=2, pack="ch.fhnw.thga.fregelanguageserver.hover.Hover", base="FregeCodeBlock", member="code" ), - stri="s(s)", sig=10, depth=1, rkind=13, doc="access field @code@" + stri="s(s)", sig=1, depth=1, rkind=13, doc="access field @code@" ) }, prod=true, newt=true @@ -586,78 +589,78 @@ }, symvs={ @Meta.SymV( - offset=1706, name=@Meta.QName(pack="ch.fhnw.thga.fregelanguageserver.hover.Hover", base="tokenToQName"), + offset=1772, name=@Meta.QName(pack="ch.fhnw.thga.fregelanguageserver.hover.Hover", base="tokenToQName"), stri="s(u)", sig=35, depth=1, rkind=13 ), @Meta.SymV( - offset=2564, - name=@Meta.QName(pack="ch.fhnw.thga.fregelanguageserver.hover.Hover", base="shouldShowLocalVaridTypeSignature"), + offset=4568, + name=@Meta.QName(pack="ch.fhnw.thga.fregelanguageserver.hover.Hover", base="shouldShowLocalConidDataConstructor"), stri="u", sig=36, depth=0, rkind=8 ), @Meta.SymV( - offset=4502, - name=@Meta.QName(pack="ch.fhnw.thga.fregelanguageserver.hover.Hover", base="shouldShowLocalConidDataConstructor"), + offset=3593, + name=@Meta.QName(pack="ch.fhnw.thga.fregelanguageserver.hover.Hover", base="shouldShowLocalConidTypeSignature"), stri="u", sig=36, depth=0, rkind=8 ), @Meta.SymV( - offset=5033, - name=@Meta.QName( - pack="ch.fhnw.thga.fregelanguageserver.hover.Hover", base="shouldShowImportedConidDataConstructor" - ), + offset=2630, + name=@Meta.QName(pack="ch.fhnw.thga.fregelanguageserver.hover.Hover", base="shouldShowLocalVaridTypeSignature"), stri="u", sig=36, depth=0, rkind=8 ), @Meta.SymV( - offset=4016, + offset=4082, name=@Meta.QName( pack="ch.fhnw.thga.fregelanguageserver.hover.Hover", base="shouldShowImportedConidTypeSignature" ), stri="u", sig=36, depth=0, rkind=8 ), @Meta.SymV( - offset=3037, + offset=5099, name=@Meta.QName( - pack="ch.fhnw.thga.fregelanguageserver.hover.Hover", base="shouldShowImportedVaridTypeSignature" + pack="ch.fhnw.thga.fregelanguageserver.hover.Hover", base="shouldShowImportedConidDataConstructor" ), stri="u", sig=36, depth=0, rkind=8 ), @Meta.SymV( - offset=3527, - name=@Meta.QName(pack="ch.fhnw.thga.fregelanguageserver.hover.Hover", base="shouldShowLocalConidTypeSignature"), + offset=3103, + name=@Meta.QName( + pack="ch.fhnw.thga.fregelanguageserver.hover.Hover", base="shouldShowImportedVaridTypeSignature" + ), stri="u", sig=36, depth=0, rkind=8 ), @Meta.SymV( - offset=5564, name=@Meta.QName(pack="ch.fhnw.thga.fregelanguageserver.hover.Hover", base="main"), stri="u", + offset=5630, name=@Meta.QName(pack="ch.fhnw.thga.fregelanguageserver.hover.Hover", base="main"), stri="u", sig=37, depth=0, rkind=8 ), @Meta.SymV( - offset=2195, name=@Meta.QName(pack="ch.fhnw.thga.fregelanguageserver.hover.Hover", base="getTypeOnHover"), + offset=1140, name=@Meta.QName(pack="ch.fhnw.thga.fregelanguageserver.hover.Hover", base="getSymbolType"), stri="s(u)", sig=39, depth=1, rkind=13 ), @Meta.SymV( - offset=1074, name=@Meta.QName(pack="ch.fhnw.thga.fregelanguageserver.hover.Hover", base="getSymbolType"), + offset=2261, name=@Meta.QName(pack="ch.fhnw.thga.fregelanguageserver.hover.Hover", base="getTypeOnHover"), stri="s(u)", sig=41, depth=1, rkind=13 ), @Meta.SymV( - offset=1579, name=@Meta.QName(pack="ch.fhnw.thga.fregelanguageserver.hover.Hover", base="findSymbol"), + offset=1645, name=@Meta.QName(pack="ch.fhnw.thga.fregelanguageserver.hover.Hover", base="findSymbol"), stri="s(u)", sig=43, depth=1, rkind=13 ), @Meta.SymV( - offset=1196, name=@Meta.QName(pack="ch.fhnw.thga.fregelanguageserver.hover.Hover", base="findToken"), stri="s(u)", + offset=1262, name=@Meta.QName(pack="ch.fhnw.thga.fregelanguageserver.hover.Hover", base="findToken"), stri="s(u)", sig=44, depth=1, rkind=13 ), @Meta.SymV( - offset=1911, + offset=1977, name=@Meta.QName(pack="ch.fhnw.thga.fregelanguageserver.hover.Hover", base="compileAndGetTypeSignatureOnHover"), stri="s(uu)", sig=45, depth=2, rkind=13 ) }, symls={ @Meta.SymL( - offset=976, name=@Meta.QName(pack="ch.fhnw.thga.fregelanguageserver.hover.Hover", base="Hover"), + offset=1042, name=@Meta.QName(pack="ch.fhnw.thga.fregelanguageserver.hover.Hover", base="Hover"), alias=@Meta.QName(kind=2, pack="ch.fhnw.thga.fregelanguageserver.hover.Hover", base="Hover", member="Hover") ), @Meta.SymL( - offset=787, name=@Meta.QName(pack="ch.fhnw.thga.fregelanguageserver.hover.Hover", base="FregeCodeBlock"), + offset=853, name=@Meta.QName(pack="ch.fhnw.thga.fregelanguageserver.hover.Hover", base="FregeCodeBlock"), alias=@Meta.QName( kind=2, pack="ch.fhnw.thga.fregelanguageserver.hover.Hover", base="FregeCodeBlock", member="FregeCodeBlock" ) @@ -665,27 +668,28 @@ }, taus={ @Meta.Tau( - kind=2, suba=0, tcon={@Meta.QName(kind=0, pack="ch.fhnw.thga.fregelanguageserver.hover.Hover", base="Hover")} + kind=2, suba=0, + tcon={@Meta.QName(kind=0, pack="ch.fhnw.thga.fregelanguageserver.hover.Hover", base="FregeCodeBlock")} ), - @Meta.Tau(kind=2, suba=0, tcon={@Meta.QName(kind=0, pack="frege.prelude.PreludeBase", base="Int")}), @Meta.Tau(kind=2, suba=0, tcon={@Meta.QName(kind=0, pack="frege.prelude.PreludeBase", base="StringJ")}), @Meta.Tau(kind=2, suba=0, tcon={@Meta.QName(kind=0, pack="frege.prelude.PreludeBase", base="Char")}), - @Meta.Tau(kind=0, suba=2, subb=3), + @Meta.Tau(kind=0, suba=1, subb=2), @Meta.Tau(kind=2, suba=0, tcon={@Meta.QName(kind=0, pack="frege.prelude.PreludeBase", base="[]")}), - @Meta.Tau(kind=0, suba=5, subb=3), @Meta.Tau(kind=0, suba=5, subb=0), + @Meta.Tau(kind=0, suba=4, subb=0), + @Meta.Tau(kind=2, suba=0, tcon={@Meta.QName(kind=0, pack="frege.prelude.PreludeBase", base="Int")}), + @Meta.Tau(kind=0, suba=4, subb=2), @Meta.Tau( - kind=2, suba=0, - tcon={@Meta.QName(kind=0, pack="ch.fhnw.thga.fregelanguageserver.hover.Hover", base="FregeCodeBlock")} + kind=2, suba=0, tcon={@Meta.QName(kind=0, pack="ch.fhnw.thga.fregelanguageserver.hover.Hover", base="Hover")} ), - @Meta.Tau(kind=0, suba=5, subb=8), + @Meta.Tau(kind=0, suba=4, subb=8), @Meta.Tau(kind=2, suba=0, tcon={@Meta.QName(kind=0, pack="frege.prelude.PreludeBase", base="Bool")}), @Meta.Tau( kind=2, suba=0, tcon={@Meta.QName(kind=0, pack="ch.fhnw.thga.fregelanguageserver.types.Range", base="Range")} ), @Meta.Tau(kind=9), @Meta.Tau(suba=12, tvar="α"), @Meta.Tau(kind=2, suba=0, tcon={@Meta.QName(kind=0, pack="frege.prelude.PreludeBase", base="->")}), - @Meta.Tau(kind=0, suba=14, subb=11), @Meta.Tau(kind=0, suba=15, subb=11), @Meta.Tau(kind=0, suba=14, subb=8), - @Meta.Tau(kind=0, suba=17, subb=8), @Meta.Tau(kind=0, suba=14, subb=4), @Meta.Tau(kind=0, suba=19, subb=4), + @Meta.Tau(kind=0, suba=14, subb=11), @Meta.Tau(kind=0, suba=15, subb=11), @Meta.Tau(kind=0, suba=14, subb=0), + @Meta.Tau(kind=0, suba=17, subb=0), @Meta.Tau(kind=0, suba=14, subb=3), @Meta.Tau(kind=0, suba=19, subb=3), @Meta.Tau(kind=2, suba=0, tcon={@Meta.QName(kind=0, pack="frege.compiler.types.Tokens", base="Token")}), @Meta.Tau(kind=2, suba=0, tcon={@Meta.QName(kind=0, pack="frege.control.monad.State", base="StateT")}), @Meta.Tau(kind=2, suba=0, tcon={@Meta.QName(kind=0, pack="frege.compiler.types.Global", base="Global")}), @@ -702,46 +706,46 @@ @Meta.Tau(kind=0, suba=32, subb=33), @Meta.Tau(kind=2, suba=0, tcon={@Meta.QName(kind=0, pack="frege.prelude.PreludeBase", base="()")}), @Meta.Tau(kind=0, suba=34, subb=35), + @Meta.Tau(kind=2, suba=0, tcon={@Meta.QName(kind=0, pack="frege.compiler.types.Symbols", base="SymbolT")}), + @Meta.Tau(kind=0, suba=37, subb=23), @Meta.Tau(kind=0, suba=26, subb=3), @Meta.Tau( kind=2, suba=0, tcon={@Meta.QName(kind=0, pack="ch.fhnw.thga.fregelanguageserver.types.Position", base="Position")} ), - @Meta.Tau(kind=0, suba=26, subb=0), - @Meta.Tau(kind=2, suba=0, tcon={@Meta.QName(kind=0, pack="frege.compiler.types.Symbols", base="SymbolT")}), - @Meta.Tau(kind=0, suba=39, subb=23), @Meta.Tau(kind=0, suba=26, subb=4), @Meta.Tau(kind=0, suba=26, subb=40), - @Meta.Tau(kind=0, suba=26, subb=21), @Meta.Tau(kind=0, suba=25, subb=0), @Meta.Tau(kind=0, suba=34, subb=44) + @Meta.Tau(kind=0, suba=26, subb=8), @Meta.Tau(kind=0, suba=26, subb=38), @Meta.Tau(kind=0, suba=26, subb=21), + @Meta.Tau(kind=0, suba=25, subb=8), @Meta.Tau(kind=0, suba=34, subb=44) }, rhos={ - @Meta.Rho(rhofun=false, rhotau=0), @Meta.Rho(rhofun=false, rhotau=1), @Meta.Rho(rhofun=false, rhotau=4), - @Meta.Rho(sigma=2, rhotau=2), @Meta.Rho(sigma=0, rhotau=3), @Meta.Rho(sigma=1, rhotau=4), - @Meta.Rho(sigma=0, rhotau=2), @Meta.Rho(rhofun=false, rhotau=6), @Meta.Rho(sigma=0, rhotau=7), - @Meta.Rho(rhofun=false, rhotau=7), @Meta.Rho(sigma=6, rhotau=3), @Meta.Rho(rhofun=false, rhotau=8), - @Meta.Rho(sigma=8, rhotau=3), @Meta.Rho(sigma=1, rhotau=12), @Meta.Rho(sigma=8, rhotau=2), - @Meta.Rho(sigma=8, rhotau=7), @Meta.Rho(rhofun=false, rhotau=9), @Meta.Rho(sigma=12, rhotau=3), - @Meta.Rho(sigma=8, rhotau=1), @Meta.Rho(rhofun=false, rhotau=10), @Meta.Rho(sigma=8, rhotau=19), - @Meta.Rho(sigma=8, rhotau=20), @Meta.Rho(sigma=0, rhotau=1), @Meta.Rho(sigma=0, rhotau=19), - @Meta.Rho(sigma=0, rhotau=23), @Meta.Rho(rhofun=false, rhotau=11), @Meta.Rho(sigma=8, rhotau=0), - @Meta.Rho(sigma=18, rhotau=26), @Meta.Rho(sigma=18, rhotau=0), @Meta.Rho(sigma=0, rhotau=28), - @Meta.Rho(sigma=0, rhotau=26), @Meta.Rho(rhofun=false, rhotau=13), @Meta.Rho(sigma=22, rhotau=19), - @Meta.Rho(rhofun=false, rhotau=16), @Meta.Rho(sigma=24, rhotau=0), @Meta.Rho(sigma=0, rhotau=34), - @Meta.Rho(rhofun=false, rhotau=18), @Meta.Rho(sigma=26, rhotau=0), @Meta.Rho(sigma=0, rhotau=37), - @Meta.Rho(sigma=0, rhotau=11), @Meta.Rho(sigma=0, rhotau=25), @Meta.Rho(sigma=2, rhotau=11), - @Meta.Rho(sigma=8, rhotau=41), @Meta.Rho(rhofun=false, rhotau=20), @Meta.Rho(sigma=32, rhotau=11), - @Meta.Rho(sigma=8, rhotau=44), @Meta.Rho(rhofun=false, rhotau=21), @Meta.Rho(rhofun=false, rhotau=28), + @Meta.Rho(rhofun=false, rhotau=0), @Meta.Rho(rhofun=false, rhotau=3), @Meta.Rho(sigma=0, rhotau=1), + @Meta.Rho(rhofun=false, rhotau=5), @Meta.Rho(sigma=3, rhotau=1), @Meta.Rho(sigma=2, rhotau=4), + @Meta.Rho(rhofun=false, rhotau=6), @Meta.Rho(sigma=0, rhotau=4), @Meta.Rho(sigma=5, rhotau=7), + @Meta.Rho(rhofun=false, rhotau=7), @Meta.Rho(sigma=0, rhotau=9), @Meta.Rho(rhofun=false, rhotau=8), + @Meta.Rho(sigma=8, rhotau=1), @Meta.Rho(rhofun=false, rhotau=9), @Meta.Rho(sigma=10, rhotau=4), + @Meta.Rho(sigma=8, rhotau=4), @Meta.Rho(sigma=5, rhotau=15), @Meta.Rho(sigma=8, rhotau=9), + @Meta.Rho(sigma=0, rhotau=6), @Meta.Rho(rhofun=false, rhotau=10), @Meta.Rho(sigma=0, rhotau=19), + @Meta.Rho(sigma=0, rhotau=20), @Meta.Rho(sigma=8, rhotau=6), @Meta.Rho(sigma=8, rhotau=19), + @Meta.Rho(sigma=8, rhotau=23), @Meta.Rho(rhofun=false, rhotau=11), @Meta.Rho(sigma=0, rhotau=11), + @Meta.Rho(sigma=18, rhotau=26), @Meta.Rho(sigma=18, rhotau=11), @Meta.Rho(sigma=8, rhotau=28), + @Meta.Rho(sigma=8, rhotau=26), @Meta.Rho(rhofun=false, rhotau=13), @Meta.Rho(sigma=22, rhotau=19), + @Meta.Rho(sigma=8, rhotau=25), @Meta.Rho(rhofun=false, rhotau=16), @Meta.Rho(sigma=25, rhotau=11), + @Meta.Rho(sigma=8, rhotau=35), @Meta.Rho(rhofun=false, rhotau=18), @Meta.Rho(sigma=27, rhotau=11), + @Meta.Rho(sigma=8, rhotau=38), @Meta.Rho(sigma=8, rhotau=0), @Meta.Rho(sigma=3, rhotau=0), + @Meta.Rho(sigma=0, rhotau=41), @Meta.Rho(rhofun=false, rhotau=20), @Meta.Rho(sigma=32, rhotau=0), + @Meta.Rho(sigma=0, rhotau=44), @Meta.Rho(rhofun=false, rhotau=21), @Meta.Rho(rhofun=false, rhotau=28), @Meta.Rho(sigma=34, rhotau=47), @Meta.Rho(rhofun=false, rhotau=31), @Meta.Rho(rhofun=false, rhotau=36), - @Meta.Rho(rhofun=false, rhotau=37), @Meta.Rho(rhofun=false, rhotau=38), @Meta.Rho(sigma=38, rhotau=52), + @Meta.Rho(rhofun=false, rhotau=38), @Meta.Rho(rhofun=false, rhotau=39), @Meta.Rho(sigma=38, rhotau=52), @Meta.Rho(rhofun=false, rhotau=40), @Meta.Rho(rhofun=false, rhotau=41), @Meta.Rho(sigma=40, rhotau=55), @Meta.Rho(rhofun=false, rhotau=27), @Meta.Rho(rhofun=false, rhotau=42), @Meta.Rho(sigma=42, rhotau=58), - @Meta.Rho(rhofun=false, rhotau=43), @Meta.Rho(sigma=38, rhotau=60), @Meta.Rho(rhofun=false, rhotau=45), - @Meta.Rho(sigma=38, rhotau=62), @Meta.Rho(sigma=2, rhotau=63) + @Meta.Rho(rhofun=false, rhotau=43), @Meta.Rho(sigma=40, rhotau=60), @Meta.Rho(rhofun=false, rhotau=45), + @Meta.Rho(sigma=40, rhotau=62), @Meta.Rho(sigma=3, rhotau=63) }, sigmas={ - @Meta.Sigma(rho=0), @Meta.Sigma(rho=1), @Meta.Sigma(rho=2), @Meta.Sigma(rho=5), @Meta.Sigma(rho=6), - @Meta.Sigma(rho=8), @Meta.Sigma(rho=9), @Meta.Sigma(rho=10), @Meta.Sigma(rho=11), @Meta.Sigma(rho=13), - @Meta.Sigma(rho=14), @Meta.Sigma(rho=15), @Meta.Sigma(rho=16), @Meta.Sigma(rho=17), @Meta.Sigma(rho=18), + @Meta.Sigma(rho=0), @Meta.Sigma(rho=2), @Meta.Sigma(rho=3), @Meta.Sigma(rho=1), @Meta.Sigma(rho=5), + @Meta.Sigma(rho=6), @Meta.Sigma(rho=8), @Meta.Sigma(rho=10), @Meta.Sigma(rho=11), @Meta.Sigma(rho=12), + @Meta.Sigma(rho=13), @Meta.Sigma(rho=14), @Meta.Sigma(rho=16), @Meta.Sigma(rho=17), @Meta.Sigma(rho=18), @Meta.Sigma(rho=21), @Meta.Sigma(rho=22), @Meta.Sigma(rho=24), @Meta.Sigma(rho=25), @Meta.Sigma(rho=27), @Meta.Sigma(rho=29), @Meta.Sigma(rho=30), @Meta.Sigma(rho=31), @Meta.Sigma(bound={"α"}, kinds={12}, rho=32), - @Meta.Sigma(rho=33), @Meta.Sigma(rho=35), @Meta.Sigma(rho=36), @Meta.Sigma(rho=38), @Meta.Sigma(rho=39), + @Meta.Sigma(rho=33), @Meta.Sigma(rho=34), @Meta.Sigma(rho=36), @Meta.Sigma(rho=37), @Meta.Sigma(rho=39), @Meta.Sigma(rho=40), @Meta.Sigma(rho=41), @Meta.Sigma(rho=42), @Meta.Sigma(rho=43), @Meta.Sigma(rho=45), @Meta.Sigma(rho=46), @Meta.Sigma(rho=48), @Meta.Sigma(rho=49), @Meta.Sigma(rho=50), @Meta.Sigma(rho=51), @Meta.Sigma(rho=53), @Meta.Sigma(rho=54), @Meta.Sigma(rho=56), @Meta.Sigma(rho=57), @Meta.Sigma(rho=59), @@ -753,127 +757,127 @@ final public class Hover { -final public static class IShow_Hover implements PreludeText.CShow { - public IShow_Hover() {} - final public static IShow_Hover it = new IShow_Hover(); - @Override final public String/**/ ƒshowsPrec( - final Lazy arg$1, final Lazy arg$2, final Lazy*/> arg$3 - ) { - return IShow_Hover.showsPrec(arg$1, arg$2.call(), arg$3.call()); - } - @Override final public String/**/ ƒshowsub(final Lazy arg$1) { - return IShow_Hover.showsub(arg$1.call()); - } - @Override final public PreludeBase.TList ƒshowChars(final Lazy arg$1) { - return IShow_Hover.showChars(arg$1.call()); - } - @Override final public String/**/ ƒdisplay(final Lazy arg$1) { - return IShow_Hover.display(arg$1.call()); - } - @Override final public String/**/ ƒshow(final Lazy arg$1) { - return IShow_Hover.show(arg$1.call()); +final public static class IShow_FregeCodeBlock implements PreludeText.CShow*/> { + public IShow_FregeCodeBlock() {} + final public static IShow_FregeCodeBlock it = new IShow_FregeCodeBlock(); + @Override final public String/**/ ƒshowsub(final Lazy*/> arg$1) { + return IShow_FregeCodeBlock.showsub(arg$1.call()); } @Override final public String/**/ ƒshowList( - final Lazy> arg$1, final Lazy*/> arg$2 + final Lazy*/>> arg$1, final Lazy*/> arg$2 ) { - return IShow_Hover.showList(arg$1.call(), arg$2.call()); + return IShow_FregeCodeBlock.showList(arg$1.call(), arg$2.call()); } - final public static String/**/ showsPrec( - final Lazy arg$1, final THover arg$2, final String/**/ arg$3 + @Override final public String/**/ ƒshowsPrec( + final Lazy arg$1, final Lazy*/> arg$2, final Lazy*/> arg$3 ) { - return IShow_Hover.show(arg$2) + arg$3; + return IShow_FregeCodeBlock.showsPrec(arg$1, arg$2.call(), arg$3.call()); } - final public static String/**/ showsub(final THover arg$1) { - final String/**/ a2$18191 = arg$1.mem$content.call(); - final Range.TRange a1$18190 = arg$1.mem$range.call(); - return ("(" + (((("Hover" + " ") + Range.IShow_Range.showsub(a1$18190)) + " ") + IShow_FregeCodeBlock.showsub( - a2$18191 - ))) + ")"; + @Override final public String/**/ ƒdisplay(final Lazy*/> arg$1) { + return IShow_FregeCodeBlock.display(arg$1.call()); } - final public static PreludeBase.TList showChars(final THover arg$1) { - return PreludeList.IListView_StringJ.toList(IShow_Hover.show(arg$1)); + @Override final public String/**/ ƒshow(final Lazy*/> arg$1) { + return IShow_FregeCodeBlock.show(arg$1.call()); } - final public static String/**/ display(final THover arg$1) { - return IShow_Hover.show(arg$1); + @Override final public PreludeBase.TList ƒshowChars(final Lazy*/> arg$1) { + return IShow_FregeCodeBlock.showChars(arg$1.call()); } - final public static String/**/ show(final THover arg$1) { - final String/**/ a2$18188 = arg$1.mem$content.call(); - final Range.TRange a1$18187 = arg$1.mem$range.call(); - return ((("Hover" + " ") + Range.IShow_Range.showsub(a1$18187)) + " ") + IShow_FregeCodeBlock.showsub( - a2$18188 - ); + final public static String/**/ showsub(final String/**/ arg$1) { + return IShow_FregeCodeBlock.show(arg$1); } - final public static String/**/ showList(final PreludeBase.TList arg$1, final String/**/ arg$2) { + final public static String/**/ showList( + final PreludeBase.TList*/> arg$1, final String/**/ arg$2 + ) { return "[" + (PreludeText.joined( Thunk.*/>lazy(", "), - PreludeList.*/, THover>map( - (Func.U*/>)((final Lazy η$20180) -> Thunk.< - String/**/ - >shared((Lazy*/>)(() -> IShow_Hover.show(η$20180.call())))), + PreludeList.*/, String/**/>map( + (Func.U*/, String/**/>)(( + final Lazy*/> η$20143 + ) -> Thunk.*/>shared( + (Lazy*/>)(() -> IShow_FregeCodeBlock.show( + η$20143.call() + )) + )), arg$1 ) ).call() + ("]" + arg$2)); } -} -final public static class IShow_FregeCodeBlock implements PreludeText.CShow*/> { - public IShow_FregeCodeBlock() {} - final public static IShow_FregeCodeBlock it = new IShow_FregeCodeBlock(); - @Override final public String/**/ ƒshowsPrec( - final Lazy arg$1, final Lazy*/> arg$2, final Lazy*/> arg$3 + final public static String/**/ showsPrec( + final Lazy arg$1, final String/**/ arg$2, final String/**/ arg$3 ) { - return IShow_FregeCodeBlock.showsPrec(arg$1, arg$2.call(), arg$3.call()); + return IShow_FregeCodeBlock.show(arg$2) + arg$3; } - @Override final public String/**/ ƒshowsub(final Lazy*/> arg$1) { - return IShow_FregeCodeBlock.showsub(arg$1.call()); + final public static String/**/ display(final String/**/ arg$1) { + return IShow_FregeCodeBlock.show(arg$1); } - @Override final public PreludeBase.TList ƒshowChars(final Lazy*/> arg$1) { - return IShow_FregeCodeBlock.showChars(arg$1.call()); + final public static String/**/ show(final String/**/ arg$1) { + return "```frege\n" + (arg$1 + "\n```"); } - @Override final public String/**/ ƒdisplay(final Lazy*/> arg$1) { - return IShow_FregeCodeBlock.display(arg$1.call()); + final public static PreludeBase.TList showChars(final String/**/ arg$1) { + return PreludeList.IListView_StringJ.toList(IShow_FregeCodeBlock.show(arg$1)); } - @Override final public String/**/ ƒshow(final Lazy*/> arg$1) { - return IShow_FregeCodeBlock.show(arg$1.call()); +} +final public static class IShow_Hover implements PreludeText.CShow { + public IShow_Hover() {} + final public static IShow_Hover it = new IShow_Hover(); + @Override final public String/**/ ƒshowsub(final Lazy arg$1) { + return IShow_Hover.showsub(arg$1.call()); } @Override final public String/**/ ƒshowList( - final Lazy*/>> arg$1, final Lazy*/> arg$2 + final Lazy> arg$1, final Lazy*/> arg$2 ) { - return IShow_FregeCodeBlock.showList(arg$1.call(), arg$2.call()); + return IShow_Hover.showList(arg$1.call(), arg$2.call()); } - final public static String/**/ showsPrec( - final Lazy arg$1, final String/**/ arg$2, final String/**/ arg$3 + @Override final public String/**/ ƒshowsPrec( + final Lazy arg$1, final Lazy arg$2, final Lazy*/> arg$3 ) { - return IShow_FregeCodeBlock.show(arg$2) + arg$3; + return IShow_Hover.showsPrec(arg$1, arg$2.call(), arg$3.call()); } - final public static String/**/ showsub(final String/**/ arg$1) { - return IShow_FregeCodeBlock.show(arg$1); + @Override final public String/**/ ƒdisplay(final Lazy arg$1) { + return IShow_Hover.display(arg$1.call()); } - final public static PreludeBase.TList showChars(final String/**/ arg$1) { - return PreludeList.IListView_StringJ.toList(IShow_FregeCodeBlock.show(arg$1)); + @Override final public String/**/ ƒshow(final Lazy arg$1) { + return IShow_Hover.show(arg$1.call()); } - final public static String/**/ display(final String/**/ arg$1) { - return IShow_FregeCodeBlock.show(arg$1); + @Override final public PreludeBase.TList ƒshowChars(final Lazy arg$1) { + return IShow_Hover.showChars(arg$1.call()); } - final public static String/**/ show(final String/**/ arg$1) { - return "```frege\n" + (arg$1 + "\n```"); + final public static String/**/ showsub(final THover arg$1) { + final String/**/ a2$18193 = arg$1.mem$content.call(); + final Range.TRange a1$18192 = arg$1.mem$range.call(); + return ("(" + (((("Hover" + " ") + Range.IShow_Range.showsub(a1$18192)) + " ") + IShow_FregeCodeBlock.showsub( + a2$18193 + ))) + ")"; } - final public static String/**/ showList( - final PreludeBase.TList*/> arg$1, final String/**/ arg$2 - ) { + final public static String/**/ showList(final PreludeBase.TList arg$1, final String/**/ arg$2) { return "[" + (PreludeText.joined( Thunk.*/>lazy(", "), - PreludeList.*/, String/**/>map( - (Func.U*/, String/**/>)(( - final Lazy*/> η$20190 - ) -> Thunk.*/>shared( - (Lazy*/>)(() -> IShow_FregeCodeBlock.show( - η$20190.call() - )) - )), + PreludeList.*/, THover>map( + (Func.U*/>)((final Lazy η$20155) -> Thunk.< + String/**/ + >shared((Lazy*/>)(() -> IShow_Hover.show(η$20155.call())))), arg$1 ) ).call() + ("]" + arg$2)); } + final public static String/**/ showsPrec( + final Lazy arg$1, final THover arg$2, final String/**/ arg$3 + ) { + return IShow_Hover.show(arg$2) + arg$3; + } + final public static String/**/ display(final THover arg$1) { + return IShow_Hover.show(arg$1); + } + final public static String/**/ show(final THover arg$1) { + final String/**/ a2$18190 = arg$1.mem$content.call(); + final Range.TRange a1$18189 = arg$1.mem$range.call(); + return ((("Hover" + " ") + Range.IShow_Range.showsub(a1$18189)) + " ") + IShow_FregeCodeBlock.showsub( + a2$18190 + ); + } + final public static PreludeBase.TList showChars(final THover arg$1) { + return PreludeList.IListView_StringJ.toList(IShow_Hover.show(arg$1)); + } } final public static class IEq_FregeCodeBlock implements PreludeBase.CEq*/> { public IEq_FregeCodeBlock() {} @@ -915,11 +919,11 @@ public IEq_Hover() {} return IEq_Hover.$eq$eq(arg$1.call(), arg$2.call()); } final public static int hashCode(final THover arg$1) { - final String/**/ a2$18185 = arg$1.mem$content.call(); - final Range.TRange a1$18184 = arg$1.mem$range.call(); + final String/**/ a2$18187 = arg$1.mem$content.call(); + final Range.TRange a1$18186 = arg$1.mem$range.call(); return (31 * ((31 * ((31 * 1) + RunTM.constructor(arg$1))) + Range.IEq_Range.hashCode( - a1$18184 - ))) + IEq_FregeCodeBlock.hashCode(a2$18185); + a1$18186 + ))) + IEq_FregeCodeBlock.hashCode(a2$18187); } final public static boolean $excl$eq(final THover arg$1, final THover arg$2) { if (IEq_Hover.$eq$eq(arg$1, arg$2)) { @@ -930,11 +934,11 @@ final public static int hashCode(final THover arg$1) { } } final public static boolean $eq$eq(final THover arg$1, final THover arg$2) { - final String/**/ µ$$18255 = arg$1.mem$content.call(); - final Range.TRange µ$$18254 = arg$1.mem$range.call(); - final String/**/ µ$$18257 = arg$2.mem$content.call(); - final Range.TRange µ$$18256 = arg$2.mem$range.call(); - return Range.IEq_Range.$eq$eq(µ$$18254, µ$$18256) && IEq_FregeCodeBlock.$eq$eq(µ$$18255, µ$$18257); + final String/**/ µ$$18257 = arg$1.mem$content.call(); + final Range.TRange µ$$18256 = arg$1.mem$range.call(); + final String/**/ µ$$18259 = arg$2.mem$content.call(); + final Range.TRange µ$$18258 = arg$2.mem$range.call(); + return Range.IEq_Range.$eq$eq(µ$$18256, µ$$18258) && IEq_FregeCodeBlock.$eq$eq(µ$$18257, µ$$18259); } } final public static class THover implements frege.runtime.Value, Lazy { @@ -974,6 +978,10 @@ final public Thunk asThunk() { final public static <α> boolean has$range(final Lazy<α> arg$1) { return true; } + final public static Range.TRange range(final THover arg$1) { + final Range.TRange a1$18116 = arg$1.mem$range.call(); + return a1$18116; + } final public static THover chg$range(final THover arg$1, final Lazy> arg$2) { return THover.mk( Thunk.nested((Lazy>)(() -> arg$2.call().apply(arg$1.mem$range))), @@ -991,12 +999,8 @@ final public Thunk asThunk() { ); } final public static String/**/ content(final THover arg$1) { - final String/**/ a2$18102 = arg$1.mem$content.call(); - return a2$18102; - } - final public static Range.TRange range(final THover arg$1) { - final Range.TRange a1$18113 = arg$1.mem$range.call(); - return a1$18113; + final String/**/ a2$18105 = arg$1.mem$content.call(); + return a2$18105; } } public static abstract class TFregeCodeBlock { @@ -1022,12 +1026,12 @@ final public static State.TStateT, QNames. ) { return State.TStateT., QNames.TQName>mk( (Func.U, PreludeBase.TTuple2>>)(( - final Lazy arg$20209 + final Lazy arg$20176 ) -> { - final PreludeBase.TTuple2 v2895$19202 = - PreludeBase.TTuple2.mk(arg$20209, arg$20209) + final PreludeBase.TTuple2 v2895$19191 = + PreludeBase.TTuple2.mk(arg$20176, arg$20176) .call(); - final State.TStateT, PreludeBase.TEither> $20211 = + final State.TStateT, PreludeBase.TEither> $20178 = State.IMonadTrans_StateT.< Global.TGlobal, PreludeBase.TEither, PreludeBase.TMaybe >lift( @@ -1038,7 +1042,7 @@ final public static State.TStateT, QNames. >)Thunk.>>shared( (Lazy - >>)(() -> Global.TGlobal.resolved(v2895$19202.mem1.call(), arg$1)) + >>)(() -> Global.TGlobal.resolved(v2895$19191.mem1.call(), arg$1)) ).call()) ) ); @@ -1047,22 +1051,22 @@ final public static State.TStateT, QNames. Kind.U< PreludeBase.TMaybe, PreludeBase.TTuple2, Global.TGlobal> > - > v7734$19231 = $20211.mem$run; + > v7734$19220 = $20178.mem$run; final PreludeBase.TMaybe< PreludeBase.TTuple2, Global.TGlobal> - > $20213 = RunTM.< + > $20180 = RunTM.< Func.U< Global.TGlobal, PreludeBase.TMaybe, Global.TGlobal>> > - >cast(v7734$19231).apply(v2895$19202.mem2).call(); + >cast(v7734$19220).apply(v2895$19191.mem2).call(); final PreludeBase.TMaybe.DJust< PreludeBase.TTuple2, Global.TGlobal> - > $20214 = $20213.asJust(); - if ($20214 != null) { - final PreludeBase.TTuple2, Global.TGlobal> v2895$19263 = - $20214.mem1.call(); - final State.TStateT, QNames.TQName> $20218 = + > $20181 = $20180.asJust(); + if ($20181 != null) { + final PreludeBase.TTuple2, Global.TGlobal> v2895$19252 = + $20181.mem1.call(); + final State.TStateT, QNames.TQName> $20185 = State.IMonadTrans_StateT.>lift( Maybe.IMonad_Maybe.it, Thunk., QNames.TQName>>shared( @@ -1073,29 +1077,29 @@ final public static State.TStateT, QNames. PreludeBase.TMaybe, Short, QNames.TQName >either( (Func.U>)(( - final Lazy η$20216 + final Lazy η$20183 ) -> Thunk.>shared( (Lazy>)(() -> PreludeBase.< Short, PreludeBase.TMaybe >$const( - PreludeBase.TMaybe.DNothing.mk(), η$20216 + PreludeBase.TMaybe.DNothing.mk(), η$20183 )) )), (Func.U>)(( - final Lazy η$20217 + final Lazy η$20184 ) -> PreludeBase.TMaybe.DJust.mk( - η$20217 + η$20184 )), - v2895$19263.mem1.call() + v2895$19252.mem1.call() )) ).call()) ) ); final Func.U< Global.TGlobal, Kind.U, PreludeBase.TTuple2> - > v7739$19236 = $20218.mem$run; + > v7739$19225 = $20185.mem$run; return Thunk., PreludeBase.TTuple2>>shared( (Lazy, PreludeBase.TTuple2 @@ -1109,14 +1113,14 @@ final public static State.TStateT, QNames. Global.TGlobal, PreludeBase.TMaybe> > - >cast(v7739$19236).apply(v2895$19263.mem2)) + >cast(v7739$19225).apply(v2895$19252.mem2)) ).call()) ); } final PreludeBase.TMaybe.DNothing< PreludeBase.TTuple2, Global.TGlobal> - > $20220 = $20213.asNothing(); - assert $20220 != null; + > $20187 = $20180.asNothing(); + assert $20187 != null; return Thunk., PreludeBase.TTuple2>>lazy( (Kind.U< PreludeBase.TMaybe, PreludeBase.TTuple2 @@ -1131,17 +1135,17 @@ final public static State.TStateT, QNames. return State.TStateT., String/**/>mk( (Func.U< Global.TGlobal, Kind.U, PreludeBase.TTuple2*/, Global.TGlobal>> - >)((final Lazy arg$20221) -> { - final PreludeBase.TTuple2 v2895$19926 = - PreludeBase.TTuple2.mk(arg$20221, arg$20221) + >)((final Lazy arg$20188) -> { + final PreludeBase.TTuple2 v2895$19649 = + PreludeBase.TTuple2.mk(arg$20188, arg$20188) .call(); - final State.TStateT, String/**/> $20223 = + final State.TStateT, String/**/> $20190 = State.IMonad_StateT., String/**/>pure( - Maybe.IMonad_Maybe.it, frege.ide.Utilities.label(v2895$19926.mem1, arg$1.call()) + Maybe.IMonad_Maybe.it, frege.ide.Utilities.label(v2895$19649.mem1, arg$1.call()) ); final Func.U< Global.TGlobal, Kind.U, PreludeBase.TTuple2*/, Global.TGlobal>> - > v7739$19899 = $20223.mem$run; + > v7739$19622 = $20190.mem$run; return Thunk.< Kind.U, PreludeBase.TTuple2*/, Global.TGlobal>> >shared( @@ -1157,7 +1161,7 @@ final public static State.TStateT, QNames. Global.TGlobal, PreludeBase.TMaybe*/, Global.TGlobal>> > - >cast(v7739$19899).apply(v2895$19926.mem2)) + >cast(v7739$19622).apply(v2895$19649.mem2)) ).call()) ); }) @@ -1166,9 +1170,9 @@ final public static State.TStateT, QNames. final public static State.TStateT, Tokens.TToken> findToken( final Lazy arg$1 ) { - final class Let$20225 { - final Let$20225 let$20225 = this; - final public boolean isHoverOverToken$18127(final Tokens.TToken arg$2) { + final class Let$20192 { + final Let$20192 let$20192 = this; + final public boolean isHoverOverToken$18130(final Tokens.TToken arg$2) { return (Position.TPosition.line(arg$1.call()) == Tokens.TToken.line(arg$2)) && ((Position.TPosition.character( arg$1.call() ) < (Tokens.TToken.col(arg$2) + Tokens.TToken.value(arg$2).length())) && (Position.TPosition.character( @@ -1176,15 +1180,15 @@ final class Let$20225 { ) >= Tokens.TToken.col(arg$2))); } } - final Let$20225 let$20225 = new Let$20225(); + final Let$20192 let$20192 = new Let$20192(); return State.TStateT., Tokens.TToken>mk( (Func.U, PreludeBase.TTuple2>>)(( - final Lazy arg$20226 + final Lazy arg$20193 ) -> { - final PreludeBase.TTuple2 v2895$20062 = - PreludeBase.TTuple2.mk(arg$20226, arg$20226) + final PreludeBase.TTuple2 v2895$20029 = + PreludeBase.TTuple2.mk(arg$20193, arg$20193) .call(); - final State.TStateT, Tokens.TToken> $20229 = + final State.TStateT, Tokens.TToken> $20196 = State.IMonadTrans_StateT.>lift( Maybe.IMonad_Maybe.it, Thunk., Tokens.TToken>>shared( @@ -1195,11 +1199,11 @@ final class Let$20225 { Tokens.TToken >find( (Func.U)(( - final Lazy η$20228 + final Lazy η$20195 ) -> Thunk.shared( - (Lazy)(() -> let$20225 - .isHoverOverToken$18127( - η$20228.call() + (Lazy)(() -> let$20192 + .isHoverOverToken$18130( + η$20195.call() )) )), Thunk.>shared( @@ -1208,7 +1212,7 @@ final class Let$20225 { >>)(() -> Tokens.IArrayElement_Token.listFromArray( Global.TSubSt.toks( Global.TGlobal.sub( - v2895$20062.mem1 + v2895$20029.mem1 .call() ) ) @@ -1220,7 +1224,7 @@ final class Let$20225 { ); final Func.U< Global.TGlobal, Kind.U, PreludeBase.TTuple2> - > v7739$20035 = $20229.mem$run; + > v7739$20002 = $20196.mem$run; return Thunk., PreludeBase.TTuple2>>shared( (Lazy, PreludeBase.TTuple2 @@ -1234,7 +1238,7 @@ final class Let$20225 { Global.TGlobal, PreludeBase.TMaybe> > - >cast(v7739$20035).apply(v2895$20062.mem2)) + >cast(v7739$20002).apply(v2895$20029.mem2)) ).call()) ); }) @@ -1247,11 +1251,11 @@ final public static State.TStateT, Symbols (Func.U< Global.TGlobal, Kind.U, PreludeBase.TTuple2, Global.TGlobal>> - >)((final Lazy arg$20231) -> { - final PreludeBase.TTuple2 v2895$19994 = - PreludeBase.TTuple2.mk(arg$20231, arg$20231) + >)((final Lazy arg$20198) -> { + final PreludeBase.TTuple2 v2895$19961 = + PreludeBase.TTuple2.mk(arg$20198, arg$20198) .call(); - final State.TStateT, Symbols.TSymbolT> $20233 = + final State.TStateT, Symbols.TSymbolT> $20200 = State.IMonadTrans_StateT., PreludeBase.TMaybe>lift( Maybe.IMonad_Maybe.it, Thunk., Symbols.TSymbolT>>shared( @@ -1260,14 +1264,14 @@ final public static State.TStateT, Symbols >)Thunk.>>nested( (Lazy - >>>)(() -> Global.TGlobal.find(v2895$19994.mem1.call(), arg$1.call())) + >>>)(() -> Global.TGlobal.find(v2895$19961.mem1.call(), arg$1.call())) ).call()) ) ); final Func.U< Global.TGlobal, Kind.U, PreludeBase.TTuple2, Global.TGlobal>> - > v7739$19967 = $20233.mem$run; + > v7739$19934 = $20200.mem$run; return Thunk.< Kind.U, PreludeBase.TTuple2, Global.TGlobal>> >shared( @@ -1287,7 +1291,7 @@ final public static State.TStateT, Symbols PreludeBase.TTuple2, Global.TGlobal> > > - >cast(v7739$19967).apply(v2895$19994.mem2)) + >cast(v7739$19934).apply(v2895$19961.mem2)) ).call()) ); }) @@ -1298,88 +1302,88 @@ final public static State.TStateT, THover> ) { return State.TStateT., THover>mk( (Func.U, PreludeBase.TTuple2>>)(( - final Lazy arg$20235 + final Lazy arg$20202 ) -> { - final PreludeBase.TTuple2 v2895$19682 = - PreludeBase.TTuple2.mk(arg$20235, arg$20235) + final PreludeBase.TTuple2 v2895$19717 = + PreludeBase.TTuple2.mk(arg$20202, arg$20202) .call(); - final State.TStateT, Tokens.TToken> $20237 = + final State.TStateT, Tokens.TToken> $20204 = Hover.findToken(arg$1); final Func.U< Global.TGlobal, Kind.U, PreludeBase.TTuple2> - > v7734$19711 = $20237.mem$run; - final PreludeBase.TMaybe> $20239 = + > v7734$19746 = $20204.mem$run; + final PreludeBase.TMaybe> $20206 = RunTM.>>>cast( - v7734$19711 - ).apply(v2895$19682.mem2).call(); - final PreludeBase.TMaybe.DJust> $20240 = - $20239.asJust(); - if ($20240 != null) { - final PreludeBase.TTuple2 v2895$19743 = - $20240.mem1.call(); - final State.TStateT, QNames.TQName> $20242 = - Hover.tokenToQName(v2895$19743.mem1); + v7734$19746 + ).apply(v2895$19717.mem2).call(); + final PreludeBase.TMaybe.DJust> $20207 = + $20206.asJust(); + if ($20207 != null) { + final PreludeBase.TTuple2 v2895$19778 = + $20207.mem1.call(); + final State.TStateT, QNames.TQName> $20209 = + Hover.tokenToQName(v2895$19778.mem1); final Func.U< Global.TGlobal, Kind.U, PreludeBase.TTuple2> - > v7734$19755 = $20242.mem$run; - final PreludeBase.TMaybe> $20244 = + > v7734$19790 = $20209.mem$run; + final PreludeBase.TMaybe> $20211 = RunTM.>>>cast( - v7734$19755 - ).apply(v2895$19743.mem2).call(); - final PreludeBase.TMaybe.DJust> $20245 = - $20244.asJust(); - if ($20245 != null) { - final PreludeBase.TTuple2 v2895$19787 = - $20245.mem1.call(); - final State.TStateT, Symbols.TSymbolT> $20247 = - Hover.findSymbol(v2895$19787.mem1); + v7734$19790 + ).apply(v2895$19778.mem2).call(); + final PreludeBase.TMaybe.DJust> $20212 = + $20211.asJust(); + if ($20212 != null) { + final PreludeBase.TTuple2 v2895$19822 = + $20212.mem1.call(); + final State.TStateT, Symbols.TSymbolT> $20214 = + Hover.findSymbol(v2895$19822.mem1); final Func.U< Global.TGlobal, Kind.U, PreludeBase.TTuple2, Global.TGlobal>> - > v7734$19799 = $20247.mem$run; - final PreludeBase.TMaybe, Global.TGlobal>> $20249 = + > v7734$19834 = $20214.mem$run; + final PreludeBase.TMaybe, Global.TGlobal>> $20216 = RunTM.< Func.U< Global.TGlobal, PreludeBase.TMaybe, Global.TGlobal>> > - >cast(v7734$19799).apply(v2895$19787.mem2).call(); + >cast(v7734$19834).apply(v2895$19822.mem2).call(); final PreludeBase.TMaybe.DJust< PreludeBase.TTuple2, Global.TGlobal> - > $20250 = $20249.asJust(); - if ($20250 != null) { - final PreludeBase.TTuple2, Global.TGlobal> v2895$19831 = - $20250.mem1.call(); - final State.TStateT, String/**/> $20252 = - Hover.getSymbolType(v2895$19831.mem1); + > $20217 = $20216.asJust(); + if ($20217 != null) { + final PreludeBase.TTuple2, Global.TGlobal> v2895$19866 = + $20217.mem1.call(); + final State.TStateT, String/**/> $20219 = + Hover.getSymbolType(v2895$19866.mem1); final Func.U< Global.TGlobal, Kind.U, PreludeBase.TTuple2*/, Global.TGlobal>> - > v7734$19843 = $20252.mem$run; - final PreludeBase.TMaybe*/, Global.TGlobal>> $20254 = + > v7734$19878 = $20219.mem$run; + final PreludeBase.TMaybe*/, Global.TGlobal>> $20221 = RunTM.< Func.U*/, Global.TGlobal>>> - >cast(v7734$19843).apply(v2895$19831.mem2).call(); - final PreludeBase.TMaybe.DJust*/, Global.TGlobal>> $20255 = - $20254.asJust(); - if ($20255 != null) { - final PreludeBase.TTuple2*/, Global.TGlobal> v2895$19875 = - $20255.mem1.call(); - final State.TStateT, THover> $20257 = + >cast(v7734$19878).apply(v2895$19866.mem2).call(); + final PreludeBase.TMaybe.DJust*/, Global.TGlobal>> $20222 = + $20221.asJust(); + if ($20222 != null) { + final PreludeBase.TTuple2*/, Global.TGlobal> v2895$19910 = + $20222.mem1.call(); + final State.TStateT, THover> $20224 = State.IMonad_StateT., THover>pure( Maybe.IMonad_Maybe.it, THover.mk( Thunk.shared( (Lazy)(() -> Range.tokenToRange( - v2895$19743.mem1.call() + v2895$19778.mem1.call() )) ), - v2895$19875.mem1 + v2895$19910.mem1 ) ); final Func.U< Global.TGlobal, Kind.U, PreludeBase.TTuple2> - > v7739$19848 = $20257.mem$run; + > v7739$19883 = $20224.mem$run; return Thunk., PreludeBase.TTuple2>>shared( (Lazy, PreludeBase.TTuple2 @@ -1393,13 +1397,13 @@ final public static State.TStateT, THover> Global.TGlobal, PreludeBase.TMaybe> > - >cast(v7739$19848).apply(v2895$19875.mem2)) + >cast(v7739$19883).apply(v2895$19910.mem2)) ).call()) ); } - final PreludeBase.TMaybe.DNothing*/, Global.TGlobal>> $20259 = - $20254.asNothing(); - assert $20259 != null; + final PreludeBase.TMaybe.DNothing*/, Global.TGlobal>> $20226 = + $20221.asNothing(); + assert $20226 != null; return Thunk., PreludeBase.TTuple2>>lazy( (Kind.U< PreludeBase.TMaybe, PreludeBase.TTuple2 @@ -1408,26 +1412,26 @@ final public static State.TStateT, THover> } final PreludeBase.TMaybe.DNothing< PreludeBase.TTuple2, Global.TGlobal> - > $20260 = $20249.asNothing(); - assert $20260 != null; + > $20227 = $20216.asNothing(); + assert $20227 != null; return Thunk., PreludeBase.TTuple2>>lazy( (Kind.U< PreludeBase.TMaybe, PreludeBase.TTuple2 >)PreludeBase.TMaybe.DNothing.>mk() ); } - final PreludeBase.TMaybe.DNothing> $20261 = - $20244.asNothing(); - assert $20261 != null; + final PreludeBase.TMaybe.DNothing> $20228 = + $20211.asNothing(); + assert $20228 != null; return Thunk., PreludeBase.TTuple2>>lazy( (Kind.U< PreludeBase.TMaybe, PreludeBase.TTuple2 >)PreludeBase.TMaybe.DNothing.>mk() ); } - final PreludeBase.TMaybe.DNothing> $20262 = - $20239.asNothing(); - assert $20262 != null; + final PreludeBase.TMaybe.DNothing> $20229 = + $20206.asNothing(); + assert $20229 != null; return Thunk., PreludeBase.TTuple2>>lazy( (Kind.U< PreludeBase.TMaybe, PreludeBase.TTuple2 @@ -1439,22 +1443,14 @@ final public static State.TStateT, THover> final public static Func.U> compileAndGetTypeSignatureOnHover( final Lazy*/> arg$1, final Lazy arg$2 ) { - return (Func.U>)((final Lazy arg$20263) -> { - final Global.TGlobal v2056$20100 = CompilerHelper.lspGlobal.call().apply(arg$20263) - .call(); - final Func.U v2053$20119 = Func.coerceU( - State., Global.TGlobal>execStateT( - PreludeMonad.IMonad_ST.mk(), - Thunk., Global.TGlobal>>shared( - (Lazy, Global.TGlobal - >>)(() -> CompilerHelper.compileFregeFile(arg$1)) - ), - v2056$20100 - ) + return (Func.U>)((final Lazy arg$20230) -> { + final Global.TGlobal v2056$20067 = CompileGlobal.standardCompileGlobal.call() + .apply(arg$20230).call(); + final Func.U v2053$20086 = CompileExecutor.compile( + arg$1, CompileGlobal.standardCompileGlobal.call() ); - final Global.TGlobal v2056$20122 = v2053$20119.apply(arg$20263).call(); - final Func.U> v2057$20123 = PreludeMonad.IMonad_ST.< + final Global.TGlobal v2056$20089 = v2053$20086.apply(arg$20230).call(); + final Func.U> v2057$20090 = PreludeMonad.IMonad_ST.< RealWorld, PreludeBase.TMaybe >pure( Thunk.>shared( @@ -1471,15 +1467,15 @@ final public static Func.U> compileAndGetT arg$2 )) ), - v2056$20122 + v2056$20089 )) ).call() )) ) ); return Thunk.>nested( - (Lazy>>)(() -> v2057$20123.apply( - arg$20263 + (Lazy>>)(() -> v2057$20090.apply( + arg$20230 )) ); }); @@ -1497,8 +1493,8 @@ final public static Func.U> compileAndGetT QuickCheckProperty.TRose >>)(() -> QuickCheckProperty.morallyDubiousIOProperty( QuickCheckProperty.ITestable_Bool.it, - (Func.U)((final Lazy arg$20268) -> { - final PreludeBase.TMaybe v2056$19298 = + (Func.U)((final Lazy arg$20235) -> { + final PreludeBase.TMaybe v2056$19359 = Hover.compileAndGetTypeSignatureOnHover( Thunk.*/>shared( (Lazy> compileAndGetT */>)(() -> "module HoverTest where\n\n" + "simplyString = \"Hello\"") ), Position.TPosition.mk(Thunk.lazy(3), Thunk.lazy(3)) - ).apply(arg$20268).call(); - final Func.U v2057$19299 = + ).apply(arg$20235).call(); + final Func.U v2057$19360 = PreludeMonad.IMonad_ST.pure( Thunk.shared( (Lazy)(() -> Maybe.IEq_Maybe.< @@ -1549,13 +1545,13 @@ final public static Func.U> compileAndGetT ) ) ), - v2056$19298 + v2056$19359 )) ) ); return Thunk.nested( - (Lazy>)(() -> v2057$19299 - .apply(arg$20268)) + (Lazy>)(() -> v2057$19360 + .apply(arg$20235)) ); }) )) @@ -1576,8 +1572,8 @@ final public static Func.U> compileAndGetT QuickCheckProperty.TRose >>)(() -> QuickCheckProperty.morallyDubiousIOProperty( QuickCheckProperty.ITestable_Bool.it, - (Func.U)((final Lazy arg$20271) -> { - final PreludeBase.TMaybe v2056$19478 = + (Func.U)((final Lazy arg$20238) -> { + final PreludeBase.TMaybe v2056$19323 = Hover.compileAndGetTypeSignatureOnHover( Thunk.*/>shared( (Lazy> compileAndGetT */>)(() -> "module HoverTest where\n\n" + "data MyMaybe a = MyNothing | MyJust a\n") ), Position.TPosition.mk(Thunk.lazy(3), Thunk.lazy(7)) - ).apply(arg$20271).call(); - final Func.U v2057$19479 = + ).apply(arg$20238).call(); + final Func.U v2057$19324 = PreludeMonad.IMonad_ST.pure( Thunk.shared( (Lazy)(() -> Maybe.IEq_Maybe.< @@ -1628,13 +1624,13 @@ final public static Func.U> compileAndGetT ) ) ), - v2056$19478 + v2056$19323 )) ) ); return Thunk.nested( - (Lazy>)(() -> v2057$19479 - .apply(arg$20271)) + (Lazy>)(() -> v2057$19324 + .apply(arg$20238)) ); }) )) @@ -1655,8 +1651,8 @@ final public static Func.U> compileAndGetT QuickCheckProperty.TRose >>)(() -> QuickCheckProperty.morallyDubiousIOProperty( QuickCheckProperty.ITestable_Bool.it, - (Func.U)((final Lazy arg$20274) -> { - final PreludeBase.TMaybe v2056$19334 = + (Func.U)((final Lazy arg$20241) -> { + final PreludeBase.TMaybe v2056$19287 = Hover.compileAndGetTypeSignatureOnHover( Thunk.*/>shared( (Lazy> compileAndGetT */>)(() -> "module HoverTest where\n\n" + ("data MyMaybe a = MyNothing | MyJust a\n" + "res = MyJust 42")) ), Position.TPosition.mk(Thunk.lazy(4), Thunk.lazy(8)) - ).apply(arg$20274).call(); - final Func.U v2057$19335 = + ).apply(arg$20241).call(); + final Func.U v2057$19288 = PreludeMonad.IMonad_ST.pure( Thunk.shared( (Lazy)(() -> Maybe.IEq_Maybe.< @@ -1707,13 +1703,13 @@ final public static Func.U> compileAndGetT ) ) ), - v2056$19334 + v2056$19287 )) ) ); return Thunk.nested( - (Lazy>)(() -> v2057$19335 - .apply(arg$20274)) + (Lazy>)(() -> v2057$19288 + .apply(arg$20241)) ); }) )) @@ -1736,8 +1732,8 @@ final public static Func.U> compileAndGetT QuickCheckProperty.TRose >>)(() -> QuickCheckProperty.morallyDubiousIOProperty( QuickCheckProperty.ITestable_Bool.it, - (Func.U)((final Lazy arg$20277) -> { - final PreludeBase.TMaybe v2056$19442 = + (Func.U)((final Lazy arg$20244) -> { + final PreludeBase.TMaybe v2056$19467 = Hover.compileAndGetTypeSignatureOnHover( Thunk.*/>shared( (Lazy> compileAndGetT */>)(() -> "module HoverTest where\n\n" + "main = println \"Hello\"") ), Position.TPosition.mk(Thunk.lazy(3), Thunk.lazy(9)) - ).apply(arg$20277).call(); - final Func.U v2057$19443 = + ).apply(arg$20244).call(); + final Func.U v2057$19468 = PreludeMonad.IMonad_ST.pure( Thunk.shared( (Lazy)(() -> Maybe.IEq_Maybe.< @@ -1788,13 +1784,13 @@ final public static Func.U> compileAndGetT ) ) ), - v2056$19442 + v2056$19467 )) ) ); return Thunk.nested( - (Lazy>)(() -> v2057$19443 - .apply(arg$20277)) + (Lazy>)(() -> v2057$19468 + .apply(arg$20244)) ); }) )) @@ -1817,8 +1813,8 @@ final public static Func.U> compileAndGetT QuickCheckProperty.TRose >>)(() -> QuickCheckProperty.morallyDubiousIOProperty( QuickCheckProperty.ITestable_Bool.it, - (Func.U)((final Lazy arg$20280) -> { - final PreludeBase.TMaybe v2056$19406 = + (Func.U)((final Lazy arg$20247) -> { + final PreludeBase.TMaybe v2056$19395 = Hover.compileAndGetTypeSignatureOnHover( Thunk.*/>shared( (Lazy> compileAndGetT */>)(() -> "module HoverTest where\n\n" + "import frege.data.Maybe(Maybe)") ), Position.TPosition.mk(Thunk.lazy(3), Thunk.lazy(27)) - ).apply(arg$20280).call(); - final Func.U v2057$19407 = + ).apply(arg$20247).call(); + final Func.U v2057$19396 = PreludeMonad.IMonad_ST.pure( Thunk.shared( (Lazy)(() -> Maybe.IEq_Maybe.< @@ -1869,13 +1865,13 @@ final public static Func.U> compileAndGetT ) ) ), - v2056$19406 + v2056$19395 )) ) ); return Thunk.nested( - (Lazy>)(() -> v2057$19407 - .apply(arg$20280)) + (Lazy>)(() -> v2057$19396 + .apply(arg$20247)) ); }) )) @@ -1898,8 +1894,8 @@ final public static Func.U> compileAndGetT QuickCheckProperty.TRose >>)(() -> QuickCheckProperty.morallyDubiousIOProperty( QuickCheckProperty.ITestable_Bool.it, - (Func.U)((final Lazy arg$20283) -> { - final PreludeBase.TMaybe v2056$19370 = + (Func.U)((final Lazy arg$20250) -> { + final PreludeBase.TMaybe v2056$19431 = Hover.compileAndGetTypeSignatureOnHover( Thunk.*/>shared( (Lazy> compileAndGetT */>)(() -> "module HoverTest where\n\n" + ("import frege.data.Maybe(Maybe, Just)\n" + "res = Just 42")) ), Position.TPosition.mk(Thunk.lazy(4), Thunk.lazy(10)) - ).apply(arg$20283).call(); - final Func.U v2057$19371 = + ).apply(arg$20250).call(); + final Func.U v2057$19432 = PreludeMonad.IMonad_ST.pure( Thunk.shared( (Lazy)(() -> Maybe.IEq_Maybe.< @@ -1950,13 +1946,13 @@ final public static Func.U> compileAndGetT ) ) ), - v2056$19370 + v2056$19431 )) ) ); return Thunk.nested( - (Lazy>)(() -> v2057$19371 - .apply(arg$20283)) + (Lazy>)(() -> v2057$19432 + .apply(arg$20250)) ); }) )) @@ -1966,35 +1962,23 @@ final public static Func.U> compileAndGetT ); final public static Lazy> $main = Thunk.>shared( (Lazy>)(() -> { - return (Func.U)((final Lazy arg$20286) -> { - final Global.TGlobal v2056$19507 = CompilerHelper.lspGlobal.call() - .apply(arg$20286).call(); - final Lazy*/> fregeCode$18165 = Thunk.*/>shared( - (Lazy - */>)(() -> "module HoverTest where\n\n" + ("import frege.compiler.Main(runpass)\n\n" + ("pass = runpass\n" + ("me = 42\n\n" + "main = do\n a = \"Hello\"\n println a")))) - ); - final Func.U v2053$19526 = Func.coerceU( - State., Global.TGlobal>execStateT( - PreludeMonad.IMonad_ST.mk(), - Thunk., Global.TGlobal>>shared( - (Lazy, Global.TGlobal - >>)(() -> CompilerHelper.compileFregeFile(fregeCode$18165)) - ), - v2056$19507 - ) - ); - final Global.TGlobal v2056$19529 = v2053$19526.apply(arg$20286) - .call(); - final Func.U v4793$19551 = Prelude.*/>println( - PreludeText.IShow_String.it, Global.TSubSt.code(Global.TGlobal.sub(v2056$19529)).toString() + final Lazy*/> fregeCode$18167 = Thunk.*/>shared( + (Lazy + */>)(() -> "module HoverTest where\n\n" + ("import frege.compiler.Main(runpass)\n\n" + ("pass = runpass\n" + ("me = 42\n\n" + "main = do\n a = \"Hello\"\n println a")))) + ); + return (Func.U)((final Lazy arg$20253) -> { + final Global.TGlobal v2056$19496 = CompileExecutor.compile( + fregeCode$18167, CompileGlobal.standardCompileGlobal.call() + ).apply(arg$20253).call(); + final Func.U v4793$19518 = Prelude.*/>println( + PreludeText.IShow_String.it, Global.TSubSt.code(Global.TGlobal.sub(v2056$19496)).toString() ); - final short v4796$19553 = (short)v4793$19551.apply(arg$20286).call(); - final Func.U v4797$19554 = ((Func.U)(( - final Lazy arg$20296 + final short v4796$19520 = (short)v4793$19518.apply(arg$20253).call(); + final Func.U v4797$19521 = ((Func.U)(( + final Lazy arg$20261 ) -> { - final short v4796$19584 = (short)Func.coerceU( + final short v4796$19551 = (short)Func.coerceU( PreludeMonad., Tokens.TToken, Short, PreludeBase.TList>$for( PreludeMonad.IMonad_ST.mk(), PreludeList.IListSource_$lbrack$rbrack.>mk(), @@ -2005,46 +1989,46 @@ final public static Func.U> compileAndGetT (Lazy>)(() -> Tokens.IArrayElement_Token.listFromArray( - Global.TSubSt.toks(Global.TGlobal.sub(v2056$19529)) + Global.TSubSt.toks(Global.TGlobal.sub(v2056$19496)) )) ).call()) ), (Func.U, Short>>)(( - final Lazy η$20295 + final Lazy η$20260 ) -> Thunk., Short>>shared( (Lazy, Short>>)(() -> (Kind.U< Func.U, Short >)Thunk.>shared( (Lazy>)(() -> Prelude.< Tokens.TToken - >println(Tokens.IShow_Token.it, η$20295.call())) + >println(Tokens.IShow_Token.it, η$20260.call())) ).call()) )) ) - ).apply(arg$20296).call(); - final Func.U v4797$19585 = ((Func.U)(( - final Lazy arg$20290 + ).apply(arg$20261).call(); + final Func.U v4797$19552 = ((Func.U)(( + final Lazy arg$20255 ) -> { - final PreludeBase.TMaybe v2056$19606 = Hover.compileAndGetTypeSignatureOnHover( - fregeCode$18165, Position.TPosition.mk(Thunk.lazy(5), Thunk.lazy(9)) - ).apply(arg$20290).call(); - final Func.U v4793$19628 = Prelude.< + final PreludeBase.TMaybe v2056$19573 = Hover.compileAndGetTypeSignatureOnHover( + fregeCode$18167, Position.TPosition.mk(Thunk.lazy(5), Thunk.lazy(9)) + ).apply(arg$20255).call(); + final Func.U v4793$19595 = Prelude.< PreludeBase.TMaybe - >println(new PreludeText.IShow_Maybe(IShow_Hover.it), v2056$19606); - final short v4796$19630 = (short)v4793$19628.apply(arg$20290) + >println(new PreludeText.IShow_Maybe(IShow_Hover.it), v2056$19573); + final short v4796$19597 = (short)v4793$19595.apply(arg$20255) .call(); - final Func.U v4797$19631 = Thunk.< + final Func.U v4797$19598 = Thunk.< Func.U >shared( (Lazy>)(() -> Prelude.< String/**/ >println(PreludeText.IShow_String.it, "end")) ).call(); - return Thunk.nested((Lazy>)(() -> v4797$19631.apply(arg$20290))); + return Thunk.nested((Lazy>)(() -> v4797$19598.apply(arg$20255))); })).call(); - return Thunk.nested((Lazy>)(() -> v4797$19585.apply(arg$20296))); + return Thunk.nested((Lazy>)(() -> v4797$19552.apply(arg$20261))); })).call(); - return Thunk.nested((Lazy>)(() -> v4797$19554.apply(arg$20286))); + return Thunk.nested((Lazy>)(() -> v4797$19521.apply(arg$20253))); }); }) ); diff --git a/src/main/java/ch/fhnw/thga/fregelanguageserver/hover/HoverLSP.java b/src/main/java/ch/fhnw/thga/fregelanguageserver/hover/HoverLSP.java index c4d6c29..fdd81d7 100644 --- a/src/main/java/ch/fhnw/thga/fregelanguageserver/hover/HoverLSP.java +++ b/src/main/java/ch/fhnw/thga/fregelanguageserver/hover/HoverLSP.java @@ -15,7 +15,9 @@ import frege.run.RunTM; import frege.runtime.Meta; import frege.runtime.Phantom.RealWorld; -import ch.fhnw.thga.fregelanguageserver.compiler.CompilerHelper; +import ch.fhnw.thga.fregelanguageserver.compile.CompileExecutor; +import ch.fhnw.thga.fregelanguageserver.compile.CompileGlobal; +import ch.fhnw.thga.fregelanguageserver.compile.CompileOptions; import ch.fhnw.thga.fregelanguageserver.hover.Hover; import ch.fhnw.thga.fregelanguageserver.lsp4j.PositionLSP4J; import ch.fhnw.thga.fregelanguageserver.lsp4j.RangeLSP4J; @@ -154,7 +156,7 @@ @SuppressWarnings("unused") @Meta.FregePackage( source="/Users/tricktron/github/master/frege-lsp-server/src/main/frege/ch/fhnw/thga/fregelanguageserver/hover/HoverLSP.fr", - time=1657911867384L, jmajor=11, jminor=-1, + time=1658516066746L, jmajor=11, jminor=-1, imps={ "ch.fhnw.thga.fregelanguageserver.hover.Hover", "ch.fhnw.thga.fregelanguageserver.lsp4j.PositionLSP4J", "frege.Prelude", "frege.prelude.PreludeArrays", "frege.prelude.PreludeBase", "frege.prelude.PreludeDecimal", @@ -297,13 +299,13 @@ final public class HoverLSP { final public static class THoverLSP { final public static org.eclipse.lsp4j.Hover hoverToHoverLSP(final Hover.THover arg$1) { - final String/**/ content$18099 = arg$1.mem$content.call(); - final Range.TRange range$18098 = arg$1.mem$range.call(); + final String/**/ content$18102 = arg$1.mem$content.call(); + final Range.TRange range$18101 = arg$1.mem$range.call(); return new org.eclipse.lsp4j.Hover( new org.eclipse.lsp4j.MarkupContent( - org.eclipse.lsp4j.MarkupKind.MARKDOWN, Hover.IShow_FregeCodeBlock.show(content$18099) + org.eclipse.lsp4j.MarkupKind.MARKDOWN, Hover.IShow_FregeCodeBlock.show(content$18102) ), - RangeLSP4J.TRangeLSP.fromRange(range$18098) + RangeLSP4J.TRangeLSP.fromRange(range$18101) ); } } @@ -315,35 +317,35 @@ final public static org.eclipse.lsp4j.Hover hoverToHoverLSP(final Hover.THover a final public static Func.U> compileAndGetTypeSignatureOnHoverLSP( final Lazy*/> arg$1, final Lazy arg$2 ) { - return (Func.U>)((final Lazy arg$18167) -> { - final PreludeBase.TMaybe v2056$18144 = Hover.compileAndGetTypeSignatureOnHover( + return (Func.U>)((final Lazy arg$18170) -> { + final PreludeBase.TMaybe v2056$18147 = Hover.compileAndGetTypeSignatureOnHover( arg$1, Thunk.shared( (Lazy)(() -> PositionLSP4J.TPositionLSP.toPosition( arg$2 )) ) - ).apply(arg$18167).call(); - final Func.U> v2057$18145 = + ).apply(arg$18170).call(); + final Func.U> v2057$18148 = PreludeMonad.IMonad_ST.>pure( Thunk.>shared( (Lazy>)(() -> Maybe.IFunctor_Maybe.< Hover.THover, org.eclipse.lsp4j.Hover >fmap( - (Func.U)((final Lazy η$18169) -> Thunk.< + (Func.U)((final Lazy η$18172) -> Thunk.< org.eclipse.lsp4j.Hover >shared( (Lazy)(() -> THoverLSP.hoverToHoverLSP( - η$18169.call() + η$18172.call() )) )), - v2056$18144 + v2056$18147 )) ) ); return Thunk.>nested( - (Lazy>>)(() -> v2057$18145 - .apply(arg$18167)) + (Lazy>>)(() -> v2057$18148 + .apply(arg$18170)) ); }); } diff --git a/src/main/java/ch/fhnw/thga/fregelanguageserver/lsp4j/PositionLSP4J.java b/src/main/java/ch/fhnw/thga/fregelanguageserver/lsp4j/PositionLSP4J.java index 0fc38b6..da20a6f 100644 --- a/src/main/java/ch/fhnw/thga/fregelanguageserver/lsp4j/PositionLSP4J.java +++ b/src/main/java/ch/fhnw/thga/fregelanguageserver/lsp4j/PositionLSP4J.java @@ -36,7 +36,7 @@ @SuppressWarnings("unused") @Meta.FregePackage( source="/Users/tricktron/github/master/frege-lsp-server/src/main/frege/ch/fhnw/thga/fregelanguageserver/lsp4j/PositionLSP4J.fr", - time=1657911866291L, jmajor=11, jminor=-1, + time=1658516064617L, jmajor=11, jminor=-1, imps={ "ch.fhnw.thga.fregelanguageserver.types.Position", "frege.Prelude", "frege.prelude.PreludeArrays", "frege.prelude.PreludeBase", "frege.prelude.PreludeDecimal", "frege.prelude.PreludeIO", "frege.prelude.PreludeList", diff --git a/src/main/java/ch/fhnw/thga/fregelanguageserver/lsp4j/RangeLSP4J.java b/src/main/java/ch/fhnw/thga/fregelanguageserver/lsp4j/RangeLSP4J.java index afcc2a6..c4be288 100644 --- a/src/main/java/ch/fhnw/thga/fregelanguageserver/lsp4j/RangeLSP4J.java +++ b/src/main/java/ch/fhnw/thga/fregelanguageserver/lsp4j/RangeLSP4J.java @@ -40,7 +40,7 @@ @SuppressWarnings("unused") @Meta.FregePackage( source="/Users/tricktron/github/master/frege-lsp-server/src/main/frege/ch/fhnw/thga/fregelanguageserver/lsp4j/RangeLSP4J.fr", - time=1657911866542L, jmajor=11, jminor=-1, + time=1658516064898L, jmajor=11, jminor=-1, imps={ "ch.fhnw.thga.fregelanguageserver.lsp4j.PositionLSP4J", "frege.Prelude", "frege.prelude.PreludeArrays", "frege.prelude.PreludeBase", "frege.prelude.PreludeDecimal", "frege.prelude.PreludeIO", "frege.prelude.PreludeList", diff --git a/src/main/java/ch/fhnw/thga/fregelanguageserver/types/Position.java b/src/main/java/ch/fhnw/thga/fregelanguageserver/types/Position.java index 1fb476a..c2e8fe0 100644 --- a/src/main/java/ch/fhnw/thga/fregelanguageserver/types/Position.java +++ b/src/main/java/ch/fhnw/thga/fregelanguageserver/types/Position.java @@ -34,7 +34,7 @@ @SuppressWarnings("unused") @Meta.FregePackage( source="/Users/tricktron/github/master/frege-lsp-server/src/main/frege/ch/fhnw/thga/fregelanguageserver/types/Position.fr", - time=1657911865242L, jmajor=11, jminor=-1, + time=1658516063783L, jmajor=11, jminor=-1, imps={ "frege.Prelude", "frege.prelude.PreludeArrays", "frege.prelude.PreludeBase", "frege.prelude.PreludeDecimal", "frege.prelude.PreludeIO", "frege.prelude.PreludeList", "frege.prelude.PreludeMonad", "frege.prelude.PreludeText", diff --git a/src/main/java/ch/fhnw/thga/fregelanguageserver/types/Range.java b/src/main/java/ch/fhnw/thga/fregelanguageserver/types/Range.java index f922b19..5f3a5d9 100644 --- a/src/main/java/ch/fhnw/thga/fregelanguageserver/types/Range.java +++ b/src/main/java/ch/fhnw/thga/fregelanguageserver/types/Range.java @@ -37,7 +37,7 @@ @SuppressWarnings("unused") @Meta.FregePackage( source="/Users/tricktron/github/master/frege-lsp-server/src/main/frege/ch/fhnw/thga/fregelanguageserver/types/Range.fr", - time=1657911866258L, jmajor=11, jminor=-1, + time=1658516064580L, jmajor=11, jminor=-1, imps={ "ch.fhnw.thga.fregelanguageserver.types.Position", "frege.Prelude", "frege.prelude.PreludeArrays", "frege.prelude.PreludeBase", "frege.prelude.PreludeDecimal", "frege.prelude.PreludeIO", "frege.prelude.PreludeList", diff --git a/src/main/resources/HoverTest.fr b/src/main/resources/HoverTest.fr deleted file mode 100644 index 02b56e0..0000000 --- a/src/main/resources/HoverTest.fr +++ /dev/null @@ -1,3 +0,0 @@ -module HoverTest where - -simplyString = println "Hello" \ No newline at end of file diff --git a/src/main/resources/fregefx-0.8.2-SNAPSHOT.jar b/src/main/resources/fregefx-0.8.2-SNAPSHOT.jar new file mode 100644 index 0000000000000000000000000000000000000000..b4b53cc6b4298216a0fb33fbac08448915f1826a GIT binary patch literal 287800 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%0D_18UNcx;kr?rvB@4dycJo%v3KG8!GthC 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

(RC8ZVT*Lm&c{fv4+3>cVaAuP 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

=bKXC?MVL(oEYW<^f3A-9$ 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�rj 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 literal 0 HcmV?d00001