Skip to content

Put type annotation of function return type before definition#1397

Merged
gpetiot merged 2 commits intoocaml-ppx:masterfrom
gpetiot:put-function-return-type-before
Jun 29, 2020
Merged

Put type annotation of function return type before definition#1397
gpetiot merged 2 commits intoocaml-ppx:masterfrom
gpetiot:put-function-return-type-before

Conversation

@gpetiot
Copy link
Copy Markdown
Collaborator

@gpetiot gpetiot commented Jun 27, 2020

Fix #1394

test_branch diff with the janestreet profile:

diff --git a/src/memo/implicit_output.ml b/src/memo/implicit_output.ml
index a0bcdde2..125451cc 100644
--- a/src/memo/implicit_output.ml
+++ b/src/memo/implicit_output.ml
@@ -29,14 +29,13 @@ end = struct
 
   type 'a t = (module T with type a = 'a)
 
-  let create (type a) (module I : Implicit_output with type t = a) =
-    ((module struct
-       type nonrec a = a
-       type _ w += W : a w
-
-       include I
-     end)
-      : a t)
+  let create (type a) (module I : Implicit_output with type t = a) : a t =
+    (module struct
+      type nonrec a = a
+      type _ w += W : a w
+
+      include I
+    end)
   ;;
 
   let get (type a) (module T : T with type a = a) =
diff --git a/src/stdune/type_eq.ml b/src/stdune/type_eq.ml
index d0c847a6..698c6a6c 100644
--- a/src/stdune/type_eq.ml
+++ b/src/stdune/type_eq.ml
@@ -22,12 +22,11 @@ module Id = struct
     | _ -> false
   ;;
 
-  let create (type a) () =
-    ((module struct
-       type nonrec a = a
-       type _ w += W : a w
-     end)
-      : a t)
+  let create (type a) () : a t =
+    (module struct
+      type nonrec a = a
+      type _ w += W : a w
+    end)
   ;;

Copy link
Copy Markdown
Collaborator

@jberdine jberdine left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM. Thanks!

@gpetiot gpetiot merged commit 9812d94 into ocaml-ppx:master Jun 29, 2020
@gpetiot gpetiot deleted the put-function-return-type-before branch June 29, 2020 20:46
emillon added a commit to emillon/opam-repository that referenced this pull request Aug 6, 2020
CHANGES:

#### Changes

  + Do not break inline elements such as `{i blah}` in docstrings (ocaml-ppx/ocamlformat#1346, @jberdine)

  + Distinguish hash-getter from hash-comparison infix operators. Operators of the form `#**#` or `#**.` where `**` can be 0 or more operator chars are considered getter operators and are not surrounded by spaces, as opposed to regular infix operators (ocaml-ppx/ocamlformat#1376, @gpetiot)

  + Type constraint on return type of functions is now always printed before the function body (ocaml-ppx/ocamlformat#1381, ocaml-ppx/ocamlformat#1397, @gpetiot)

#### Bug fixes

  + Restore previous functionality for pre-post extension points (ocaml-ppx/ocamlformat#1342, @jberdine)

  + Fix extra break before `function` body of a `fun` (ocaml-ppx/ocamlformat#1343, @jberdine)
    Indent further args of anonymous functions (ocaml-ppx/ocamlformat#1440, @gpetiot)

  + Do not clear the emacs `*compilation*` buffer on successful reformat (ocaml-ppx/ocamlformat#1350, @jberdine)

  + Fix disabling with attributes on OCaml < 4.08 (ocaml-ppx/ocamlformat#1322, @emillon)

  + Preserve unwrapped comments by not adding artificial breaks when `wrap-comments=false` and `ocp-indent-compat=true` are set to avoid interfering with ocp-indent indentation. (ocaml-ppx/ocamlformat#1352, @gpetiot)

  + Break long literal strings at the margin (ocaml-ppx/ocamlformat#1367, @gpetiot)

  + Break after a multiline argument in an argument list (ocaml-ppx/ocamlformat#1360, @gpetiot)

  + Remove unnecessary parens around object (ocaml-ppx/ocamlformat#1379, @gpetiot)

  + Fix placement of comments on constants (ocaml-ppx/ocamlformat#1383, @gpetiot)

  + Do not escape arguments of some Odoc tags (ocaml-ppx/ocamlformat#1391, 1408, @gpetiot, @Julow)
    The characters `[]{}` must not be escaped in the arguments of `@raise`, `@author`, `@version` and others.

  + Fix missing open line between multi-line let-binding with poly-typexpr (ocaml-ppx/ocamlformat#1372, @jberdine)

  + Remove trailing space after expression when followed by an attribute and break before attributes attached to multi-line phrases (ocaml-ppx/ocamlformat#1382, @gpetiot)

  + Do not add a space to minimal comments `(* *)`, `(** *)` and `(*$ *)` (ocaml-ppx/ocamlformat#1407, @gpetiot)

  + Fix attributes position in labelled arguments type (ocaml-ppx/ocamlformat#1434, @gpetiot)

  + Add missing parens around type annotation in anonymous function (ocaml-ppx/ocamlformat#1433, @gpetiot)

  + Fix alignment of 'then' keyword in parenthesised expression (ocaml-ppx/ocamlformat#1421, @gpetiot)

#### New features

  + Support quoted extensions (added in ocaml 4.11) (ocaml-ppx/ocamlformat#1405, @gpetiot)

  + Recognise eliom file extensions (ocaml-ppx/ocamlformat#1430, @jrochel)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Inconsistency of type constrained functions

3 participants