diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 36f4b09c..af39af84 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -10,7 +10,7 @@ jobs: fail-fast: false matrix: version: - - 1.6 # LTS + - '1.10' # LTS - 1 - 'nightly' os: @@ -45,7 +45,7 @@ jobs: - uses: actions/checkout@v2 - uses: julia-actions/setup-julia@v1 with: - version: 1.7 + version: 1.10 - run: | julia --project=docs -e ' using Pkg diff --git a/Project.toml b/Project.toml index 23ca1947..63f7e38e 100644 --- a/Project.toml +++ b/Project.toml @@ -11,8 +11,6 @@ InverseFunctions = "3587e190-3f89-42d0-90ee-14403ec27112" LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" MacroTools = "1914dd2f-81c6-5fcd-8719-6d5c9610ff09" Markdown = "d6f4376e-aef5-505a-96c1-9c027394607a" -Requires = "ae029012-a4dd-5104-9daa-d747884805df" -Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" [weakdeps] AxisKeys = "94b1ba4f-4ee9-5380-92f1-94cde586c3c5" @@ -37,11 +35,10 @@ IntervalSets = "0.7" InverseFunctions = "0.1.5" MacroTools = "0.5" Markdown = "1" -Requires = "0.5, 1.0" StaticArrays = "1" StructArrays = "0.6" Unitful = "1" -julia = "1.6" +julia = "1.9" [extras] AxisKeys = "94b1ba4f-4ee9-5380-92f1-94cde586c3c5" diff --git a/src/Accessors.jl b/src/Accessors.jl index 2852fdea..b2b116a0 100644 --- a/src/Accessors.jl +++ b/src/Accessors.jl @@ -4,11 +4,6 @@ using MacroTools: isstructdef, splitstructdef, postwalk using InverseFunctions using Markdown: Markdown, @md_str, term -if !isdefined(Base, :get_extension) - using Requires -end - - include("setindex.jl") include("optics.jl") include("getsetall.jl") @@ -16,38 +11,28 @@ include("sugar.jl") include("functionlenses.jl") include("testing.jl") -# always included for now -include("../ext/AccessorsDatesExt.jl") -include("../ext/AccessorsLinearAlgebraExt.jl") -include("../ext/AccessorsTestExt.jl") - function __init__() - @static if !isdefined(Base, :get_extension) - @require StaticArrays = "90137ffa-7385-5640-81b9-e52037218182" include("../ext/AccessorsStaticArraysExt.jl") - end - if isdefined(Base.Experimental, :register_error_hint) - Base.Experimental.register_error_hint(MethodError) do io, exc, argtypes, kwargs - if exc.f === insert && argtypes[2] <: Accessors.DynamicIndexLens - println(io) - term(io, md""" - `insert` with a `DynamicIndexLens` is not supported, this can happen when you write - code such as `@insert a[end] = 1` or `@insert a[begin] = 1` since `end` and `begin` - are functions of `a`. The reason we do not support these with `insert` is that - Accessors.jl tries to guarentee that `f(insert(obj, f, val)) == val`, but - `@insert a[end] = 1` and `@insert a[begin] = 1` will violate that invariant. - - Instead, you can use `first` and `last` directly, e.g. - ``` - julia> a = (1, 2, 3, 4) - - julia> @insert last(a) = 5 - (1, 2, 3, 4, 5) - - julia> @insert first(a) = 0 - (0, 1, 2, 3, 4) - ``` - """) - end + Base.Experimental.register_error_hint(MethodError) do io, exc, argtypes, kwargs + if exc.f === insert && argtypes[2] <: Accessors.DynamicIndexLens + println(io) + term(io, md""" + `insert` with a `DynamicIndexLens` is not supported, this can happen when you write + code such as `@insert a[end] = 1` or `@insert a[begin] = 1` since `end` and `begin` + are functions of `a`. The reason we do not support these with `insert` is that + Accessors.jl tries to guarentee that `f(insert(obj, f, val)) == val`, but + `@insert a[end] = 1` and `@insert a[begin] = 1` will violate that invariant. + + Instead, you can use `first` and `last` directly, e.g. + ``` + julia> a = (1, 2, 3, 4) + + julia> @insert last(a) = 5 + (1, 2, 3, 4, 5) + + julia> @insert first(a) = 0 + (0, 1, 2, 3, 4) + ``` + """) end end end