code: private ClassNode findPropertyType(Expression expression) {
          ClassNode setNode = ClassHelper.make(Set.class).getPlainNodeReference();
          if (expression instanceof ClassExpression) {
              GenericsType[] genericsTypes = new GenericsType[1];
              genericsTypes[0] = new GenericsType(GrailsASTUtils.nonGeneric(expression.getType()));
              setNode.setGenericsTypes(genericsTypes);
          }
          return setNode;
      }
docs: Finds the type of the generated property.  The type will be a {@link Set} that is parameterized
  by the type of the expression passed in.
  @param expression the expression used to parameterize the {@link Set}.  Only used if a {@link ClassExpression}.  Otherwise ignored.
  @return A {@link ClassNode} of type {@link Set} that is possibly parameterized by the expression that is passed in.