@@ -51,10 +51,13 @@ public function check(
5151 // first step: collect all files to parse
5252 $ filesToParse = $ this ->collectFilesToParse ($ classSetRule );
5353
54- // second step: parse all files, resolve extension points recursively, enrich deps
54+ // second step: parse all files and collect class descriptions (and parsing errors) in an index
5555 $ classDescriptionIndex = $ this ->collectParsedFiles ($ filesToParse , $ fileParser , $ progress );
5656
57- // third step: check all rules on all files
57+ // third step: enrich class descriptions with resolved dependencies
58+ $ classDescriptionIndex ->enrich ();
59+
60+ // fourth step: check all rules on all files
5861 $ this ->checkRulesOnParsedFiles (
5962 $ classSetRule ,
6063 $ classDescriptionIndex ,
@@ -111,16 +114,14 @@ protected function collectParsedFiles(FilesToParse $filesToParse, Parser $filePa
111114 $ classDescriptionIndex = new ClassDescriptionIndex ();
112115 $ resolver = FQCNToFilePathResolver::create ();
113116
114- while (!$ filesToParse ->isEmpty ()) {
115- $ file = $ filesToParse ->shift ();
116-
117+ while ($ file = $ filesToParse ->next ()) {
117118 $ progress ->startParsingFile ($ file ->getRelativePathname ());
118119
119120 $ result = $ fileParser ->parse ($ file ->getContents (), $ file ->getRelativePathname ());
120121
121122 $ classDescriptionIndex ->add ($ file ->getRelativePathname (), $ result );
122123
123- // recursively collect extension points (interfaces, traits, parent classes)
124+ // collect extension points (interfaces, traits, parent classes) and add them to the queue
124125 foreach ($ result ->classDescriptions () as $ classDescription ) {
125126 foreach ($ classDescription ->getExtensionPoints () as $ fqcn ) {
126127 $ fileToParse = $ resolver ->resolve ($ fqcn );
@@ -136,8 +137,6 @@ protected function collectParsedFiles(FilesToParse $filesToParse, Parser $filePa
136137 $ progress ->endParsingFile ($ file ->getRelativePathname ());
137138 }
138139
139- $ classDescriptionIndex ->enrich ();
140-
141140 return $ classDescriptionIndex ;
142141 }
143142
0 commit comments