Commit Graph
4888 Commits
Author SHA1 Message Date
José Valim 472c4e1a24 Avoid crashes on diagnostics with tabs, closes #14073 2024-12-16 12:09:18 +01:00
José Valim 305d8e603c Do not convert fun() into (... -> any()) and vice-versa in typespecs 2024-12-15 15:18:52 +01:00
Jonatan Kłosko 1c7fc86e9c Make :source_path in docs chunk a charlist (#14071) 2024-12-13 16:57:54 +01:00
José Valim 617dc72759 Fix Range.new deprecation assertion 2024-12-13 10:14:47 +01:00
Jean Klingler 6c866e8ab2 Fix type warnings in pop_in/1 (#14064) 2024-12-12 17:47:23 +09:00
José Valim 55eca5dff5 Implement JSON.Encoder for Calendar types (#14061) 2024-12-12 00:38:44 +01:00
José Valim a78f1715dc Fix error message around single quote keywords 2024-12-10 19:30:39 +01:00
José Valim 793c114721 Add JSON encoding and decoding (#14021) 2024-12-10 12:14:30 +01:00
José Valim 4328b090ae Add Duration.to_string (#14028) 2024-12-04 16:11:10 +01:00
Eksperimental eadbd8bdf3 Fix typos (#14023)
The typos were detected by this app: https://pypi.org/project/typos/
running the following command

    typos --exclude "lib/elixir/unicode/" --exclude "man/" --exclude "typos"  --format brief
2024-12-01 16:59:24 +01:00
José Valim e3bad83233 Move __deriving__ callback to the protocol 2024-11-27 18:38:48 +01:00
José Valim 1f98708649 Add @undefined_impl_description 2024-11-27 18:38:48 +01:00
José Valim 8eba863f8f Properly track stab inside container_cursor_to_quoted, closes #13826 2024-11-25 14:46:23 +01:00
Dave Lucia 2f844fd77b Move value in protocol errors to its own line (#14003) 2024-11-21 10:00:11 +01:00
José Valim bb028b951f Always consider Elixir modules on inference (#14000) 2024-11-19 13:40:16 +01:00
Jonatan Kłosko 8e1d0411ba Add token metadata to distinguish between :nil and nil (#13999) 2024-11-18 09:32:15 +01:00
Guillaume Duboc d7f8578742 Add map normalization cases (#13997) 2024-11-15 19:22:24 +01:00
Jonatan Kłosko 3b01b2a632 Add separate metadata entry for every block parens (#13996) 2024-11-15 13:55:22 +01:00
Theodor Fiedler 9c7604ccf2 Ignore microsecond precision when validating shift date duration (#13993) 2024-11-14 15:14:47 +01:00
José Valim a6ad2b8c03 Fix test which accidentally removed :throw 2024-11-14 12:28:13 +01:00
José Valim a7c8be77e6 Ensure one arity catch is always expanded to :throw 2024-11-14 11:16:38 +01:00
José Valim bb9ddb3317 Mark negation inside refute as generated, closes #13992 2024-11-13 23:11:01 +01:00
Guillaume Duboc f869345e27 Add list normalization for printing (#13989) 2024-11-13 00:53:19 +01:00
José Valim 60bd0ae7e8 Simplify test by using automatic generation 2024-11-12 23:39:55 +01:00
José Valim 0182f7d146 Raise for undefined function within unused function 2024-11-12 23:19:41 +01:00
Guillaume Duboc 26318ebb0a Improve perf of tuple_difference (#13988) 2024-11-12 23:19:28 +01:00
José Valim cb2e03688e Perform return type inference and application across local calls (#13984) 2024-11-11 23:06:31 +01:00
José Valim 485ca72ae2 Infer types and use them across remote calls (#13981)
This also unifies handling of deterministic builds with Erlang/OTP
as well as warnings_as_errors.
2024-11-09 18:00:27 +01:00
José Valim 57de6ea33a Type behaviour_info, module_info, and __info__ 2024-11-08 12:33:08 +01:00
José Valim f44aa8d710 Allow aliases and imports to be enabled conditionally in module body, closes #13975 2024-11-07 17:09:44 +01:00
José Valim 731e714b6f Define fewer modules in aliases tests 2024-11-07 13:45:11 +01:00
José Valim 3146c4a71a Simplify metadata stored in ExCk chunk
The checker only runs on functions, so there is no need
to store macros. This reduces the amount of data serialized
and stored. In Livebook, it makes the group pass run about
30% faster.
2024-11-07 13:32:43 +01:00
Jonatan Kłosko 5b221a5545 Add AST metadata about assoc operator location (#13978) 2024-11-07 10:14:38 +01:00
José Valim 9197ce51fc Handle precedence in = 2024-11-07 08:48:21 +01:00
Jonatan Kłosko 7d421b197c Add parens meta to stab operator and empty block (#13973) 2024-11-06 13:55:04 +01:00
José Valim c3dc6c86dd Detect never matching clauses and patterns (#13968) 2024-11-06 13:51:04 +01:00
Tobias Pfeiffer e28a84ce2a Fix bug with schemaless URI in URI.merge/2 (#13970)
Only occurs when mixing strings and URIs, but the docs seem to
encourage that.

Without the fix the test results in the following error:

```
  1) test merge/2 (URITest)
     test/elixir/uri_test.exs:376
     ** (KeyError) key :scheme not found in: "http://google.com/foo"

     If you are using the dot syntax, such as map.field, make sure the left-hand side of the dot is a map
     code: assert URI.merge("http://google.com/foo", URI.new!("//example.com/baz"))
     stacktrace:
       (elixir 1.18.0-dev) lib/uri.ex:911: URI.merge/2
       test/elixir/uri_test.exs:390: (test)
```

That's because that (one) particular clause didn't check for the
base to be a `%URI{}`.
2024-11-06 12:35:32 +01:00
José Valim 01474e0cd4 Type checking of try 2024-11-05 19:08:18 +01:00
Jonatan Kłosko d0f7c03744 Fix delimiter metadata for single quote atoms and remote calls (#13966) 2024-11-05 17:11:39 +01:00
Jonatan Kłosko ee90126527 Add delimiter meta to demote calls with quoted identifier (#13963) 2024-11-05 13:14:20 +01:00
José Valim 1ca06361b6 Type checking of stacktrace and error/raise functions 2024-11-05 13:13:59 +01:00
José Valim 3e9fb4d5ad Type checking of case and receive 2024-11-05 13:13:59 +01:00
José Valim 2b687fe733 Type map and struct updates (#13957) 2024-11-05 11:46:55 +01:00
Guillaume Duboc 7abcb484f8 Add tuple_values to descr (#13964) 2024-11-05 11:38:48 +01:00
José Valim 7e1aaacf53 Add more tests around list hd/tl 2024-11-04 16:58:31 +01:00
Jonatan Kłosko e54b87c181 Fix formatter adding extra escapes to remote call functions (#13960) 2024-11-04 14:37:46 +01:00
José Valim ef56e81d34 Improve coverage over union calls 2024-11-04 14:36:53 +01:00
José Valim 1557d1db5f Typecheck cond 2024-11-04 14:36:53 +01:00
Jean Klingler 5d626cb873 Improve validation of unquote_splicing AST (#13961) 2024-11-04 22:08:48 +09:00
José Valim 9bf8233f68 Improve error messages for bad funs 2024-11-04 09:31:09 +01:00