This is an automated email from the ASF dual-hosted git repository.
emilles pushed a commit to branch GROOVY_4_0_X
in repository https://gitbox.apache.org/repos/asf/groovy.git
The following commit(s) were added to refs/heads/GROOVY_4_0_X by this push:
new 55bac065be GROOVY-10757: STC: don't write inference metadata to
`PropertyNode`
55bac065be is described below
commit 55bac065be8788241ab72c6d92c1fbe663c8d59d
Author: Eric Milles <[email protected]>
AuthorDate: Sun Sep 25 05:17:44 2022 -0500
GROOVY-10757: STC: don't write inference metadata to `PropertyNode`
---
.../groovy/transform/stc/StaticTypeCheckingVisitor.java | 14 ++++++--------
1 file changed, 6 insertions(+), 8 deletions(-)
diff --git
a/src/main/java/org/codehaus/groovy/transform/stc/StaticTypeCheckingVisitor.java
b/src/main/java/org/codehaus/groovy/transform/stc/StaticTypeCheckingVisitor.java
index 613c741b35..1269a9eb8c 100644
---
a/src/main/java/org/codehaus/groovy/transform/stc/StaticTypeCheckingVisitor.java
+++
b/src/main/java/org/codehaus/groovy/transform/stc/StaticTypeCheckingVisitor.java
@@ -4447,22 +4447,20 @@ public class StaticTypeCheckingVisitor extends
ClassCodeVisitorSupport {
VariableExpression var = (VariableExpression) exp;
Variable accessedVariable = var.getAccessedVariable();
if (accessedVariable instanceof VariableExpression) {
- if (accessedVariable != exp)
+ if (accessedVariable != var)
storeType((VariableExpression) accessedVariable, cn);
- } else if (accessedVariable instanceof Parameter
- || accessedVariable instanceof PropertyNode
- && ((PropertyNode)
accessedVariable).getField().isSynthetic()) {
- ((AnnotatedNode)
accessedVariable).putNodeMetaData(INFERRED_TYPE, cn);
+ } else if (accessedVariable instanceof Parameter) {
+ ((Parameter) accessedVariable).putNodeMetaData(INFERRED_TYPE,
cn);
}
if (cn != null && var.isClosureSharedVariable()) {
- List<ClassNode> assignedTypes =
typeCheckingContext.closureSharedVariablesAssignmentTypes.computeIfAbsent(var,
k -> new LinkedList<ClassNode>());
+ List<ClassNode> assignedTypes =
typeCheckingContext.closureSharedVariablesAssignmentTypes.computeIfAbsent(var,
k -> new LinkedList<>());
assignedTypes.add(cn);
}
if
(!typeCheckingContext.temporaryIfBranchTypeInformation.isEmpty()) {
- List<ClassNode> temporaryTypesForExpression =
getTemporaryTypesForExpression(exp);
+ List<ClassNode> temporaryTypesForExpression =
getTemporaryTypesForExpression(var);
if (temporaryTypesForExpression != null &&
!temporaryTypesForExpression.isEmpty()) {
// a type inference has been made on a variable whose type
was defined in an instanceof block
- // we erase available information with the new type
+ // erase available information with the new type
temporaryTypesForExpression.clear();
}
}