From 273c2d517dbafbe6df4d9b9ac65ffd4749e63642 Mon Sep 17 00:00:00 2001 From: Eduardo Julian Date: Wed, 16 May 2018 01:06:28 -0400 Subject: - Migrated reference analysis to stdlib. --- new-luxc/source/luxc/lang/analysis/reference.lux | 57 ------------------------ 1 file changed, 57 deletions(-) delete mode 100644 new-luxc/source/luxc/lang/analysis/reference.lux (limited to 'new-luxc/source/luxc/lang/analysis') diff --git a/new-luxc/source/luxc/lang/analysis/reference.lux b/new-luxc/source/luxc/lang/analysis/reference.lux deleted file mode 100644 index 56aba35de..000000000 --- a/new-luxc/source/luxc/lang/analysis/reference.lux +++ /dev/null @@ -1,57 +0,0 @@ -(.module: - lux - (lux (control monad) - [macro] - (macro [code]) - (lang (type ["tc" check]))) - (luxc ["&" lang] - (lang ["&." scope] - ["la" analysis #+ Analysis] - [".L" variable #+ Variable]))) - -## [Analysers] -(def: (analyse-definition def-name) - (-> Ident (Meta Analysis)) - (do macro.Monad - [[actualT def-anns _] (&.with-error-tracking - (macro.find-def def-name))] - (case (macro.get-symbol-ann (ident-for #.alias) def-anns) - (#.Some real-def-name) - (analyse-definition real-def-name) - - _ - (do @ - [_ (&.infer actualT) - def-name (macro.normalize def-name)] - (wrap (code.symbol def-name)))))) - -(def: (analyse-variable var-name) - (-> Text (Meta (Maybe Analysis))) - (do macro.Monad - [?var (&scope.find var-name)] - (case ?var - (#.Some [actualT ref]) - (do @ - [_ (&.infer actualT)] - (wrap (#.Some (` ((~ (code.int (variableL.from-ref ref)))))))) - - #.None - (wrap #.None)))) - -(def: #export (analyse-reference reference) - (-> Ident (Meta Analysis)) - (case reference - ["" simple-name] - (do macro.Monad - [?var (analyse-variable simple-name)] - (case ?var - (#.Some varA) - (wrap varA) - - #.None - (do @ - [this-module macro.current-module-name] - (analyse-definition [this-module simple-name])))) - - _ - (analyse-definition reference))) -- cgit v1.2.3