public static void joinScopes ( Scope source , Scope dest ) { Map < String , Symbol > src = source . ensureSymbolTable ( ) ; Map < String , Symbol > dst = dest . ensureSymbolTable ( ) ; if ( ! Collections . disjoint ( src . keySet ( ) , dst . keySet ( ) ) ) { codeBug ( ) ; } for ( Map . Entry < String , Symbol > entry : src . entrySet ( ) ) { Symbol sym = entry . getValue ( ) ; sym . setContainingTable ( dest ) ; dst . put ( entry . getKey ( ) , sym ) ; } }
Copies all symbols from source scope to dest scope .