Package: UsedChecker

UsedChecker

nameinstructionbranchcomplexitylinemethod
UsedChecker(ITypeCheckerAssistantFactory)
M: 0 C: 6
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 3
100%
M: 0 C: 1
100%
caseAExternalDefinition(AExternalDefinition)
M: 0 C: 8
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 1
100%
M: 0 C: 1
100%
caseAInheritedDefinition(AInheritedDefinition)
M: 8 C: 0
0%
M: 0 C: 0
100%
M: 1 C: 0
0%
M: 1 C: 0
0%
M: 1 C: 0
0%
createNewReturnValue(INode)
M: 9 C: 0
0%
M: 2 C: 0
0%
M: 2 C: 0
0%
M: 2 C: 0
0%
M: 1 C: 0
0%
createNewReturnValue(Object)
M: 9 C: 0
0%
M: 2 C: 0
0%
M: 2 C: 0
0%
M: 2 C: 0
0%
M: 1 C: 0
0%
defaultPDefinition(PDefinition)
M: 0 C: 3
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 1
100%
M: 0 C: 1
100%
static {...}
M: 2 C: 6
75%
M: 1 C: 1
50%
M: 1 C: 1
50%
M: 0 C: 1
100%
M: 0 C: 1
100%

Coverage

1: /*
2: * #%~
3: * The VDM Type Checker
4: * %%
5: * Copyright (C) 2008 - 2014 Overture
6: * %%
7: * This program is free software: you can redistribute it and/or modify
8: * it under the terms of the GNU General Public License as
9: * published by the Free Software Foundation, either version 3 of the
10: * License, or (at your option) any later version.
11: *
12: * This program is distributed in the hope that it will be useful,
13: * but WITHOUT ANY WARRANTY; without even the implied warranty of
14: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15: * GNU General Public License for more details.
16: *
17: * You should have received a copy of the GNU General Public
18: * License along with this program. If not, see
19: * <http://www.gnu.org/licenses/gpl-3.0.html>.
20: * #~%
21: */
22: package org.overture.typechecker.utilities;
23:
24: import org.overture.ast.analysis.AnalysisException;
25: import org.overture.ast.analysis.AnswerAdaptor;
26: import org.overture.ast.definitions.AExternalDefinition;
27: import org.overture.ast.definitions.AInheritedDefinition;
28: import org.overture.ast.definitions.PDefinition;
29: import org.overture.ast.node.INode;
30: import org.overture.typechecker.assistant.ITypeCheckerAssistantFactory;
31:
32: /**
33: * This class implements a way to check if a node is used in the AST
34: *
35: * @author kel
36: */
37:•public class UsedChecker extends AnswerAdaptor<Boolean>
38: {
39:
40:         protected ITypeCheckerAssistantFactory af;
41:
42:         public UsedChecker(ITypeCheckerAssistantFactory af)
43:         {
44:                 this.af = af;
45:         }
46:
47:         @Override
48:         public Boolean caseAExternalDefinition(AExternalDefinition node)
49:                         throws AnalysisException
50:         {
51:                 return af.createPDefinitionAssistant().isUsed(node.getState());
52:         }
53:
54:         @Override
55:         public Boolean caseAInheritedDefinition(AInheritedDefinition node)
56:                         throws AnalysisException
57:         {
58:                 return af.createPDefinitionAssistant().isUsed(node.getSuperdef());
59:         }
60:
61:         @Override
62:         public Boolean defaultPDefinition(PDefinition node)
63:                         throws AnalysisException
64:         {
65:                 return node.getUsed();
66:         }
67:
68:         @Override
69:         public Boolean createNewReturnValue(INode node)
70:         {
71:•                assert false : "should not happen";
72:                 return null;
73:         }
74:
75:         @Override
76:         public Boolean createNewReturnValue(Object node)
77:         {
78:•                assert false : "should not happen";
79:                 return null;
80:         }
81: }