More using qualified names in IR
This commit is contained in:
parent
2f8b3fcad6
commit
928fef02cd
@ -102,7 +102,7 @@ func (this *generator) generateSubscriptLoc (subscript *entity.Subscript) (llvm.
|
|||||||
sourceType := analyzer.ReduceToBase(subscript.Slice.Type())
|
sourceType := analyzer.ReduceToBase(subscript.Slice.Type())
|
||||||
switch sourceType := sourceType.(type) {
|
switch sourceType := sourceType.(type) {
|
||||||
case *entity.TypeSlice:
|
case *entity.TypeSlice:
|
||||||
irSourceType, err := this.generateType(sourceType)
|
irSourceType, err := this.generateType(subscript.Slice.Type())
|
||||||
if err != nil { return nil, err }
|
if err != nil { return nil, err }
|
||||||
elementType = sourceType.Element
|
elementType = sourceType.Element
|
||||||
dataAddress = this.getSliceDataAddress(source, irSourceType)
|
dataAddress = this.getSliceDataAddress(source, irSourceType)
|
||||||
@ -134,10 +134,9 @@ func (this *generator) generateMemberAccessLoc (access *entity.MemberAccess) (ll
|
|||||||
source, err := this.generateExpressionLoc(access.Source)
|
source, err := this.generateExpressionLoc(access.Source)
|
||||||
if err != nil { return nil, err }
|
if err != nil { return nil, err }
|
||||||
|
|
||||||
switch sourceTypeAny := analyzer.ReduceToBase(access.Source.Type()).(type) {
|
switch sourceType := analyzer.ReduceToBase(access.Source.Type()).(type) {
|
||||||
case *entity.TypeStruct:
|
case *entity.TypeStruct:
|
||||||
sourceType := sourceTypeAny
|
irSourceType, err := this.generateType(access.Source.Type())
|
||||||
irSourceType, err := this.generateType(sourceType)
|
|
||||||
if err != nil { return nil, err }
|
if err != nil { return nil, err }
|
||||||
offset := this.getStructMemberIndex(sourceType, access.Member)
|
offset := this.getStructMemberIndex(sourceType, access.Member)
|
||||||
return this.blockManager.NewGetElementPtr (
|
return this.blockManager.NewGetElementPtr (
|
||||||