Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Compilation: raster.nim(400, 24) Error: type mismatch: got <seq[float64], nil> #1

Closed
smathermather opened this issue Nov 21, 2018 · 4 comments

Comments

@smathermather
Copy link

Having trouble compiling with error:
raster.nim(400, 24) Error: type mismatch: got <seq[float64], nil>

Full version:

nim c -d:release fp_denoise.nim
Hint: used config file '/home/useruser/nim/nim-0.19.0/config/nim.cfg' [Conf]
Hint: system [Processing]
Hint: fp_denoise [Processing]
Hint: strutils [Processing]
Hint: parseutils [Processing]
Hint: math [Processing]
Hint: bitops [Processing]
Hint: algorithm [Processing]
Hint: unicode [Processing]
Hint: endians [Processing]
Hint: os [Processing]
Hint: times [Processing]
Hint: options [Processing]
Hint: typetraits [Processing]
Hint: strformat [Processing]
Hint: macros [Processing]
Hint: posix [Processing]
Hint: ospaths [Processing]
Hint: raster [Processing]
Hint: byte_order_reader [Processing]
Hint: unittest [Processing]
Hint: streams [Processing]
Hint: sets [Processing]
Hint: hashes [Processing]
Hint: terminal [Processing]
Hint: colors [Processing]
Hint: tables [Processing]
Hint: termios [Processing]
Hint: byte_order_writer [Processing]
Hint: sequtils [Processing]
raster.nim(400, 24) Error: type mismatch: got <seq[float64], nil>
but expected one of:
proc `==`(x, y: pointer): bool
  first type mismatch at position: 1
  required type: pointer
  but expression 'self.values' is of type: seq[float64]
proc `==`(x, y: int64): bool
  first type mismatch at position: 1
  required type: int64
  but expression 'self.values' is of type: seq[float64]
proc `==`(x, y: char): bool
  first type mismatch at position: 1
  required type: char
  but expression 'self.values' is of type: seq[float64]
proc `==`(x, y: int16): bool
  first type mismatch at position: 1
  required type: int16
  but expression 'self.values' is of type: seq[float64]
proc `==`[T: tuple |
    object](x, y: T): bool
  first type mismatch at position: 1
  required type: T: tuple or object
  but expression 'self.values' is of type: seq[float64]
proc `==`[T](x, y: ref T): bool
  first type mismatch at position: 1
  required type: ref T
  but expression 'self.values' is of type: seq[float64]
proc `==`(x, y: cstring): bool
  first type mismatch at position: 1
  required type: cstring
  but expression 'self.values' is of type: seq[float64]
proc `==`(x, y: int8): bool
  first type mismatch at position: 1
  required type: int8
  but expression 'self.values' is of type: seq[float64]
proc `==`(x: type(nil); y: string): bool
  first type mismatch at position: 1
  required type: nil
  but expression 'self.values' is of type: seq[float64]
proc `==`[T: proc](x, y: T): bool
  first type mismatch at position: 1
  required type: T: proc
  but expression 'self.values' is of type: seq[float64]
proc `==`[T](x, y: openArray[T]): bool
  first type mismatch at position: 2
  required type: openarray[T]
  but expression 'nil' is of type: nil
proc `==`(x, y: string): bool
  first type mismatch at position: 1
  required type: string
  but expression 'self.values' is of type: seq[float64]
proc `==`(x, y: float): bool
  first type mismatch at position: 1
  required type: float
  but expression 'self.values' is of type: seq[float64]
proc `==`(x, y: float32): bool
  first type mismatch at position: 1
  required type: float32
  but expression 'self.values' is of type: seq[float64]
proc `==`[T](x, y: set[T]): bool
  first type mismatch at position: 1
  required type: set[T]
  but expression 'self.values' is of type: seq[float64]
proc `==`(x, y: int32): bool
  first type mismatch at position: 1
  required type: int32
  but expression 'self.values' is of type: seq[float64]
proc `==`[I, T](x, y: array[I, T]): bool
  first type mismatch at position: 1
  required type: array[I, T]
  but expression 'self.values' is of type: seq[float64]
proc `==`(x, y: int): bool
  first type mismatch at position: 1
  required type: int
  but expression 'self.values' is of type: seq[float64]
proc `==`[T: SomeUnsignedInt](x, y: T): bool
  first type mismatch at position: 1
  required type: T: SomeUnsignedInt
  but expression 'self.values' is of type: seq[float64]
proc `==`[Enum: enum](x, y: Enum): bool
  first type mismatch at position: 1
  required type: Enum: enum
  but expression 'self.values' is of type: seq[float64]
proc `==`[T](x, y: seq[T]): bool
  first type mismatch at position: 2
  required type: seq[T]
  but expression 'nil' is of type: nil
proc `==`(x, y: bool): bool
  first type mismatch at position: 1
  required type: bool
  but expression 'self.values' is of type: seq[float64]
proc `==`(x: string; y: type(nil)): bool
  first type mismatch at position: 1
  required type: string
  but expression 'self.values' is of type: seq[float64]
proc `==`[T](x, y: ptr T): bool
  first type mismatch at position: 1
  required type: ptr T
  but expression 'self.values' is of type: seq[float64]
proc `==`(err1, err2: OSErrorCode): bool
  first type mismatch at position: 1
  required type: OSErrorCode
  but expression 'self.values' is of type: seq[float64]

expression: self.values == nil
@jblindsay
Copy link
Owner

A change in the Nim language with the latest release caused this error. Basically the raster.nim code initialized an empty sequence, and now it must be null. I've committed a small change and it should now work fine. I tested the code yesterday.

@smathermather
Copy link
Author

Excellent! I'll test next week.

@smathermather
Copy link
Author

Works a charm. I couldn't wait to test. Thanks!

@jblindsay
Copy link
Owner

@smathermather Glad to hear it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants