void (@NotNull GrMethod constructor) { final GrOpenBlock block = constructor.getBlock(); if (block == null) return; final GrTypeDefinition clazz = (GrTypeDefinition)constructor.getContainingClass(); if (clazz == null) return; final GrClassInitializer[] initializers = clazz.getInitializers(); final List<GrField> fields = getFinalFields(clazz); Set<GrVariable> initializedFields = new HashSet<>(); appendFieldInitializedInDeclaration(false, fields, initializedFields); appendFieldsInitializedInClassInitializer(initializers, null, false, fields, initializedFields); appendInitializationFromChainedConstructors(constructor, fields, initializedFields); final GroovyControlFlow flow = buildFlowForField(block); final Set<GrVariable> variables = buildVarSet(fields, false); highlightInvalidWriteAccess(flow, variables, initializedFields); }