Skip to content

Commit

Permalink
Merge pull request #24 from gsdlab/i235
Browse files Browse the repository at this point in the history
I235
  • Loading branch information
mantkiew committed Jun 28, 2013
2 parents b3db52c + 2040790 commit 9735196
Show file tree
Hide file tree
Showing 3 changed files with 18 additions and 3 deletions.
6 changes: 4 additions & 2 deletions src/Language/Clafer/Intermediate/SimpleScopeAnalyzer.hs
Expand Up @@ -110,8 +110,10 @@ analyzeReferences clafers analysis (IEClafer clafer) =
where
lowerBound = fst (fromJust $ card clafer)
analysis'
| isReference clafer = Map.insert (uid $ fromJust $ directSuper clafers clafer) lowerBound analysis
| otherwise = analysis
| isReference clafer = case (directSuper clafers clafer) of
(Just c) -> Map.insert (uid c) lowerBound analysis
Nothing -> analysis
| otherwise = analysis
analyzeReferences _ analysis _ = analysis


Expand Down
3 changes: 3 additions & 0 deletions test/positive/i235.cfr
@@ -0,0 +1,3 @@
abstract A

aRef -> A
12 changes: 11 additions & 1 deletion test/test-suite.hs
Expand Up @@ -76,4 +76,14 @@ case_compileTest = do
clafers <- positiveClafers
let compiledClafers = map (\(file, model) -> (file, compileOneFragment defaultClaferArgs model)) clafers
forM_ compiledClafers (\(file, compiled) -> when (not $ compiledCheck compiled) $ putStrLn (file ++ " Error: " ++ (show $ fromLeft compiled)))
(andMap (compiledCheck . snd) compiledClafers) @? "test/positive fail: The above claferModels did not compile."
(andMap (compiledCheck . snd) compiledClafers) @? "test/positive fail: The above claferModels did not compile."

case_refrence_Unused_Absstract_Clafer :: Assertion
case_refrence_Unused_Absstract_Clafer = do
model <- readFile "positive/i235.cfr"
let compiledClafers =
[("None", compileOneFragment defaultClaferArgs{scope_strategy = Just None} model), ("Simple", compileOneFragment defaultClaferArgs{scope_strategy = Just Simple} model), ("Full", compileOneFragment defaultClaferArgs{scope_strategy = Just Full} model)]
forM_ compiledClafers (\(ss, compiled) ->
when (not $ compiledCheck compiled) $ putStrLn ("i235.cfr failed for scope_strategy = " ++ ss))
(andMap (compiledCheck . snd) compiledClafers
@? "refrence_Unused_Absstract_Clafer (i235) failed, error for refrencing unused abstract clafer")

0 comments on commit 9735196

Please sign in to comment.