Optional<ResolvedField> resolvedField = scope.tryResolveField(node, qualifiedName); if (resolvedField.isPresent()) { return handleResolvedField(node, resolvedField.get(), context);
Optional<ResolvedField> resolvedField = scope.tryResolveField(node, qualifiedName); if (resolvedField.isPresent()) { return handleResolvedField(node, resolvedField.get(), context);
private Type handleResolvedField(Expression node, ResolvedField resolvedField, StackableAstVisitorContext<Context> context) { return handleResolvedField(node, FieldId.from(resolvedField), resolvedField.getField(), context); }
@Override public Type visitFieldReference(FieldReference node, StackableAstVisitorContext<Context> context) { Field field = baseScope.getRelationType().getFieldByIndex(node.getFieldIndex()); return handleResolvedField(node, new FieldId(baseScope.getRelationId(), node.getFieldIndex()), field, context); }
@Override protected Type visitIdentifier(Identifier node, StackableAstVisitorContext<Context> context) { ResolvedField resolvedField = context.getContext().getScope().resolveField(node, QualifiedName.of(node.getValue())); return handleResolvedField(node, resolvedField, context); }
private Type handleResolvedField(Expression node, ResolvedField resolvedField, StackableAstVisitorContext<Context> context) { return handleResolvedField(node, FieldId.from(resolvedField), resolvedField.getField(), context); }
@Override public Type visitFieldReference(FieldReference node, StackableAstVisitorContext<Context> context) { Field field = baseScope.getRelationType().getFieldByIndex(node.getFieldIndex()); return handleResolvedField(node, new FieldId(baseScope.getRelationId(), node.getFieldIndex()), field, context); }
@Override protected Type visitIdentifier(Identifier node, StackableAstVisitorContext<Context> context) { ResolvedField resolvedField = context.getContext().getScope().resolveField(node, QualifiedName.of(node.getValue())); return handleResolvedField(node, resolvedField, context); }