Search Options

Results per page
Sort
Preferred Languages
Advance

Results 1 - 10 of 52 for typecheck (0.33 sec)

  1. src/cmd/fix/typecheck.go

    func makeExprList(a []*ast.Ident) []ast.Expr {
    	var b []ast.Expr
    	for _, x := range a {
    		b = append(b, x)
    	}
    	return b
    }
    
    // typecheck1 is the recursive form of typecheck.
    // It is like typecheck but adds to the information in typeof
    // instead of allocating a new map.
    func typecheck1(cfg *TypeConfig, f any, typeof map[any]string, assign map[string][]any) {
    	// set sets the type of n to typ.
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Wed Nov 16 22:02:42 UTC 2022
    - 20.1K bytes
    - Viewed (0)
  2. src/cmd/compile/internal/typecheck/typecheck.go

    	// Skip typecheck if already done.
    	// But re-typecheck ONAME/OTYPE/OLITERAL/OPACK node in case context has changed.
    	if n.Typecheck() == 1 || n.Typecheck() == 3 {
    		switch n.Op() {
    		case ir.ONAME:
    			break
    
    		default:
    			return n
    		}
    	}
    
    	if n.Typecheck() == 2 {
    		base.FatalfAt(n.Pos(), "typechecking loop")
    	}
    
    	n.SetTypecheck(2)
    	n = typecheck1(n, top)
    	n.SetTypecheck(1)
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Wed Mar 20 19:08:34 UTC 2024
    - 30.5K bytes
    - Viewed (0)
  3. src/cmd/compile/internal/walk/builtin.go

    		fnname = "makeslice"
    		argtype = types.Types[types.TINT]
    	}
    	fn := typecheck.LookupRuntime(fnname)
    	ptr := mkcall1(fn, types.Types[types.TUNSAFEPTR], init, reflectdata.MakeSliceElemRType(base.Pos, n), typecheck.Conv(len, argtype), typecheck.Conv(cap, argtype))
    	ptr.MarkNonNil()
    	len = typecheck.Conv(len, types.Types[types.TINT])
    	cap = typecheck.Conv(cap, types.Types[types.TINT])
    	sh := ir.NewSliceHeaderExpr(base.Pos, t, ptr, len, cap)
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Fri Mar 08 22:35:22 UTC 2024
    - 31.2K bytes
    - Viewed (0)
  4. src/cmd/compile/internal/walk/convert.go

    		data.SetTypecheck(1)
    
    		typeWord := typecheck.TempAt(base.Pos, ir.CurFunc, types.NewPtr(types.Types[types.TUINT8]))
    		init.Append(ir.NewAssignStmt(base.Pos, typeWord, typecheck.Conv(typecheck.Conv(itab, types.Types[types.TUNSAFEPTR]), typeWord.Type())))
    		nif := ir.NewIfStmt(base.Pos, typecheck.Expr(ir.NewBinaryExpr(base.Pos, ir.ONE, typeWord, typecheck.NodNil())), nil, nil)
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Mon Oct 09 17:28:22 UTC 2023
    - 18.2K bytes
    - Viewed (0)
  5. src/cmd/compile/internal/walk/assign.go

    	if ir.IsBlank(a) {
    		return walkExpr(typecheck.Stmt(n), init)
    	}
    
    	var_ := typecheck.TempAt(base.Pos, ir.CurFunc, types.NewPtr(t.Elem()))
    	var_.SetTypecheck(1)
    	var_.MarkNonNil() // mapaccess always returns a non-nil pointer
    
    	n.Lhs[0] = var_
    	init.Append(walkExpr(n, init))
    
    	as := ir.NewAssignStmt(base.Pos, a, ir.NewStarExpr(base.Pos, var_))
    	return walkExpr(typecheck.Stmt(as), init)
    }
    
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Wed May 08 17:09:06 UTC 2024
    - 20.3K bytes
    - Viewed (0)
  6. src/cmd/compile/internal/walk/walk.go

    	}
    }
    
    // walkRecv walks an ORECV node.
    func walkRecv(n *ir.UnaryExpr) ir.Node {
    	if n.Typecheck() == 0 {
    		base.Fatalf("missing typecheck: %+v", n)
    	}
    	init := ir.TakeInit(n)
    
    	n.X = walkExpr(n.X, &init)
    	call := walkExpr(mkcall1(chanfn("chanrecv1", 2, n.X.Type()), nil, &init, n.X, typecheck.NodNil()), &init)
    	return ir.InitExpr(init, call)
    }
    
    func convas(n *ir.AssignStmt, init *ir.Nodes) *ir.AssignStmt {
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Tue Feb 27 20:56:00 UTC 2024
    - 10.4K bytes
    - Viewed (0)
  7. src/cmd/compile/internal/walk/complit.go

    		//	map[vstatk[i]] = vstate[i]
    		// }
    		i := typecheck.TempAt(base.Pos, ir.CurFunc, types.Types[types.TINT])
    		rhs := ir.NewIndexExpr(base.Pos, vstate, i)
    		rhs.SetBounded(true)
    
    		kidx := ir.NewIndexExpr(base.Pos, vstatk, i)
    		kidx.SetBounded(true)
    
    		// typechecker rewrites OINDEX to OINDEXMAP
    		lhs := typecheck.AssignExpr(ir.NewIndexExpr(base.Pos, m, kidx)).(*ir.IndexExpr)
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Fri Sep 08 19:03:54 UTC 2023
    - 19.5K bytes
    - Viewed (0)
  8. src/cmd/compile/internal/walk/range.go

    				// v1 = hv1t
    				body = append(body, rangeAssign(nrange, hv1t))
    			}
    		}
    	}
    
    	typecheck.Stmts(init)
    
    	nfor.PtrInit().Append(init...)
    
    	typecheck.Stmts(nfor.Cond.Init())
    
    	nfor.Cond = typecheck.Expr(nfor.Cond)
    	nfor.Cond = typecheck.DefaultLit(nfor.Cond, nil)
    	nfor.Post = typecheck.Stmt(nfor.Post)
    	typecheck.Stmts(body)
    	nfor.Body.Append(body...)
    	nfor.Body.Append(nrange.Body...)
    
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Wed Sep 20 14:52:33 UTC 2023
    - 17.6K bytes
    - Viewed (0)
  9. src/cmd/compile/internal/walk/switch.go

    				nif.Cond = typecheck.Expr(nif.Cond)
    				nif.Cond = typecheck.DefaultLit(nif.Cond, nil)
    				out.Append(nif)
    				out = &nif.Else
    			}
    			return
    		}
    
    		half := lo + n/2
    		nif := ir.NewIfStmt(base.Pos, nil, nil, nil)
    		nif.Cond = less(half)
    		base.Pos = base.Pos.WithNotStmt()
    		nif.Cond = typecheck.Expr(nif.Cond)
    		nif.Cond = typecheck.DefaultLit(nif.Cond, nil)
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Mon Mar 04 17:34:01 UTC 2024
    - 30.1K bytes
    - Viewed (0)
  10. src/cmd/compile/internal/walk/compare.go

    				cmplw := ir.Node(ir.NewIndexExpr(base.Pos, cmpl, ir.NewInt(base.Pos, i)))
    				cmplw = typecheck.Conv(cmplw, elemType) // convert to unsigned
    				cmplw = typecheck.Conv(cmplw, convType) // widen
    				cmprw := ir.Node(ir.NewIndexExpr(base.Pos, cmpr, ir.NewInt(base.Pos, i)))
    				cmprw = typecheck.Conv(cmprw, elemType)
    				cmprw = typecheck.Conv(cmprw, convType)
    				// For code like this:  uint32(s[0]) | uint32(s[1])<<8 | uint32(s[2])<<16 ...
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Wed May 24 21:55:14 UTC 2023
    - 16.2K bytes
    - Viewed (0)
Back to top