Skip to content

Commit

Permalink
Merge pull request #444 from niveathika/master
Browse files Browse the repository at this point in the history
Fix plugin failure for module level variables
  • Loading branch information
niveathika committed Nov 15, 2021
2 parents 4e51a84 + d9d89b0 commit bd1fcce
Show file tree
Hide file tree
Showing 3 changed files with 19 additions and 11 deletions.
2 changes: 1 addition & 1 deletion .gitignore
Expand Up @@ -34,7 +34,7 @@ Ballerina.lock
# generated files
target
.ballerina
compiler-plugin-tests/bin
/compiler-plugin-tests/bin/

# gradle
.gradle
Expand Down
Expand Up @@ -28,6 +28,7 @@
import io.ballerina.compiler.syntax.tree.ExpressionNode;
import io.ballerina.compiler.syntax.tree.MappingConstructorExpressionNode;
import io.ballerina.compiler.syntax.tree.MappingFieldNode;
import io.ballerina.compiler.syntax.tree.ModuleVariableDeclarationNode;
import io.ballerina.compiler.syntax.tree.Node;
import io.ballerina.compiler.syntax.tree.SeparatedNodeList;
import io.ballerina.compiler.syntax.tree.SpecificFieldNode;
Expand Down Expand Up @@ -58,24 +59,31 @@
public class ConnectionPoolConfigAnalyzer implements AnalysisTask<SyntaxNodeAnalysisContext> {

@Override
public void perform(SyntaxNodeAnalysisContext syntaxNodeAnalysisContext) {
List<Diagnostic> diagnostics = syntaxNodeAnalysisContext.semanticModel().diagnostics();
public void perform(SyntaxNodeAnalysisContext ctx) {
List<Diagnostic> diagnostics = ctx.semanticModel().diagnostics();
for (Diagnostic diagnostic : diagnostics) {
if (diagnostic.diagnosticInfo().severity() == DiagnosticSeverity.ERROR) {
return;
}
}
VariableDeclarationNode varDeclarationNode = (VariableDeclarationNode) syntaxNodeAnalysisContext.node();
Optional<Symbol> varSymOptional = syntaxNodeAnalysisContext.semanticModel().symbol(varDeclarationNode);
Optional<Symbol> varSymOptional = ctx.semanticModel()
.symbol(ctx.node());
if (varSymOptional.isPresent()) {
TypeSymbol typeSymbol = ((VariableSymbol) varSymOptional.get()).typeDescriptor();
if (!isConnectionPoolVariable(typeSymbol)) {
return;
}

// Initiated with a record
Optional<ExpressionNode> optionalInitializer = varDeclarationNode.initializer();
if (!optionalInitializer.isPresent()) {
Optional<ExpressionNode> optionalInitializer;
if ((ctx.node() instanceof VariableDeclarationNode)) {
// Function level variables
optionalInitializer = ((VariableDeclarationNode) ctx.node()).initializer();
} else {
// Module level variables
optionalInitializer = ((ModuleVariableDeclarationNode) ctx.node()).initializer();
}
if (optionalInitializer.isEmpty()) {
return;
}
ExpressionNode initializer = optionalInitializer.get();
Expand All @@ -96,7 +104,7 @@ public void perform(SyntaxNodeAnalysisContext syntaxNodeAnalysisContext) {
DiagnosticInfo diagnosticInfo = new DiagnosticInfo(SQL_101.getCode(), SQL_101.getMessage(),
SQL_101.getSeverity());

syntaxNodeAnalysisContext.reportDiagnostic(
ctx.reportDiagnostic(
DiagnosticFactory.createDiagnostic(diagnosticInfo, valueNode.location()));

}
Expand All @@ -106,7 +114,7 @@ public void perform(SyntaxNodeAnalysisContext syntaxNodeAnalysisContext) {
if (minIdleConnection < 0) {
DiagnosticInfo diagnosticInfo = new DiagnosticInfo(SQL_102.getCode(), SQL_102.getMessage(),
SQL_102.getSeverity());
syntaxNodeAnalysisContext.reportDiagnostic(
ctx.reportDiagnostic(
DiagnosticFactory.createDiagnostic(diagnosticInfo, valueNode.location()));

}
Expand All @@ -116,7 +124,7 @@ public void perform(SyntaxNodeAnalysisContext syntaxNodeAnalysisContext) {
if (maxConnectionTime < 30) {
DiagnosticInfo diagnosticInfo = new DiagnosticInfo(SQL_103.getCode(), SQL_103.getMessage(),
SQL_103.getSeverity());
syntaxNodeAnalysisContext.reportDiagnostic(
ctx.reportDiagnostic(
DiagnosticFactory.createDiagnostic(diagnosticInfo, valueNode.location()));

}
Expand Down
2 changes: 1 addition & 1 deletion gradle.properties
@@ -1,5 +1,5 @@
group=io.ballerina.stdlib
version=1.0.1-SNAPSHOT
version=1.1.0-SNAPSHOT

puppycrawlCheckstyleVersion=8.18
hikkariLibVersion=3.3.1
Expand Down

0 comments on commit bd1fcce

Please sign in to comment.