Skip to content

Commit

Permalink
Fixes.
Browse files Browse the repository at this point in the history
  • Loading branch information
miguelbranco80 committed Jun 19, 2024
1 parent 936f0c5 commit 0a27176
Show file tree
Hide file tree
Showing 5 changed files with 32 additions and 72 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -13,38 +13,7 @@
package raw.client.python

import org.graalvm.polyglot.{Context, Engine, PolyglotAccess, PolyglotException, Source, Value}
import raw.client.api.{
AutoCompleteResponse,
CompilerService,
CompilerServiceException,
ExecutionResponse,
ExecutionRuntimeFailure,
ExecutionSuccess,
FormatCodeResponse,
GetProgramDescriptionResponse,
GoToDefinitionResponse,
HoverResponse,
Pos,
ProgramEnvironment,
RawBool,
RawByte,
RawDate,
RawDecimal,
RawDouble,
RawFloat,
RawInt,
RawInterval,
RawLong,
RawNull,
RawShort,
RawString,
RawTime,
RawTimestamp,
RawType,
RawValue,
RenameResponse,
ValidateResponse
}
import raw.client.api._
import raw.client.writers.{PolyglotBinaryWriter, PolyglotCsvWriter, PolyglotJsonWriter, PolyglotTextWriter}
import raw.utils.{RawSettings, RawUtils}

Expand Down Expand Up @@ -309,19 +278,19 @@ class PythonCompilerService(engineDefinition: (Engine, Boolean))(implicit protec
ctx
}

private def withTruffleContext[T](
environment: ProgramEnvironment,
f: Context => T
): T = {
val ctx = buildTruffleContext(environment)
ctx.initialize("python")
ctx.enter()
try {
f(ctx)
} finally {
ctx.leave()
ctx.close()
}
}
// private def withTruffleContext[T](
// environment: ProgramEnvironment,
// f: Context => T
// ): T = {
// val ctx = buildTruffleContext(environment)
// ctx.initialize("python")
// ctx.enter()
// try {
// f(ctx)
// } finally {
// ctx.leave()
// ctx.close()
// }
// }

}
Original file line number Diff line number Diff line change
Expand Up @@ -500,12 +500,11 @@ class SemanticAnalyzer(val tree: SourceTree.SourceTree)(implicit programContext:
// is a perfect match. For instance, if the user does String.IsNull instead of Nullable.IsNull,
// or Text.Split instead of String.Split. The criteria is that the entry name must be a perfect match
// but defined in a single other package.
val packagesWithEntry =
PackageExtensionProvider.packages.flatMap {
case p => p.p.entries.collect {
case e if badEntryName == e => p.p.name
}
}
val packagesWithEntry = PackageExtensionProvider.packages.flatMap {
case p => p.p.entries.collect {
case e if badEntryName == e => p.p.name
}
}
if (packagesWithEntry.length == 1)
Seq(UnknownDecl(i, hint = Some(s"did you mean ${packagesWithEntry.head}.$badEntryName?")))
else Seq(UnknownDecl(i))
Expand Down Expand Up @@ -918,8 +917,7 @@ class SemanticAnalyzer(val tree: SourceTree.SourceTree)(implicit programContext:
.getOrElse(ErrorType())
case _ => ErrorType()
}
case PackageIdnExp(name) =>
PackageExtensionProvider.getPackage(name) match {
case PackageIdnExp(name) => PackageExtensionProvider.getPackage(name) match {
case Some(_) => PackageType(name)
case None => throw new AssertionError(s"Built-in package $name not found")
}
Expand Down Expand Up @@ -1885,23 +1883,21 @@ class SemanticAnalyzer(val tree: SourceTree.SourceTree)(implicit programContext:
return ExpectedType(ExpectedProjType(i))
}
val actualName = s"$name.$i"
val names =
PackageExtensionProvider.packages.flatMap { p =>
p.p.entries.collect {
case e if levenshteinDistance(actualName, s"${p.p.name}.$e") < 3 => s"${p.p.name}.$e"
}
val names = PackageExtensionProvider.packages.flatMap { p =>
p.p.entries.collect {
case e if levenshteinDistance(actualName, s"${p.p.name}.$e") < 3 => s"${p.p.name}.$e"
}
}
if (names.isEmpty) {
// No found based on levenshtein distance. Try to see if there is any entry name in another package that
// is a perfect match. For instance, if the user does String.IsNull instead of Nullable.IsNull,
// or Text.Split instead of String.Split. The criteria is that the entry name must be a perfect match
// but defined in a single other package.
val packagesWithEntry =
PackageExtensionProvider.packages.flatMap {
case p => p.p.entries.collect {
case e if i == e => p.p.name
}
}
val packagesWithEntry = PackageExtensionProvider.packages.flatMap {
case p => p.p.entries.collect {
case e if i == e => p.p.name
}
}
if (packagesWithEntry.length == 1)
ExpectedType(ExpectedProjType(i), hint = Some(s"did you mean ${packagesWithEntry.head}.$i?"))
else ExpectedType(ExpectedProjType(i))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -68,4 +68,3 @@ object PackageExtensionProvider {
}

}

Original file line number Diff line number Diff line change
Expand Up @@ -14,11 +14,7 @@ package raw.inferrer.local

import com.typesafe.scalalogging.StrictLogging
import raw.client.api.LocationDescription
import raw.inferrer.api.{
AutoInferrerProperties,
CsvInputFormatDescriptor,
TextInputStreamFormatDescriptor
}
import raw.inferrer.api.{AutoInferrerProperties, CsvInputFormatDescriptor, TextInputStreamFormatDescriptor}
import raw.sources.api.SourceContext
import raw.sources.filesystem.local.LocalLocationsTestContext
import raw.utils.{RawTestSuite, RawUtils, SettingsTestContext}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ class TestSqlCompilerServiceAirports

override def beforeAll(): Unit = {
super.beforeAll()
compilerService = new SqlCompilerService(None)
compilerService = new SqlCompilerService
}

private def asJson(params: Map[String, RawValue] = Map.empty): ProgramEnvironment = {
Expand Down

0 comments on commit 0a27176

Please sign in to comment.