#include "WfAnalyzer.h"
namespace
{
namespace
{
namespace
{
using
namespace
collections
;
bool
CheckScopes_DuplicatedSymbol
(
*
)
{
=
->
.
();
FOREACH(Ptr<WfLexicalScope>, scope, manager->nodeScopes.Values())
if
(
bool
=
true
)
for
(
const
::
vl
::
collections
::
<
<
>>&
= ::
vl
::
collections
::
(
->
.
());
__scope_variable_flag__
;
__scope_variable_flag__
=
false
)
for
(
<
>
;
__foreach_iterator__
.
(
scope
);)
{
if
(!
->
checkedScopes_DuplicatedSymbol
.
(
scope
.
()))
{
->
checkedScopes_DuplicatedSymbol
.
(
scope
.
());
for
(
=
0
;
i
<
scope
.
();
i
++)
{
const
auto
&
=
scope
.
(
i
);
if
(
symbols
.
() >
1
)
{
if
(!
scope
.
<
>() && !
scope
.
<
>())
{
if
(
symbols
.
() >
1
)
{
FOREACH(Ptr<WfLexicalSymbol>, symbol, From(symbols))
if
(
bool
=
true
)
for
(
const
::
vl
::
collections
::
<
<
>>&
= ::
vl
::
collections
::
(
(
symbols
));
__scope_variable_flag__
;
__scope_variable_flag__
=
false
)
for
(
<
>
;
__foreach_iterator__
.
(
symbol
);)
{
if
(
auto
=
symbol
.
<
>())
{
if
(!
decl
.
<
>())
{
->
.
(
::
(
decl
.
(),
symbol
));
}
}
else
if
(
auto
=
symbol
.
<
>())
{
->
.
(
::
(
arg
.
(),
symbol
));
}
else
if
(
auto
=
symbol
.
<
>())
{
->
.
(
::
(
stat
.
(),
symbol
));
}
else
if
(
auto
=
symbol
.
<
>())
{
->
.
(
::
(
expr
.
(),
symbol
));
}
else
if
(
auto
=
symbol
.
<
>())
{
if
(
symbols
.
() ==
2
)
{
auto
=
symbols
1
-
symbols
.
(
symbol
.
())];
auto
=
methodSymbol
.
<
>();
=
->
.
().
(
funcDecl
.
());
if
(
index
!= -
1
)
{
auto
=
->
.
()
index
];
if
(
->
input
.
()].
() ==
methodInfo
.
())
{
}
}
}
->
.
(
::
(
input
.
(),
symbol
));
}
else
if
(
auto
=
symbol
.
<
>())
{
->
.
(
::
(
state
.
(),
symbol
));
}
else
if
(
auto
=
symbol
.
<
>())
{
->
.
(
::
(
sarg
.
(),
symbol
));
}
}
}
}
}
}
}
}
return
errorCount
==
->
.
();
}
}
}
}