@Override public void visitUseStatement(UseStatementTree tree) { QualifiedName namespacePrefix = getPrefix(tree); tree.clauses().forEach(useClauseTree -> { String alias = getAliasName(useClauseTree); QualifiedName originalName = getOriginalFullyQualifiedName(namespacePrefix, useClauseTree); aliases.put(alias.toLowerCase(Locale.ROOT), originalName); }); }
@Override public void visitUseStatement(UseStatementTree tree) { super.visitUseStatement(tree); QualifiedName namespacePrefix = getPrefix(tree); tree.clauses().forEach(useClauseTree -> { String alias = getAliasName(useClauseTree); QualifiedName originalName = getOriginalFullyQualifiedName(namespacePrefix, useClauseTree); aliases.put(alias.toLowerCase(Locale.ROOT), originalName); }); }
@Override public void visitUseStatement(UseStatementTree tree) { super.visitUseStatement(tree); QualifiedName namespacePrefix = getPrefix(tree); tree.clauses().forEach(useClauseTree -> { String alias = getAliasName(useClauseTree); QualifiedName originalName = getOriginalFullyQualifiedName(namespacePrefix, useClauseTree); aliases.put(alias.toLowerCase(Locale.ROOT), originalName); }); }
@Test public void with_trailing_comma() throws Exception { UseStatementTree tree = parse("use ns1\\{A, B, C,};", Kind.GROUP_USE_STATEMENT); assertThat(tree.is(Kind.GROUP_USE_STATEMENT)).isTrue(); assertThat(tree.prefix()).isNotNull(); assertThat(tree.clauses()).hasSize(3); } }
@Test public void group_use_statement() throws Exception { UseStatementTree tree = parse("use ns1\\ns2\\{name1 as a1, function name2};", Kind.GROUP_USE_STATEMENT); assertThat(tree.is(Kind.GROUP_USE_STATEMENT)).isTrue(); assertThat(tree.prefix()).isNotNull(); assertThat(expressionToString(tree.prefix())).isEqualTo("ns1\\ns2"); assertThat(tree.nsSeparatorToken()).isNotNull(); assertThat(tree.openCurlyBraceToken()).isNotNull(); assertThat(tree.closeCurlyBraceToken()).isNotNull(); assertThat(tree.clauses()).hasSize(2); }
@Test public void multiple_declarations() throws Exception { UseStatementTree tree = parse("use \\ns1\\ns2\\name, \\ns1\\ns2\\name2;", PHPLexicalGrammar.USE_STATEMENT); assertThat(tree.is(Kind.USE_STATEMENT)).isTrue(); assertThat(tree.useTypeToken()).isNull(); assertThat(tree.clauses()).hasSize(2); }
@Test public void single_declaration() throws Exception { UseStatementTree tree = parse("use \\ns1\\ns2\\name;", PHPLexicalGrammar.USE_STATEMENT); assertThat(tree.is(Kind.USE_STATEMENT)).isTrue(); assertThat(tree.useTypeToken()).isNull(); assertThat(tree.prefix()).isNull(); assertThat(tree.nsSeparatorToken()).isNull(); assertThat(tree.openCurlyBraceToken()).isNull(); assertThat(tree.closeCurlyBraceToken()).isNull(); assertThat(tree.clauses()).hasSize(1); }