|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Object | +--jif.visit.LabelChecker
A visitor doing label checking.
| Constructor Summary | |
LabelChecker(polyglot.frontend.Job job,
polyglot.types.TypeSystem ts,
polyglot.ast.NodeFactory nf)
|
|
LabelChecker(polyglot.frontend.Job job,
polyglot.types.TypeSystem ts,
polyglot.ast.NodeFactory nf,
boolean solveClassBodies)
|
|
| Method Summary | |
void |
addIFF(polyglot.types.FieldInstance fi)
|
void |
bind(DynamicLabel dl,
Label l)
|
boolean |
checkingInits()
|
void |
checkingInits(boolean checkingInits)
|
void |
constrainEqual(Label L1,
Label L2)
|
void |
constrainEqual(Label L1,
Label L2,
polyglot.util.Position pos)
|
void |
constrainEqual(Label L1,
Label L2,
polyglot.util.Position pos,
java.lang.String msg)
|
void |
constrainEqual(NamedLabel L1,
NamedLabel L2,
polyglot.util.Position pos)
|
void |
constrainEqual(NamedLabel L1,
NamedLabel L2,
polyglot.util.Position pos,
java.lang.String msg)
|
void |
constrainLE(Label L1,
Label L2)
|
void |
constrainLE(Label L1,
Label L2,
polyglot.util.Position pos)
|
void |
constrainLE(Label L1,
Label L2,
polyglot.util.Position pos,
java.lang.String msg)
|
void |
constrainLE(NamedLabel L1,
NamedLabel L2,
polyglot.util.Position pos)
|
void |
constrainLE(NamedLabel L1,
NamedLabel L2,
polyglot.util.Position pos,
java.lang.String msg)
|
Label |
constructorReturnLabel()
|
void |
constructorReturnLabel(Label Lr)
|
JifContext |
context()
|
LabelChecker |
context(JifContext c)
|
java.lang.Object |
copy()
|
void |
enteringClassBody()
Called by JifClassDeclExt just before this label checker is used to check a class body. |
polyglot.ast.Node |
finishedLabelCheckPass(polyglot.ast.Node n)
This method should be called on the top level label checker once the label checking has finished. |
java.util.Set |
initializedFinalFields()
|
JifContext |
jifContext()
|
JifTypeSystem |
jifTypeSystem()
|
polyglot.ast.Node |
labelCheck(polyglot.ast.Node n)
|
JifClassDecl |
leavingClassBody(JifClassDecl n)
Called by JifClassDeclExt just after this label checker has been used to check a class body. |
polyglot.types.Type |
returnType()
|
void |
setReturnType(polyglot.types.Type t)
|
JifTypeSystem |
typeSystem()
|
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Constructor Detail |
public LabelChecker(polyglot.frontend.Job job,
polyglot.types.TypeSystem ts,
polyglot.ast.NodeFactory nf,
boolean solveClassBodies)
public LabelChecker(polyglot.frontend.Job job,
polyglot.types.TypeSystem ts,
polyglot.ast.NodeFactory nf)
| Method Detail |
public java.lang.Object copy()
copy in interface polyglot.util.Copypublic JifContext context()
public LabelChecker context(JifContext c)
public JifTypeSystem typeSystem()
public JifTypeSystem jifTypeSystem()
public JifContext jifContext()
public polyglot.ast.Node labelCheck(polyglot.ast.Node n)
throws polyglot.types.SemanticException
polyglot.types.SemanticException
public void constrainEqual(Label L1,
Label L2)
throws polyglot.types.SemanticException
polyglot.types.SemanticException
public void constrainEqual(Label L1,
Label L2,
polyglot.util.Position pos)
throws polyglot.types.SemanticException
polyglot.types.SemanticException
public void constrainEqual(Label L1,
Label L2,
polyglot.util.Position pos,
java.lang.String msg)
throws polyglot.types.SemanticException
polyglot.types.SemanticException
public void constrainEqual(NamedLabel L1,
NamedLabel L2,
polyglot.util.Position pos)
throws polyglot.types.SemanticException
polyglot.types.SemanticException
public void constrainEqual(NamedLabel L1,
NamedLabel L2,
polyglot.util.Position pos,
java.lang.String msg)
throws polyglot.types.SemanticException
polyglot.types.SemanticException
public void constrainLE(Label L1,
Label L2)
throws polyglot.types.SemanticException
polyglot.types.SemanticException
public void constrainLE(Label L1,
Label L2,
polyglot.util.Position pos)
throws polyglot.types.SemanticException
polyglot.types.SemanticException
public void constrainLE(Label L1,
Label L2,
polyglot.util.Position pos,
java.lang.String msg)
throws polyglot.types.SemanticException
polyglot.types.SemanticException
public void constrainLE(NamedLabel L1,
NamedLabel L2,
polyglot.util.Position pos)
throws polyglot.types.SemanticException
polyglot.types.SemanticException
public void constrainLE(NamedLabel L1,
NamedLabel L2,
polyglot.util.Position pos,
java.lang.String msg)
throws polyglot.types.SemanticException
polyglot.types.SemanticExceptionpublic boolean checkingInits()
public void checkingInits(boolean checkingInits)
public java.util.Set initializedFinalFields()
public void addIFF(polyglot.types.FieldInstance fi)
public Label constructorReturnLabel()
public void constructorReturnLabel(Label Lr)
public polyglot.types.Type returnType()
public void setReturnType(polyglot.types.Type t)
public void bind(DynamicLabel dl,
Label l)
public void enteringClassBody()
public JifClassDecl leavingClassBody(JifClassDecl n)
public polyglot.ast.Node finishedLabelCheckPass(polyglot.ast.Node n)
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||