Matthew Brown
|
2f30132d94
|
Add Phan updates to callmap
|
2019-01-08 21:19:11 -05:00 |
|
Brown
|
43bbd739a2
|
Fix generic param fetches
|
2019-01-08 16:55:53 -05:00 |
|
Brown
|
73770c085e
|
Prevent crash when @template as type is missing
|
2019-01-08 15:11:57 -05:00 |
|
Brown
|
8e26d639de
|
Fix #1181 - improve handling of complicated conditionals
|
2019-01-08 12:33:44 -05:00 |
|
Matthew Brown
|
b6865b130b
|
Catch exception in more places
|
2019-01-08 09:57:14 -05:00 |
|
Matthew Brown
|
a89a201c71
|
Fix #1180 - array key maths was wrong
|
2019-01-08 09:56:54 -05:00 |
|
Matthew Brown
|
dfba6e0dec
|
Fix #1181 - prevent allowed memory errors with large conditionals
|
2019-01-08 09:19:33 -05:00 |
|
Matthew Brown
|
370874d9b6
|
Make diff map more verbose so it can serve as a list of safe zones
Outside them all issues must be removed
|
2019-01-08 00:54:48 -05:00 |
|
Brown
|
be337a03cf
|
Simplify output of method call complaints
|
2019-01-07 16:38:37 -05:00 |
|
Brown
|
14f456e160
|
Fix #1176 - always evaluate assignments in unknown function calls
|
2019-01-07 12:24:44 -05:00 |
|
Brown
|
4d959626d5
|
Fix #1175 - support trait method visibility changes
|
2019-01-07 11:53:22 -05:00 |
|
Matthew Brown
|
bcbede07ba
|
Fix issue with do analysis while loops
|
2019-01-07 01:15:30 -05:00 |
|
Matthew Brown
|
5691c37ece
|
Use reflection to figure out where dupe function was defined
|
2019-01-06 17:24:46 -05:00 |
|
Matthew Brown
|
a6357b413c
|
Don’t complain when rescanning file with function in
|
2019-01-06 17:03:13 -05:00 |
|
Matthew Brown
|
214fd7d461
|
Add DuplicateFunction issue
Fixes #49
|
2019-01-06 16:40:44 -05:00 |
|
Matthew Brown
|
43b4c1c0a3
|
Fix #1168 - better return type for range
|
2019-01-06 13:02:46 -05:00 |
|
Matthew Brown
|
9c9e57cf6b
|
Fix #1153 - ignore redundant conditions in finally block
|
2019-01-06 12:39:18 -05:00 |
|
Matthew Brown
|
b19dd25881
|
Fix #742 - infer template type from closure
|
2019-01-06 12:16:09 -05:00 |
|
Matthew Brown
|
cc26ce682e
|
Don’t crash when encountering empty @throws
|
2019-01-06 10:01:35 -05:00 |
|
Matthew Brown
|
90e1648d5b
|
Fix #979 - be more conservative about method_exists handling
|
2019-01-06 09:36:25 -05:00 |
|
Matthew Brown
|
8783a33a3f
|
Fix #1136 - support __halt_compiler
|
2019-01-06 09:18:41 -05:00 |
|
Matthew Brown
|
e3f2cee2d6
|
Fix thing that doesn’t work quite right
|
2019-01-05 17:10:29 -05:00 |
|
Matthew Brown
|
4d6031b39b
|
Fix #1172 - treat is_subclass_of similarly to is_a
|
2019-01-05 16:58:34 -05:00 |
|
Matthew Brown
|
3a405f4951
|
Remove public from const
|
2019-01-05 16:34:09 -05:00 |
|
Matthew Brown
|
c7723df8ff
|
Allow gettype vars to be compared to strings
|
2019-01-05 16:23:18 -05:00 |
|
Matthew Brown
|
9e2dacc9e4
|
Remove blank lines
|
2019-01-05 15:54:21 -05:00 |
|
Matthew Brown
|
355ed831e1
|
Add support for get_parent_class() with arg
|
2019-01-05 15:49:56 -05:00 |
|
Matthew Brown
|
58acaefe70
|
Add support for get_parent_class() with no args
|
2019-01-05 15:49:56 -05:00 |
|
Tyson Andre
|
d85c9d8aa2
|
Remove an unused closure use variable
This looks like debugging code added in
37dedee7b6
|
2019-01-05 15:48:48 -05:00 |
|
Matthew Brown
|
8024b4e275
|
Add support for $a::class
|
2019-01-05 15:12:42 -05:00 |
|
Matthew Brown
|
f5378bdca8
|
Improve function call resolution
|
2019-01-05 14:50:11 -05:00 |
|
Matthew Brown
|
bf8f76671b
|
Don’t crash when suppressing UndefinedClass with bad params
|
2019-01-05 12:59:12 -05:00 |
|
Matthew Brown
|
6f1d56a80f
|
Upcast iterables to traversables when used in a templated class string
|
2019-01-05 10:32:39 -05:00 |
|
Matthew Brown
|
9f16ab9cb5
|
Fix issue where documented self param confuses
|
2019-01-05 08:45:12 -05:00 |
|
ADmad
|
407e4473f7
|
Improve callmap possibly false value.
Similar to #1147.
|
2019-01-05 08:28:13 -05:00 |
|
Matthew Brown
|
9d8c2792e2
|
Add array-key type and improve general type handling
Fixes #1144
|
2019-01-05 00:15:53 -05:00 |
|
Matthew Brown
|
2dc3d9651f
|
Separate iterable into its own type
Fixes #1151
|
2019-01-04 14:54:40 -05:00 |
|
Matthew Brown
|
87052537cf
|
Fix #1167 - don’t worry about AbstractInstantiation when it could be a descendant
|
2019-01-04 12:28:00 -05:00 |
|
Matthew Brown
|
602d8a5ade
|
Fix issue inheriting grandparent signature
|
2019-01-04 08:37:54 -05:00 |
|
Matthew Brown
|
e5559e3012
|
Allow callables to be plain objects, and vice versa
Previously Psalm required they be *known* objects
|
2019-01-04 08:04:26 -05:00 |
|
Brown
|
53749bd5c5
|
Do better at finding things that exit
|
2019-01-02 18:14:47 -05:00 |
|
Brown
|
cca0070d38
|
Allow function calls that exit to act themselves like exit
|
2019-01-02 17:16:04 -05:00 |
|
Brown
|
2b4b55fd33
|
Add support for @return no-return
Fixes #1155
|
2019-01-02 17:05:39 -05:00 |
|
Brown
|
c39446330e
|
Make class-string rules more strict
|
2019-01-02 14:24:45 -05:00 |
|
Brown
|
9fdf29c468
|
Fix #1165 - default inherited unresolved constants to mixed
|
2019-01-02 13:46:46 -05:00 |
|
Matthew Brown
|
6fc79e3534
|
Fix Psalm issues
|
2019-01-02 13:27:53 -05:00 |
|
Matthew Brown
|
93e3d66ce5
|
Move filter_var handler function into its own method
|
2019-01-02 13:27:53 -05:00 |
|
Andrii
|
36f6930e0c
|
🐛 #1163 Fix handling for default option in filter_var
|
2019-01-02 13:27:53 -05:00 |
|
Brown
|
69d9fd7e28
|
Fix regression when reasoning about class strings
|
2019-01-02 11:35:49 -05:00 |
|
Brown
|
1d300ec342
|
Fix #1150
|
2019-01-02 11:18:22 -05:00 |
|
Matthew Brown
|
c4d024a72d
|
Check variable static calls
Fixes #1142 and #1160
|
2019-01-02 09:00:45 -05:00 |
|
Matthew Brown
|
df9ea9e3b6
|
Potential fix for #1156
|
2019-01-02 08:03:24 -05:00 |
|
Matthew Brown
|
901596281c
|
Fix #1143 - check some variable new calls
|
2019-01-02 06:58:49 -05:00 |
|
Matthew Brown
|
6fbf395f70
|
Fix #1152 - don’t complain about trait class-string comparisons
|
2019-01-01 21:00:34 -05:00 |
|
Matthew Brown
|
0f6ce983f4
|
Fix #1154 - parent::foo() calls should not cause exception when parent does not exist
|
2018-12-30 18:28:15 +01:00 |
|
Matthew Brown
|
571c1d7413
|
Improve callmap possibly false value
Fixes #1147
|
2018-12-26 11:25:10 +01:00 |
|
Matthew Brown
|
e844fb6491
|
Add wider return type to Exception::getCode and Throwable::getCode
Fixes #1148
|
2018-12-26 11:21:56 +01:00 |
|
Matthew Brown
|
10a36def96
|
Fix issue with by-ref args
|
2018-12-21 13:53:22 -05:00 |
|
Matthew Brown
|
fab4d135b2
|
Fix static calls on class_aliased classes
|
2018-12-21 11:39:28 -05:00 |
|
Matthew Brown
|
947e3bf0f1
|
Fix crashes when analysing aliased class instances
|
2018-12-21 11:32:44 -05:00 |
|
Matthew Brown
|
e89425ad68
|
Inherit parameters via @inheritdoc
|
2018-12-21 11:01:24 -05:00 |
|
Matthew Brown
|
e744e71946
|
Fix class_alias treatment for interfaces and others
|
2018-12-21 09:29:23 -05:00 |
|
Matthew Brown
|
02003d9996
|
Understand class_alias calls better
Ref #1135
|
2018-12-21 01:21:00 -05:00 |
|
Brown
|
974476dc87
|
Fix var used to assert length
|
2018-12-20 17:34:56 -05:00 |
|
Brown
|
abdf646050
|
Only diff files if lengths are not very different
|
2018-12-20 17:33:35 -05:00 |
|
Brown
|
2e30d7b4a0
|
Improve handling of unset
|
2018-12-20 16:03:21 -05:00 |
|
Matthew Brown
|
c3a1e77a53
|
Fix errors in doctrine/dbal
|
2018-12-20 01:06:43 -05:00 |
|
Brown
|
09ea7ba7a8
|
Allow combination of mixed-from-isset and empty
|
2018-12-19 19:43:07 -05:00 |
|
Brown
|
fb848d62e9
|
Add checks for if (count($a)) and if (count($a) [operator] [number])
|
2018-12-19 16:15:19 -05:00 |
|
Brown
|
8e5e3564bc
|
Fix erroneous redundant condition warning
|
2018-12-19 16:10:09 -05:00 |
|
Matthew Brown
|
ea89a6ba29
|
Revert "First pass"
This reverts commit 9ed047234f .
|
2018-12-19 08:45:14 -05:00 |
|
Matthew Brown
|
9ed047234f
|
First pass
|
2018-12-19 01:59:14 -05:00 |
|
Matthew Brown
|
13e14b3162
|
Remove code that was breaking things
|
2018-12-19 00:28:11 -05:00 |
|
Dave Liddament
|
0655e1c19c
|
UPDATE add issue type to text output
Adds issue type to text output. Leaves .emacs output as before.
|
2018-12-18 17:25:28 -05:00 |
|
Matthew Brown
|
ca6149ed17
|
Improve treatment of templated params within function analysis
|
2018-12-17 23:29:27 -05:00 |
|
Brown
|
7b03e0159c
|
Prevent invalid static invocation
Fixes #1134
|
2018-12-17 17:48:13 -05:00 |
|
Brown
|
ca1a615026
|
Don’t call reconciliation on empty vars
|
2018-12-17 15:23:56 -05:00 |
|
Brown
|
699d763cc1
|
Make isset($a[foo]) imply $a is not a string
|
2018-12-14 18:52:29 -05:00 |
|
Brown
|
b7d4db892c
|
Fix #1130 - improve handling of invalid array offsets
|
2018-12-14 15:10:10 -05:00 |
|
Brown
|
15320430db
|
Don’t combine empty array with mixed
Ref #1126
|
2018-12-14 12:30:13 -05:00 |
|
Brown
|
7855683271
|
Convert @return Promise<...> to @psalm-return Promise<...>
|
2018-12-14 10:27:39 -05:00 |
|
Brown
|
341cb0c82c
|
Fix #1125 - check protected method overridden ids for use
|
2018-12-13 17:20:29 -05:00 |
|
Matthew Brown
|
fa9a04369b
|
Don’t propagate internal to methods/properties of traits and interfaces
|
2018-12-13 09:28:30 -05:00 |
|
Matthew Brown
|
a8851ff425
|
Improve handling of T::class when mixed is passed
|
2018-12-13 01:54:15 -05:00 |
|
Matthew Brown
|
8b5e8402a1
|
Add support for @param T:class $foo
|
2018-12-13 00:09:01 -05:00 |
|
Matthew Brown
|
4b9ea5472d
|
Fix #1117 - enforce argument counts on interface __constructors
|
2018-12-12 22:35:27 -05:00 |
|
Brown
|
970ea48b25
|
Fix checks around array empty checks
|
2018-12-11 13:50:26 -05:00 |
|
Matthew Brown
|
b052e211a0
|
Improve internal typing for sabre/event promises
|
2018-12-10 23:18:53 -05:00 |
|
Brown
|
d9945a0ced
|
Fix issue re-asserting non-empty-mixed
|
2018-12-10 18:33:26 -05:00 |
|
Brown
|
fb19e510a7
|
Allow calls on non-empty-mixed too
|
2018-12-10 11:36:00 -05:00 |
|
Brown
|
ed4077f589
|
Be more lenient with mixed union calls
|
2018-12-10 11:28:05 -05:00 |
|
Jon Ursenbach
|
c6a8b53a4d
|
Refactoring output formats and creating a new "compact" format.
The new compact format generates your report within a table
structure that is similar to PHPCS.
Resolves #967
|
2018-12-09 17:34:47 -05:00 |
|
Matthew Brown
|
c6f451a8b7
|
Fix #1119 - prevent interesections on generic params from breaking stuff
|
2018-12-08 15:17:43 -05:00 |
|
Matthew Brown
|
825e0355c9
|
Add even more info
|
2018-12-08 14:37:09 -05:00 |
|
Matthew Brown
|
0acad241ed
|
Improve return analysis messaging
|
2018-12-08 14:33:41 -05:00 |
|
Matthew Brown
|
29aff6e088
|
Add more specific return type better messages
|
2018-12-08 14:26:16 -05:00 |
|
Matthew Brown
|
f0969cb3bb
|
Fix getId calls on callable return types
Ref #1119
|
2018-12-08 14:10:06 -05:00 |
|
Matthew Brown
|
fd0ab47b80
|
Fix #1118 - detect possible issues with unions of mixed
|
2018-12-08 13:18:55 -05:00 |
|
Matthew Brown
|
5f34f6c478
|
Fix #1115 - allow a parent @throws to capture children
|
2018-12-05 22:50:16 -05:00 |
|
Matthew Brown
|
b7710f7cb9
|
Fix #1107 - be more lenient with possibly undefined array access when suppressed
|
2018-12-05 22:35:08 -05:00 |
|
Matthew Brown
|
f54a50ec7d
|
Fix #1116 - provide slightly clearer message when comparing a class string to a string
|
2018-12-05 22:29:06 -05:00 |
|
Matthew Brown
|
93662abf8d
|
Shift iterable arg by one if only one is given
|
2018-12-02 14:59:08 -05:00 |
|
Matthew Brown
|
9203b9d865
|
Make more mockable classes non-@internal
|
2018-12-01 19:45:38 -05:00 |
|
Matthew Brown
|
aee5639a4c
|
Remove @internal annotation from FileProvider because PHPUnit 6 can’t deal
|
2018-12-01 19:06:24 -05:00 |
|
Matthew Brown
|
b32000fa05
|
Fix #689 - add checks for @internal annotations
|
2018-12-01 18:37:49 -05:00 |
|
Brown
|
ef49e3984b
|
Fix #945 - allow ...$foo in docblock for non-user files to inform variadic
|
2018-11-30 19:21:14 -05:00 |
|
Brown
|
9e4765663d
|
Fix #999 - respect @method annotations to redefine parent methods
|
2018-11-30 15:13:25 -05:00 |
|
Brown
|
1b740aebb5
|
Fix #1104 - allow multiple trait method aliases to map to same method
|
2018-11-30 13:45:49 -05:00 |
|
Brown
|
b6446824be
|
Fix #1107 - emit PossiblyUndefinedArrayOffset where applicable
|
2018-11-30 13:27:21 -05:00 |
|
Matthew Brown
|
9efd40e321
|
Fix #1095 - prevent complex assertion redundant condition
|
2018-11-29 23:25:30 -05:00 |
|
Matthew Brown
|
21f29e7385
|
Fix #1108 - add support for referencedFunction to UndefinedFunction
|
2018-11-29 23:19:33 -05:00 |
|
Bruce Weirdan
|
f84224b7e9
|
fixed collator method return types
|
2018-11-29 09:45:02 -05:00 |
|
Matthew Brown
|
21f4a2c7f2
|
Save referenced classlike for cache
|
2018-11-29 01:46:12 -05:00 |
|
Matthew Brown
|
1eb11a43b0
|
Fix #1102 by supporting class_alias properly
|
2018-11-29 00:46:34 -05:00 |
|
Matthew Brown
|
26947888f6
|
Add some basic support for class_alias
|
2018-11-29 00:05:56 -05:00 |
|
Matthew Brown
|
47f5f309ad
|
Remove support for get_class($a) === "somestring"
But it works with class constants
|
2018-11-28 23:59:43 -05:00 |
|
Brown
|
c378079db8
|
Make the length of possible string unions unlimited in conditionals
Fixes #1103
|
2018-11-28 15:12:08 -05:00 |
|
Brown
|
04b3fd2bb5
|
Fall through after more Possibly* issues
|
2018-11-28 11:45:54 -05:00 |
|
Brown
|
e7b63a86a6
|
Differentiate between types merged in a write context vs types merged in return
|
2018-11-28 10:41:49 -05:00 |
|
Brown
|
f5e788ec1f
|
Increase limits of literal strings to 50 characters
|
2018-11-27 17:48:23 -05:00 |
|
Matthew Brown
|
a83387b187
|
Fall through after RawObjectIteration
|
2018-11-27 09:34:54 -05:00 |
|
Brown
|
3bcbd9d659
|
Don’t emit errors when iterating over array|iterator
|
2018-11-26 16:50:47 -05:00 |
|
Brown
|
97c0a94b42
|
Prevent type coercion from get_class output
|
2018-11-26 16:39:59 -05:00 |
|
Matthew Brown
|
af041abdcb
|
Fix #1093 - add exception type to list of scanned classes
|
2018-11-25 16:14:50 -05:00 |
|
Matthew Brown
|
d90cff8f10
|
Add support for overriding method visibility too
|
2018-11-25 11:11:33 -05:00 |
|
Matthew Brown
|
047b096227
|
Add better support for intersection properties and mocks
|
2018-11-24 18:31:08 -05:00 |
|
Matthew Brown
|
e811ff5498
|
Allow generic types to be included in static return type
|
2018-11-23 13:24:35 -05:00 |
|
Matthew Brown
|
786ac6c4eb
|
Allow static to carry intersection types
|
2018-11-22 01:03:32 -05:00 |
|
Matthew Brown
|
68af217892
|
Add missing arg to static call hook
|
2018-11-22 00:25:38 -05:00 |
|
Matthew Brown
|
8d488345ce
|
Fix #1036 - at least the part I care about
|
2018-11-21 18:38:09 -05:00 |
|
Matthew Brown
|
9f79bdb86e
|
Allow iteration over iteratoraggregate directly
|
2018-11-21 18:35:41 -05:00 |
|
Matthew Brown
|
ef7298c62c
|
Improve treatment of getIterator calls
Fixes #991
|
2018-11-21 17:56:04 -05:00 |
|
Matthew Brown
|
116cbfd349
|
Fix #1090 - re-fix support for magic get properties
|
2018-11-21 16:57:54 -05:00 |
|
Matthew Brown
|
3ccd9f4c01
|
Fix arg type
|
2018-11-21 14:08:47 -05:00 |
|
Matthew Brown
|
6ef79a0432
|
Improve handling of byref vars passed into functions
Fixes #1066
|
2018-11-21 12:38:51 -05:00 |
|
Vasily Kartashov
|
fe6713d561
|
Adding false to ftell result type,
Adding properties to `stream_get_meta_data` result array
|
2018-11-21 08:28:44 -05:00 |
|
Matthew Brown
|
f35a550774
|
Remove redundant clause
|
2018-11-20 22:24:53 -05:00 |
|
Matthew Brown
|
740aa895e9
|
Fix #1074 - allow switching from Phar analysis to regular analysis
|
2018-11-20 22:21:00 -05:00 |
|
Brown
|
b5f0159cdf
|
Add backup hover analysis when file isn’t analysed
|
2018-11-20 16:32:40 -05:00 |
|
Brown
|
7df0361fb9
|
Remove unnecessary error log
|
2018-11-20 15:53:24 -05:00 |
|
Brown
|
ca602f8e17
|
Fix language server crash after editing trait method names
|
2018-11-20 15:51:47 -05:00 |
|
Matthew Brown
|
39310573d1
|
Use socket client mode by default when starting tcp language server
|
2018-11-19 22:53:11 -05:00 |
|
Matthew Brown
|
0f90309819
|
Do all normalisation on / before conversion to \
|
2018-11-18 17:18:05 -05:00 |
|
Matthew Brown
|
fa2e7f1f70
|
More finagling of windows file names
|
2018-11-18 17:06:11 -05:00 |
|
Matthew Brown
|
2a3c3ed223
|
Fix #1071 - improve resolution of include paths
|
2018-11-18 16:53:46 -05:00 |
|
Matthew Brown
|
23ec0e037b
|
Fix windows-only constant issue
|
2018-11-18 16:05:36 -05:00 |
|
Matthew
|
b52f9cbcd2
|
Fix windows file path includes
|
2018-11-18 20:56:56 +00:00 |
|
Matthew Brown
|
59b9b5d65b
|
Move more classes into Internal namespace
|
2018-11-18 12:41:47 -05:00 |
|
Matthew Brown
|
37dedee7b6
|
Fix memory leak issues and disable garbage collection
|
2018-11-18 11:39:14 -05:00 |
|
Matthew Brown
|
c2e546facb
|
Fix #531
Well, it’s basically fixed already, but this adds @TysonAndre’s suggestions (and some of the relevant implementation from Phan)
|
2018-11-17 18:01:27 -05:00 |
|
Brown
|
f3599a8b6c
|
Allow assertSame(null, ...)
|
2018-11-16 11:50:07 -05:00 |
|
Brown
|
425b6321aa
|
Add better understanding of when floats and ints can be equal
|
2018-11-16 11:04:45 -05:00 |
|
Brown
|
08d9940259
|
Change ^ to = when annotating assertions
|
2018-11-16 10:13:52 -05:00 |
|
Matthew Brown
|
e8716f636e
|
Prevent templated assertions on union types with > 1 atomic
|
2018-11-16 00:56:57 -05:00 |
|
Brown
|
029b6e5ac4
|
Allow assertions to be made on template params
|
2018-11-15 18:50:08 -05:00 |
|
Brown
|
766f33d6e4
|
Fix add in missing property in LSP mode
|
2018-11-15 18:10:10 -05:00 |
|
Brown
|
d9440c7bb0
|
Make sure assertions always have a $ in var id
|
2018-11-14 15:40:56 -05:00 |
|
Brown
|
f8ea3567d3
|
Include $ in asserted var id
|
2018-11-14 15:12:55 -05:00 |
|
Brown
|
9f523fab8b
|
Only store really simple-looking code for assertions
|
2018-11-14 13:53:57 -05:00 |
|
Brown
|
254a14f621
|
Allow assertion redundant conditions to be suppressed
|
2018-11-14 13:44:20 -05:00 |
|
Brown
|
3ba2510096
|
Prevent bleeding of assert vars into context
|
2018-11-14 13:12:31 -05:00 |
|
Brown
|
4904ffe8ea
|
Complain about redundant conditions on custom asserts
|
2018-11-14 12:25:17 -05:00 |
|
Brown
|
06974221df
|
Change DependencyFinderVisitor name to ReflectorVisitor and update docs
|
2018-11-13 14:09:43 -05:00 |
|
Matthew Brown
|
a4507b068e
|
Fix #1081 - allow PDO::prepare to return false
|
2018-11-13 00:38:14 -05:00 |
|
Brown
|
d0c245eff3
|
Fix #1077 - queue property types
|
2018-11-12 13:01:16 -05:00 |
|
Brown
|
dc834fdb01
|
Default allowStringToStandInForClass to true and fix errors found
|
2018-11-12 12:03:55 -05:00 |
|
Brown
|
0254322bed
|
Migrate Codebase-namespaced and FileManipulation-namespaced classes to internals
|
2018-11-12 11:20:59 -05:00 |
|
Matthew Brown
|
9709263b8d
|
Make many PropertyAnalyzer properties private
|
2018-11-12 11:20:59 -05:00 |
|
Matthew Brown
|
4d79b61e93
|
Change _checker to _analyzer
|
2018-11-12 11:20:59 -05:00 |
|
Matthew Brown
|
4688b25fd9
|
Move internal classes to own namespace
|
2018-11-12 11:20:59 -05:00 |
|