@@ -382,6 +382,7 @@ NONLopt [^\n]*
382382%x Comment
383383%x PackageName
384384%x JavaImport
385+ %x IDLImport
385386%x PHPUse
386387%x PHPUseAs
387388%x CSAccessorDecl
@@ -1963,20 +1964,33 @@ NONLopt [^\n]*
19631964 QCString scope=yytext;
19641965 yyextra->current ->name =removeRedundantWhiteSpace (substitute (scope.left (scope.length ()-1 )," ." ," ::" ));
19651966 yyextra->current ->fileName = yyextra->fileName ;
1967+ bool ambig = false ;
1968+ FileDef *incFd = findFileDef (Doxygen::inputNameLinkedMap,yyextra->fileName ,ambig);
1969+ if (incFd)
1970+ {
1971+ incFd->addIncludeDependency (nullptr ,scope,IncludeKind::ImportModule);
1972+ }
19661973 yyextra->current ->section = EntryType::makeUsingDir ();
19671974 yyextra->current_root ->moveToSubEntryAndRefresh (yyextra->current );
19681975 initEntry (yyscanner);
19691976 BEGIN (Using);
19701977 }
19711978<JavaImport>({ID}{BN}*" ." {BN}*)+{ID} { // class import => add as a using declaration
1972- ModuleManager::instance ().addImport (yyextra->fileName ,
1973- yyextra->yyLineNr ,
1974- yytext,
1975- yyextra->current ->exported );
19761979 lineCount (yyscanner);
19771980 QCString scope=yytext;
19781981 yyextra->current ->name =removeRedundantWhiteSpace (substitute (scope," ." ," ::" ));
19791982 yyextra->current ->fileName = yyextra->fileName ;
1983+ bool ambig = false ;
1984+ FileDef *fromFd = findFileDef (Doxygen::inputNameLinkedMap,yyextra->fileName ,ambig);
1985+ FileDef *toFd = findFileDef (Doxygen::inputNameLinkedMap,scope,ambig);
1986+ if (fromFd)
1987+ {
1988+ fromFd->addIncludeDependency (toFd,scope,IncludeKind::ImportModule);
1989+ }
1990+ if (toFd && fromFd)
1991+ {
1992+ toFd->addIncludedByDependency (fromFd,fromFd->docName (),IncludeKind::ImportModule);
1993+ }
19801994 if (yyextra->insideD )
19811995 {
19821996 yyextra->current ->section = EntryType::makeUsingDir ();
@@ -1991,6 +2005,23 @@ NONLopt [^\n]*
19912005 initEntry (yyscanner);
19922006 BEGIN (Using);
19932007 }
2008+ <IDLImport>" \" " [^" ]*" \" " {
2009+ QCString fileName (&yytext[1 ],yyleng-2 );
2010+ bool ambig = false ;
2011+ FileDef *fromFd = findFileDef (Doxygen::inputNameLinkedMap,yyextra->fileName ,ambig);
2012+ FileDef *toFd = findFileDef (Doxygen::inputNameLinkedMap,fileName,ambig);
2013+ if (fromFd)
2014+ {
2015+ fromFd->addIncludeDependency (toFd,fileName,IncludeKind::ImportModule);
2016+ }
2017+ if (toFd && fromFd)
2018+ {
2019+ toFd->addIncludedByDependency (fromFd,fromFd->docName (),IncludeKind::ImportModule);
2020+ }
2021+ }
2022+ <IDLImport>" ;" {
2023+ BEGIN (FindMembers);
2024+ }
19942025<FindMembers>" using" {BN}+/(" ::" {ID}(" ::" {ID})*)? {
19952026 if (yyextra->insideJava ) REJECT;
19962027 yyextra->current ->startLine =yyextra->yyLineNr ;
@@ -2430,7 +2461,7 @@ NONLopt [^\n]*
24302461 else if ((yyextra->insideIDL || yyextra->insideJava || yyextra->insideD ) && yyleng==6 && qstrcmp (yytext," import" )==0 )
24312462 {
24322463 if (yyextra->insideIDL )
2433- BEGIN (NextSemi );
2464+ BEGIN (IDLImport );
24342465 else // yyextra->insideJava or yyextra->insideD
24352466 BEGIN (JavaImport);
24362467 }
0 commit comments