Alok Swamy and Claude Opus 4.6
532b439063
Reject bare-bracket syntax in strict2 and introduce self keyword
...
Add bare-bracket rejection to Parser#expression in strict2 mode, so that
`['var']` is disallowed and `self['var']` is the required syntax.
- Add `Expression::SELF` constant ('self')
- Add `Parser#reject_bare_brackets` option, checked in `expression`
- Add `ParseContext#reject_bare_brackets?` and `force_reject_bare_brackets`
- Add `VariableLookupDrop` for `self['var']` scope-chain lookups
- Add `Variable#==` for rewriter state comparison
- Update `Context#find_variable` to return `VariableLookupDrop` for `self`
Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected] >
2026-03-23 12:13:59 -04:00
Tobi Lutke
361d1d52b1
Fix rubocop offenses from 1.82 upgrade
2026-01-01 20:20:50 -05:00
Guilherme Carreiro and Guilherme Carreiro
e413104e78
Remove ExpressionParser in favor of ParseContext#safe_parse
2025-10-27 16:33:31 +01:00
Michael Go
7124540563
remove lru-redux
2025-01-13 18:27:56 -04:00
Michael Go
58777bcd93
float has to start with a digit
2025-01-13 17:13:27 -04:00
Michael Go
2e236b0a0e
fix expression cache to be compatible with Ruby Hash and LruCache
2025-01-10 14:58:23 -04:00
Michael Go
bd05dfbd1c
use lru_redux getset for simplicity
2025-01-10 14:41:35 -04:00
Michael Go
97cada61f9
remove Expression2 strscan workaround
2025-01-10 14:23:57 -04:00
Michael Go
42d822bda9
users can provide optional expression cache
2025-01-07 14:32:46 -04:00
Michael Go
313d01706a
code styling
2025-01-07 14:32:46 -04:00
Michael Go
e9f86724f6
code styling
2025-01-07 14:32:46 -04:00
Michael Go
0a17c15289
freeze '-' VariableLookup in Expression
2025-01-07 14:32:46 -04:00
Michael Go
e05719fb82
use Kernel Integer parsing for simple Integer expression
2025-01-07 14:32:46 -04:00
Michael Go
ac374a208f
freeze Expression2 parse results
2025-01-07 14:32:46 -04:00
Michael Go
91be3dd75e
keep the expression parse caching per document parsing
2025-01-07 14:32:46 -04:00
Michael Go
71506ad54e
avoid setting up StringScanner for parsing simple numbers
2025-01-07 14:32:46 -04:00
Michael Go
cef64e277e
early match number expressions with Regex
2025-01-07 14:32:46 -04:00
Michael Go
7c592c1c00
store StringScanner in ParseContext and reuse it through parsing
2025-01-07 14:32:45 -04:00
Michael Go
3c16c27ee1
add StringScannerPool for thread safety
2025-01-07 14:32:07 -04:00
Michael Go
a672f3836c
don't cache literals for Expression parser
2025-01-07 14:32:07 -04:00
Michael Go
92fa334192
don't cache string expressions to be more perfomant
2025-01-07 14:32:07 -04:00
Michael Go
0b1dc295ff
fix quirky negative sign expression markup parsing
2025-01-07 14:32:07 -04:00
Michael Go
1de6025362
decrease the size of Expression2 LRU cache to store 5 themes
2025-01-07 14:32:07 -04:00
Michael Go
8ecb703d4d
use StringScanner to improve Expression Parsing and Tokenizer
2025-01-07 14:32:06 -04:00
Guilherme Carreiro and GitHub
9ab688eada
Update rubocop-shopify (2.7.0 -> 2.12.0) ( #1687 )
2023-02-15 08:40:59 +01:00
Watson
ebdfdb80e5
Detect quoted string using String#{start_with?, end_with?} to reduce Regexp#=== calling
2021-09-26 04:30:49 +09:00
Dylan Thacker-Smith and GitHub
1850511334
Use an atomic subgroup in range regex to avoid pathological backtracking ( #1360 )
2020-11-16 10:29:36 -05:00
Dylan Thacker-Smith and GitHub
f23c2a83f2
Fix lax parsing expressions surrounded by spaces ( #1335 )
...
to make it compatible with strict parsing and liquid-c
2020-10-27 14:53:57 -04:00
Dylan Thacker-Smith and GitHub
a03f02789b
Only use MethodLiteral in condition expressions ( #1300 )
2020-09-25 11:10:33 -04:00
0d26f05bb8
Enabled frozen string literals ( #1154 )
...
* Enabled frozen string literals
* Update rubocop config
* Prefer string interpolation in simple cases
Co-Authored-By: Dylan Thacker-Smith <[email protected] >
2019-09-18 13:19:45 +10:00
Mike Angell
799da202df
Apply simple rubocop fixes
2019-08-31 21:58:33 +10:00
Ashwin Maroli and Justin Li
f59f6dea83
Fix simple RuboCop offenses and update TODO file ( #1062 )
...
* Fix Layout/EmptyLineAfterMagicComment offense
* Fix Layout/ExtraSpacing offense
* Fix Layout/ClosingParenthesisIndentation offenses
* Fix Style/MutableConstant offense
* Fix Style/UnneededInterpolation offenses
* Fix Style/RedundantParentheses offenses
* Update TODO config for RuboCop
* Add executable bit to test/test_helper.rb
ref: https://travis-ci.org/Shopify/liquid/jobs/488169512#L578
2019-02-22 12:32:56 -05:00
Ashwin Maroli
193fc0fb7a
revert to earlier regex for matching floats
2018-03-14 07:02:04 +05:30
Ashwin Maroli
e4da4d49d2
assign regex to a constant
2018-03-13 23:36:56 +05:30
Florian Weingarten
4c22cef341
blank and empty as variable names
2015-06-04 12:30:50 -04:00
Florian Weingarten
3372ca8136
Rubocop
2015-05-14 14:37:18 +00:00
Dylan Thacker-Smith
2aa9bbbac2
Separate expression parsing and rendering from Context#resolve.
2014-08-11 14:15:58 -07:00