X-Git-Url: http://nitlanguage.org diff --git a/src/pretty.nit b/src/pretty.nit index 2d08571..963ba76 100644 --- a/src/pretty.nit +++ b/src/pretty.nit @@ -691,8 +691,8 @@ redef class AStdClassdef if can_inline then v.adds - if not n_superclasses.is_empty then - for n_superclass in n_superclasses do + if not n_propdefs.is_empty then + for n_superclass in n_propdefs do v.visit n_superclass v.adds end @@ -702,18 +702,6 @@ redef class AStdClassdef if v.skip_empty then v.addn v.indent += 1 - for n_superclass in n_superclasses do - v.catch_up n_superclass - v.addt - v.visit n_superclass - v.finish_line - v.addn - end - - if not n_superclasses.is_empty and not n_propdefs.is_empty then - if v.skip_empty then v.addn - end - super v.catch_up n_kwend v.indent -= 1 @@ -727,8 +715,9 @@ redef class AStdClassdef redef fun is_inlinable do if not super then return false - if not n_propdefs.is_empty then return false - if n_superclasses.length > 1 then return false + # FIXME: repair pretty-printing one-liner classes + if n_propdefs.length > 0 then return false + #if n_propdefs.length == 1 and not n_propdefs.first isa ASuperPropdef then return false if not collect_comments.is_empty then return false return true end @@ -785,14 +774,6 @@ redef class AType end end -redef class ASuperclass - redef fun accept_pretty_printer(v) do - v.visit n_kwsuper - v.adds - v.visit n_type - end -end - # Properties redef class APropdef @@ -800,7 +781,7 @@ redef class APropdef v.visit n_doc v.addt - if not n_visibility isa APublicVisibility then + if not n_visibility isa nullable APublicVisibility then v.visit n_visibility v.adds end @@ -1005,6 +986,20 @@ redef class AMainMethPropdef end end +redef class ASuperPropdef + redef fun accept_pretty_printer(v) do + super + v.visit n_kwsuper + v.adds + v.visit n_type + visit_annotations(v, n_annotations) + v.finish_line + v.addn + end + + redef fun is_inlinable do return true +end + redef class ASignature redef fun accept_pretty_printer(v) do if not n_params.is_empty then @@ -2020,66 +2015,7 @@ redef class ABinopExpr redef fun bin_expr1 do return n_expr redef fun bin_expr2 do return n_expr2 -end - -redef class AEqExpr - redef fun bin_op do return "==" -end - -redef class AGeExpr - redef fun bin_op do return ">=" -end - -redef class AGgExpr - redef fun bin_op do return ">>" -end - -redef class AGtExpr - redef fun bin_op do return ">" -end - -redef class ALeExpr - redef fun bin_op do return "<=" -end - -redef class ALlExpr - redef fun bin_op do return "<<" -end - -redef class ALtExpr - redef fun bin_op do return "<" -end - -redef class AMinusExpr - redef fun bin_op do return "-" -end - -redef class ANeExpr - redef fun bin_op do return "!=" -end - -redef class APercentExpr - redef fun bin_op do return "%" -end - -redef class APlusExpr - redef fun bin_op do return "+" -end - -redef class ASlashExpr - redef fun bin_op do return "/" -end - -redef class AStarExpr - redef fun bin_op do return "*" -end - -redef class AStarstarExpr - redef fun bin_op do return "**" -end - -redef class AStarshipExpr - redef fun bin_op do return "<=>" + redef fun bin_op do return operator end redef class AIsaExpr @@ -2108,6 +2044,13 @@ end # Syntax +redef class AUplusExpr + redef fun accept_pretty_printer(v) do + v.consume "+" + v.visit n_expr + end +end + redef class AUminusExpr redef fun accept_pretty_printer(v) do v.consume "-"