Skip to content

Commit

Permalink
compiler: fix module alias resolution
Browse files Browse the repository at this point in the history
  • Loading branch information
joe-conigliaro authored and medvednikov committed Jan 23, 2020
1 parent 0a93d3b commit 20f6cdc
Show file tree
Hide file tree
Showing 3 changed files with 21 additions and 12 deletions.
6 changes: 3 additions & 3 deletions examples/gg2.v
@@ -1,6 +1,6 @@
module main

import gg2 // as gg
import gg2 as gg
import gx

const (
Expand All @@ -10,12 +10,12 @@ const (

struct App {
mut:
gg &gg2.GG
gg &gg.GG
}

fn main() {
mut app := &App{}
app.gg = gg2.new_context({
app.gg = gg.new_context({
bg_color: gx.white
width: win_width
height: win_height
Expand Down
6 changes: 4 additions & 2 deletions vlib/compiler/get_type.v
Expand Up @@ -147,8 +147,10 @@ fn (p mut Parser) get_type2() Type {
// try resolve full submodule
if !p.builtin_mod && p.import_table.known_alias(typ) {
mod := p.import_table.resolve_alias(typ)
if mod.contains('.') {
typ = mod_gen_name(mod)
typ = if mod.contains('.') {
mod_gen_name(mod)
} else {
mod
}
}
p.next()
Expand Down
21 changes: 14 additions & 7 deletions vlib/compiler/tests/module_test.v
@@ -1,18 +1,25 @@
import os
import time as t
import crypto.sha256 as s2

import (
math
log as l
crypto.sha512 as s5
)

struct TestAliasInStruct {
time t.Time
}

fn test_import() {
assert os.O_RDONLY == os.O_RDONLY &&
t.month_days[0] == t.month_days[0] &&
s2.size == s2.size &&
math.pi == math.pi &&
l.INFO == l.INFO &&
s5.size == s5.size
assert os.O_RDONLY == os.O_RDONLY && t.month_days[0] == t.month_days[0] && s2.size == s2.size && math.pi == math.pi && l.INFO == l.INFO && s5.size == s5.size
}

fn test_alias_in_struct_field() {
a := TestAliasInStruct{
time: t.Time{
year: 2020
}
}
assert a.time.year == 2020
}

0 comments on commit 20f6cdc

Please sign in to comment.