Wojtek Mach
616263f9de
Expand operands in size*unit bitstring modifier ( #8375 )
2018-11-08 19:42:55 +01:00
Glauber Campinho
495d1646b2
Small optimization on elixir_bitstring:expand/4 ( #8074 )
...
`elixir_env:mergea(EV, EC)` is always equivalent to `EV` so we can avoid the operation.
Similar to #8069
2018-08-12 10:05:59 +02:00
José Valim
4f84f1bf2f
Ensure Macro.expand/2 does not change the meaning of interpolations
2018-08-11 20:42:24 +02:00
Tan Jay Jun
103502354c
Fix error typo in elixir_bitstring.erl ( #8030 )
...
[ci skip]
2018-08-02 15:02:17 +02:00
Aleksei Magusev
fa1191be8a
Handle nested bitstring pattern matching failures in a better way ( #7370 )
2018-02-20 23:43:14 +01:00
José Valim
00c7a3bc60
Merge binaries and bitstrings when possible
2018-01-25 15:40:44 -02:00
José Valim
83e6546f85
Perform merging of bitstring subinaries
2018-01-25 09:25:09 -02:00
José Valim
219c6cc867
Move unused_vars check to Elixir land
...
This gives us better control over when and how unused variables are printed.
As a result, we are able to emit unused variable warnings in situations
we could not before. This also opens up the way for us to remove a
dependency on erl_lint and track types information, which allows us to
speed up compilation times about 5% and allow us to emit more performant
code in some situations.
2018-01-20 19:45:48 +01:00
José Valim
239db307a2
Merge match_vars and prematch_vars
2018-01-20 19:42:08 +01:00
José Valim
f99bb7c0e5
Process variable versioning on Elixir pass
2018-01-20 19:42:08 +01:00
Ivan Kozik
b9ca29768a
Fix a few spelling errors ( #6525 )
2017-09-01 10:17:57 +02:00
Glauber Campinho
7951cb6a8c
Do not crash for unknown var inside binary pattern in match ( #6459 )
2017-08-15 11:53:19 +02:00
José Valim
64efa0ac69
Do not raise when expanding dynamic size
2017-04-16 17:30:46 +02:00
José Valim
8418666d84
Fix bootstraping of elixir_bitstring
2017-03-05 18:42:38 +01:00
José Valim
ba24a2fef8
Inline binaries inside interpolation
2017-03-05 18:10:11 +01:00
José Valim
c08aa189b1
Do not require size for bound literals
2017-02-24 00:38:59 +01:00
José Valim
5d6961fd92
Check for float size on elixir_bitstring
2017-02-24 00:29:01 +01:00
José Valim
4e0b33a43a
Check for binary size in bitstring matches
2017-02-24 00:29:01 +01:00
José Valim
99892760de
Split bitstring logic into proper modules
2017-02-23 23:53:12 +01:00
José Valim
d84eadb45f
Improve checking of bitstrings
2017-02-23 22:55:35 +01:00
Aleksei Magusev
84b67b5b95
Rename elixir_exp module to elixir_expand
2017-02-19 21:57:50 +01:00
Aleksei Magusev
a729847db6
Rename m/2 helper macro to key/2 in the main header file
2017-02-19 21:56:05 +01:00
José Valim
ff8dd1af7f
More module renaming and organizing
2017-02-19 21:20:43 +01:00
José Valim
e7e0d512ff
Move erlang modules to new erl namespace
2017-02-19 20:20:59 +01:00
Andrea Leopardi
068c539497
Replace compile_error/4 with form_error/4 in elixir_bitstring ( #5788 )
2017-02-18 17:29:04 +01:00
Andrea Leopardi
1cf41aeae8
Validate type for literal binaries in <<>> during expansion ( #5786 )
2017-02-18 11:58:36 +01:00
Andrea Leopardi
d814555c34
Raise for invalid literals in <<>> during expansion ( #5785 )
2017-02-18 10:51:51 +01:00
Andrea Leopardi
604c24dd2e
Raise for size() with literal binaries in <<>> during expansion ( #5783 )
2017-02-17 23:16:42 +01:00
Pedro Medeiros
0d2870f050
Fix some exported from case from erlang source ( #5214 )
...
Some erlang code were emiting a warning message when some
variables were defined inside the case statement.
2016-09-14 13:45:32 +02:00
José Valim
3c68af7ce3
Properly splice binaries inside binaries
2016-08-09 01:38:01 +02:00
José Valim
78c7ddc03f
Simplify type splicing for binaries
2016-07-16 20:31:03 +02:00
eksperimental
4ceb41e71b
Formmating: Add white space around vertical bar ( #4507 )
2016-04-25 00:55:49 +02:00
José Valim
3ccd5137ef
Add generated annotations
2015-10-11 12:02:47 -05:00
Aleksei Magusev
17b3df271d
Fix bitstring splicing for bytes type modifier
2015-10-07 00:30:41 +02:00
eksperimental
61675c3ea8
Add space after comma: Format consistently
2015-03-17 22:55:27 +07:00
Aleksei Magusev
0d8f5a2396
Use :lists.reverse/2 instead of :lists.reverse/1 and ++
2015-02-19 22:49:36 +01:00
José Valim
6a6ba9f50d
Remove deprecated code
2014-08-02 22:35:57 +02:00
José Valim
058b157b36
Remove deprecated features and deprecate soft ones
2014-07-12 16:23:17 +02:00
José Valim
a0f3086167
Convert existing bitstring examples to new syntax
2014-07-02 21:32:00 +02:00
José Valim
65a59b41e5
New bitstring syntax, closes #1950
2014-07-02 21:19:01 +02:00
José Valim
c435dbe38d
Convert #elixir_env to a struct too
2014-04-30 16:32:13 +02:00
José Valim
56f15d9f4e
Do not add spaces after { and before }
...
This makes the source code consistent with the result
returned by inspect/2.
2014-04-21 19:06:35 +02:00
Eric Meadows-Jönsson
c7c5d3af24
Allow splicing of binaries with specified size
2014-03-11 00:46:43 +01:00
José Valim
33985326b1
Forbid bit generators without size in comprehensions
2014-02-17 12:44:34 +01:00
José Valim
daa0049b32
Move map and struct functionality to elixir_map
2014-02-05 17:37:16 +01:00
José Valim
ba88ee7c92
Improve binary handling to properly consider chars and bitstring with specifiers
...
Closes #1963
2014-01-10 22:25:08 +01:00
José Valim
952052869f
Ensure bitstring modifiers args are expanded
2014-01-04 22:44:55 +01:00
José Valim
b03e2173a5
Rename translate_each to translate and temp_vars to match_vars
2013-12-29 16:08:58 +01:00
José Valim
f547ef82e2
Clean up literal handling and add elixir_bitstring
2013-12-29 15:41:39 +01:00