| // Copyright 2011 The Go Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style |
| // license that can be found in the LICENSE file. |
| |
| package main |
| |
| import ( |
| "go/ast" |
| ) |
| |
| func init() { |
| register(imageycbcrFix) |
| } |
| |
| var imageycbcrFix = fix{ |
| "imageycbcr", |
| "2011-12-20", |
| imageycbcr, |
| `Adapt code to types moved from image/ycbcr to image and image/color. |
| |
| http://codereview.appspot.com/5493084 |
| `, |
| } |
| |
| func imageycbcr(f *ast.File) (fixed bool) { |
| if !imports(f, "image/ycbcr") { |
| return |
| } |
| |
| walk(f, func(n interface{}) { |
| s, ok := n.(*ast.SelectorExpr) |
| |
| if !ok || !isTopName(s.X, "ycbcr") { |
| return |
| } |
| |
| switch s.Sel.String() { |
| case "RGBToYCbCr", "YCbCrToRGB": |
| addImport(f, "image/color") |
| s.X.(*ast.Ident).Name = "color" |
| case "YCbCrColor": |
| addImport(f, "image/color") |
| s.X.(*ast.Ident).Name = "color" |
| s.Sel.Name = "YCbCr" |
| case "YCbCrColorModel": |
| addImport(f, "image/color") |
| s.X.(*ast.Ident).Name = "color" |
| s.Sel.Name = "YCbCrModel" |
| case "SubsampleRatio", "SubsampleRatio444", "SubsampleRatio422", "SubsampleRatio420": |
| addImport(f, "image") |
| s.X.(*ast.Ident).Name = "image" |
| s.Sel.Name = "YCbCr" + s.Sel.Name |
| case "YCbCr": |
| addImport(f, "image") |
| s.X.(*ast.Ident).Name = "image" |
| default: |
| return |
| } |
| fixed = true |
| }) |
| |
| deleteImport(f, "image/ycbcr") |
| return |
| } |