You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@groovy.apache.org by em...@apache.org on 2022/09/25 10:34:36 UTC
[groovy] branch GROOVY_4_0_X updated: GROOVY-10757: STC: don't write inference metadata to `PropertyNode`
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 <er...@thomsonreuters.com>
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();
}
}