public class KeyForPropagationTreeAnnotator extends TreeAnnotator
1. If a keySet is being saved to a newly declared set, we transfer the annotations from the keySet to the lhs. e.g.,
 // Previously, the user would be required to annotate the LHS's type argument with @KeyFor("m")
 Set<String> keySet = m.keySet();
 
 // normally a user would have to write the @KeyFor("m") on both sides
 List<@KeyFor("m") String> keys = new ArrayList<String>();
 atypeFactoryDEFAULT_VALUE| Constructor and Description | 
|---|
| KeyForPropagationTreeAnnotator(AnnotatedTypeFactory atypeFactory,
                              KeyForPropagator propagationTreeAnnotator) | 
| Modifier and Type | Method and Description | 
|---|---|
| boolean | isCallToKeyset(ExpressionTree expression) | 
| Void | visitNewClass(NewClassTree node,
             AnnotatedTypeMirror type)Transfers annotations to type if the left hand side is a variable declaration. | 
| Void | visitVariable(VariableTree variableTree,
             AnnotatedTypeMirror type)Transfers annotations to the variableTree if the right side is a call to
 java.util.Map.KeySet. | 
visitBinary, visitMethoddefaultAction, visit, visit, visitAnnotatedType, visitAnnotation, visitArrayAccess, visitArrayType, visitAssert, visitAssignment, visitBlock, visitBreak, visitCase, visitCatch, visitClass, visitCompilationUnit, visitCompoundAssignment, visitConditionalExpression, visitContinue, visitDoWhileLoop, visitEmptyStatement, visitEnhancedForLoop, visitErroneous, visitExpressionStatement, visitForLoop, visitIdentifier, visitIf, visitImport, visitInstanceOf, visitIntersectionType, visitLabeledStatement, visitLambdaExpression, visitLiteral, visitMemberReference, visitMemberSelect, visitMethodInvocation, visitModifiers, visitNewArray, visitOther, visitParameterizedType, visitParenthesized, visitPrimitiveType, visitReturn, visitSwitch, visitSynchronized, visitThrow, visitTry, visitTypeCast, visitTypeParameter, visitUnary, visitUnionType, visitWhileLoop, visitWildcardpublic KeyForPropagationTreeAnnotator(AnnotatedTypeFactory atypeFactory, KeyForPropagator propagationTreeAnnotator)
public boolean isCallToKeyset(ExpressionTree expression)
public Void visitVariable(VariableTree variableTree, AnnotatedTypeMirror type)
visitVariable in interface TreeVisitor<Void,AnnotatedTypeMirror>visitVariable in class SimpleTreeVisitor<Void,AnnotatedTypeMirror>public Void visitNewClass(NewClassTree node, AnnotatedTypeMirror type)
visitNewClass in interface TreeVisitor<Void,AnnotatedTypeMirror>visitNewClass in class SimpleTreeVisitor<Void,AnnotatedTypeMirror>