Browse files

FIX ConfigStaticManifest persisting access level after parsing a static

  • Loading branch information...
1 parent f740019 commit 47edbfe8fc6a012305f21d340c5f43c34f833b5e Hamish Friedlander committed Mar 22, 2013
Showing with 8 additions and 5 deletions.
  1. +5 −4 core/manifest/ConfigStaticManifest.php
  2. +3 −1 tests/core/manifest/ConfigStaticManifestTest.php
View
9 core/manifest/ConfigStaticManifest.php
@@ -80,7 +80,7 @@ public function get($class, $name, $default) {
if ($static['access'] != T_PRIVATE) {
Deprecation::notice('3.2.0', "Config static $class::\$$name must be marked as private", Deprecation::SCOPE_GLOBAL);
// Don't warn more than once per static
- $static['access'] = T_PRIVATE;
+ $this->statics[$class][$name]['access'] = T_PRIVATE;
}
return $static['value'];
@@ -231,11 +231,12 @@ function parse() {
else if($type == T_PUBLIC || $type == T_PRIVATE || $type == T_PROTECTED) {
$access = $type;
}
- else if($type == T_STATIC) {
- if($class && $depth == $clsdepth) $this->parseStatic($access, $namespace ? $namespace.'\\'.$class : $class);
+ else if($type == T_STATIC && $class && $depth == $clsdepth) {
+ $this->parseStatic($access, $namespace ? $namespace.'\\'.$class : $class);
+ $access = 0;
}
else {
- $access = '';
+ $access = 0;
}
}
}
View
4 tests/core/manifest/ConfigStaticManifestTest.php
@@ -12,6 +12,7 @@ class ConfigStaticManifestTest extends SapphireTest {
static public $public2;
static protected $protected2;
static private $private2;
+ static $nolevel_after_private;
// Assigning values
static $snone;
@@ -96,7 +97,8 @@ public function testParsingAccessLevels() {
'protected' => T_PROTECTED,
'protected2' => T_PROTECTED,
'private' => T_PRIVATE,
- 'private2' => T_PRIVATE
+ 'private2' => T_PRIVATE,
+ 'nolevel_after_private' => null
);
foreach($levels as $var => $level) {

0 comments on commit 47edbfe

Please sign in to comment.